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 

Registerkarte "Callbacks" im Call Library Function Node.



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.11.2010, 13:39
Beitrag #2

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Registerkarte "Callbacks" im Call Library Function Node.
Diese Callbacks haben einen misleitenden Namen. Es sind eigentlich Initilisierungs- und Deinitialisierungsfunktionen die LabVIEW mit einer Contextvariable aufruft für jede Instanz einer Call Library Node. Diese Contextvariable kann dann auch als extra Parameter an die eigentlich DLL mitgegeben werden. Die Contextvariable ist einfach ein Pointer, in dem die Initfunktion einen angelegten Speicherbereich zurückgeben kann der instanzspezifische Informationen abspeichert. Dies alles hat vor allem mit Reentranz in LabVIEW zu tun, da eine Call Library Node innerhalb eines reentranten VIs halt eben auch für jede Instanz manchmal eigene lokale Informationen benötigt und deshalb eine DLL globale Variable nicht funktionieren würde. Die eigentliche Funktion erhält diese instanzspezifische Contextvariable und kann dann immer auf die eigene Informationen Bezug nehmen ohne andere Instanzen derselben Call Library Node (CLN) zu beinflussen. Das Ganze wäre auch als extra CLN Parameter implementierbar der innerhalb eines uninitialisierten Schieberegisters im VI abgespeichert wird.

Und grundsätzlich macht es nur Sinn bei besonderen DLL Funktionen die instanzspezifische Daten zwischen mehreren Aufrufen abspeichern müssen und auch dann nur wenn diese Funktion in einem reentranten VI aufgerufen werden kann.

Zu Deinem eigentlichen Problem, das ist leoder nicht ganz trivial. Es hängt sehr davon ab ob Du LabVIEW von einer anderen Applikation (Prozess) ansprechen willst oder nur innerhalb einer DLL die vom LabVIEW Prozess geladen wird. Im ersten Fall wirst Du um Interapplikationskommunikation (IAK) einfach nicht herum kommen. Im zweiten Fall kannst Du einige der Funktionen um Daten in Deiner LabVIEW app zu lesen in eine LabVIEW DLL auslagern und diese am Anfang in der App laden (indem Du eine der Funktionen mittels CLN aufrufst). Danach kannst Du diese DLL von der C DLL aus aufrufen.

Wenn Dein C Code aber innerhalb eines eigenen Prozesses läuft ist dank modernem Multitasking OS und Protected Memory Environment kein Weg der an AIK vorbeiführt. Aber auch dann könntest Du eine DLL in LabVIEW machen die mittels VI Server mit Deiner LabVIEW App kommuniziert. Ist zwar immer noch etwas Arbeit aber Du brauchst nicht ein komplettes TCP/IP Protokoll zu implementieren. Das macht der LabVIEW VI Server schon für Dich.

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
Antwort schreiben 


Nachrichten in diesem Thema
Registerkarte "Callbacks" im Call Library Function Node. - rolfk - 24.11.2010 13:39

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  SubVI mit DLL Call fehlt in exe NoWay 1 6.233 30.08.2019 13:15
Letzter Beitrag: Freddy
  aus einem Library Import Installer machen galilio 5 13.098 04.04.2016 09:32
Letzter Beitrag: galilio
  SSH library läuft nur wenn geladen hansi9990 0 8.438 29.07.2015 21:12
Letzter Beitrag: hansi9990
  relativ Pfad für Call Library Function GT123 4 7.507 05.11.2012 16:18
Letzter Beitrag: rolfk
  Library not found or faild to load Cläudiö 3 8.641 19.12.2011 11:00
Letzter Beitrag: Cläudiö
  Einbindung der Vector XL Driver Library 5.3 in LabVIEW ... nmoerchen 15 26.682 17.10.2011 07:32
Letzter Beitrag: Mik

Gehe zu: