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 

Daten per Queue von LabVIEW DLL an LabVIEW exe



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!

03.06.2008, 11:57
Beitrag #1

astraios Offline
LVF-Grünschnabel
*


Beiträge: 44
Registriert seit: Mar 2006

8.5
2006
de

80937
Deutschland
Daten per Queue von LabVIEW DLL an LabVIEW exe
Hallo,

ich habe folgende Situation:

Ich habe zum Einen mit LabVIEW eine DLL erstellt, die mehrere Funktionen zur Verfügung stellt. Beim Aufruf einer der DLL-Funktionen passiert nichts weiter als dass ein Datensatz in eine Queue geschickt wird.

Dann habe ich noch meine Hauptanwendung: Sie wartet auf Elemente in einer gleichnamigen Queue und soll die Daten dann verarbeiten und anzeigen.


Jetzt läuft also die Hauptanwendung (aus der LV IDE oder als exe) und wartet auf Daten.
Von einem anderen Programm (hier: Python Skript) wird die DLL verwendet und die verschiedenen Funktionen aufgrerufen.

Leider kommt jetzt in meiner Hauptanwendung über die Queue nix an. Die LabVIEW Anwendungen wurden alle mit der selben Version (8.5) erstellt.

Ich arbeite in den DLL Funktionen mit "Element einfügen" und in der Hauptanwenung mit "Element aus Queue entfernen".
Ist das bei dieser Kombination aus LV-DLL und EXE nicht möglich? Oder hab ich vielleicht doch was übersehen?


Danke schonmal im Voraus.

Robert

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.06.2008, 07:19 (Dieser Beitrag wurde zuletzt bearbeitet: 06.06.2008 07:21 von rolfk.)
Beitrag #2

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Daten per Queue von LabVIEW DLL an LabVIEW exe
' schrieb:Hallo,

ich habe folgende Situation:

Ich habe zum Einen mit LabVIEW eine DLL erstellt, die mehrere Funktionen zur Verfügung stellt. Beim Aufruf einer der DLL-Funktionen passiert nichts weiter als dass ein Datensatz in eine Queue geschickt wird.

Dann habe ich noch meine Hauptanwendung: Sie wartet auf Elemente in einer gleichnamigen Queue und soll die Daten dann verarbeiten und anzeigen.
Jetzt läuft also die Hauptanwendung (aus der LV IDE oder als exe) und wartet auf Daten.
Von einem anderen Programm (hier: Python Skript) wird die DLL verwendet und die verschiedenen Funktionen aufgrerufen.

Leider kommt jetzt in meiner Hauptanwendung über die Queue nix an. Die LabVIEW Anwendungen wurden alle mit der selben Version (8.5) erstellt.

Ich arbeite in den DLL Funktionen mit "Element einfügen" und in der Hauptanwenung mit "Element aus Queue entfernen".
Ist das bei dieser Kombination aus LV-DLL und EXE nicht möglich? Oder hab ich vielleicht doch was übersehen?
Danke schonmal im Voraus.

Robert

Das geht nicht. Queues sind einfach ein wenig Speicher innerhalb des Prozesses der sie started. Es ist sogar so dass Queues in LabVIEW innerhalb eines bestimmten Applikationskontextes existieren. Das heisst ein VI das von einem Projekt gestartet wurde und eine Queue "X" verwendet hat keine Möglichkeit um über Queues mit einem VI zu kommunizieren das aus einem anderen Projekt (oder dem globalen Applikationskontext, also ohne Projekt) aufgerufen wurde.

In Deinem Fall läuft die LabVIEW DLL unter dem Python Prozess (und die Queue wird vom LabVIEW Runtime System implementiert die durch diese DLL innerhalb des Python Prozesses instantiert wird). Deine LabVIEW IDE (oder ein LabVIEW executable) hat absolut keine Möglichkeit in den Speicher des Python Prozesses zu schauen. Das sind die Folgen von Speicherschutz in moderenen OSen und der Grund warum Applikation A nicht mehr wie in Windows 3.1 Tagen alle anderen Applikationen mit in den Abgrund reissen kann wenn sie spinnt.

Um Informationen zwischen Deinem Python Prozess und der LabVIEW Applikation auszutauschen wirst Du Inter-Applikation-Communication verwenden müssen, wie etwa externe Files (einfach aber nicht sehr effizient und elegant), TCP/IP Kommunikation (sehr flexibel und recht effizient aber nicht ganz trivial wobei Dir hier VI Server viel Arbeit abnehmen könnte), Shared Memory (erfordert Windows API Programmierung), oder Pipes (ebenfalls Windows API Programmierung).

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


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Motorisierter Prüfstand: Daten mit LabView auslesen montie 11 8.392 03.05.2019 09:20
Letzter Beitrag: montie
  Wie auf abgearbeitete Queue warten mez15 11 8.017 28.09.2017 13:02
Letzter Beitrag: TR61
  Datum Uhrzeit Queue DeleteAll 8 5.618 24.03.2017 15:47
Letzter Beitrag: GerdW
  LabVIEW 7.1 vi Code in LabVIEW 2015 öffnen Muri 9 6.824 01.03.2017 13:02
Letzter Beitrag: Muri
  TDMS in Queue laden gifo 8 5.404 07.01.2016 16:41
Letzter Beitrag: GerdW
  Fehlercluster via Queue hansi9990 23 14.231 07.08.2015 14:11
Letzter Beitrag: hansi9990

Gehe zu: