INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Datenerfassung über C++ in LabVIEW exportieren



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

24.08.2007, 11:24 (Dieser Beitrag wurde zuletzt bearbeitet: 24.08.2007 12:07 von rolfk.)
Beitrag #21

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Datenerfassung über C++ in LabVIEW exportieren
' schrieb:Erstens:
"TD1 **TD1Hdl" - also ein Pointer auf eine Variable, die den Pointer auf den Struct enthält - das geht nicht mal mit DLL. Nicht, weil das mit dem Verfahren einer DLL nicht ginge, sondern weil LV als Datenflusssteuerung für diese Art des Variablenhandlings nicht ausgelegt ist (respektive hat meines Wissens noch niemand so ein Feature implementiert). Und was mit DLL nicht geht, geht garantiert auch nicht mit CIN.

Da hast Du mal Unrecht. Die Deklaration so wie Du sie hier siehst ist GENAU so wie LabVIEW ein Array im Speicher ablegt. Das ist dann auch die einzige Weise um Arrays an ein CIN zu übergeben.
Der DLL Knoten kann das aber auch. Einfach "Adapt to Type" auswählen und dann ein eindimensionales Array von float64 and den Eingang verbinden. Für diesen Fall noch "Handles als Value" und nicht "Pointer to Handles" ansonsten gibts ein "arg1 *TD1Hdl" Parameter was hier wohl nicht erwünscht wäre.

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
24.08.2007, 11:33 (Dieser Beitrag wurde zuletzt bearbeitet: 24.08.2007 11:34 von rolfk.)
Beitrag #22

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Datenerfassung über C++ in LabVIEW exportieren
' schrieb:Zitat stammt von dem Link den Jens G gepostet hat. Danke dafür schonmal.

Ich versuche dieses VI nachzubilden aber ohne Erfolg. rolfk schrieb, dass es das auch für CIN's gibt. Wie heisst dieser Block? Vieleicht komme ich damit hin?!

Das hast Du aber aus einem anderen Thread kopiert und hier als Frage darauf in diesen Thread kopiert. Es gibt keinen Block den Du in einem CIN verwenden kannst. Wohl aber die MoveBlock Funktion die genau wie alle anderen LabVIEW Manager calls von LabVIEW.lib exportiert wird. Einfach extcode.h in Deinem C source File einfügen, LabVIEW.lib als extra Library in Dein Projekt aufnehmen und schon kannst Du diese Funktion in Deinem CIN oder DLL verwenden.

Und wie schon gesagt, CINs sind echt alte Legacytechnologie. Der Tag an dem die Erstellung von CINs in neuen LabVIEW Versionen nicht mehr möglich sein wird weil die entsprechenden CIN Tools einfach nicht mehr mitgeliefert werden ist wahrscheinlich nicht mehr so fern. Die Verwendung von bestehenden CINs wird wohl noch eine Weile möglich sein, aber auch das wird für neue Platformen(Windows 64bit zum Beispiel) für die LabVIEW eventuel noch herauskommen wird wohl nicht mehr unterstützt werden.

Du bist also gewarnt!No

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.08.2007, 12:04 (Dieser Beitrag wurde zuletzt bearbeitet: 24.08.2007 12:06 von rolfk.)
Beitrag #23

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Datenerfassung über C++ in LabVIEW exportieren
' schrieb:Welches VI willst du nachbilden? Das mit dem Move-Befehl? Das kannst du nicht nachbilden. Den Move-Befehl musst du herunterladen (siehe Link weiter oben in jenem Link), entsprechend beschalten und ausführen.

Im übrigen:
Der Move-Befehl ist dazu da, Unzulänglichkeiten einer Programmiersprache - ob LV, Delphi oder C++ - zu umgehen. Eigenlich soll man sowas gar nicht benutzen.

Das ist so nicht richtig. Wenn Du grössere Speicherbereiche kopieren willst kannst Du das entweder von Hand in einer Schleife tun, in C++ beispielsweise implizit durch den Compiler machen lassen wenn der dann beide Datentypen begreifen kann, oder eben eine Runtimefunktion verwenden. Die C Runtime bietet beispielsweise memcpy() und das Windows API bietet auch mindestens drei oder so Varianten dafür. LabVIEW hat dafür auch eine eigenen C Funktion um auf allen Plattformen dieselbe verwenden zu können. Solche Funktionen obwohl scheinbar trivial können es nämlich in sich haben. Beispielweise können nicht alle davon mit überlappenden Speicherbereichen umgehen.

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Pumpe in LabVIEW über Sytem Exec an und ausschalten lazfather 8 8.758 30.10.2014 10:14
Letzter Beitrag: jg
  Fortran-Programm über Labview starten jh1988 10 12.398 22.04.2013 19:28
Letzter Beitrag: rolfk
  VI mit DLL exportieren potter68 7 7.772 17.04.2013 14:44
Letzter Beitrag: potter68
  Textuelle Ausgabe über DLL in LabView Textbox/Output Effemfour 6 8.128 24.11.2010 13:46
Letzter Beitrag: rolfk
  Ansteuerung von xPC-Target über eingebundenes Simulinkmodell in LabVIEW AndreasT81 1 6.424 30.10.2010 08:02
Letzter Beitrag: Y-P
  Blockdiagramm exportieren dhaehn 3 4.768 20.05.2008 14:07
Letzter Beitrag: thomas.sandrisser

Gehe zu: