LabVIEWForum.de
Datenaustausch zwischen zwei LabView-Programmen (Exe) - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenkommunikation (/Forum-Datenkommunikation)
+---- Thema: Datenaustausch zwischen zwei LabView-Programmen (Exe) (/Thread-Datenaustausch-zwischen-zwei-LabView-Programmen-Exe)



Datenaustausch zwischen zwei LabView-Programmen (Exe) - F.Bi - 30.09.2011 07:29

Eine Ablaufsteuerung (LabView-Programm - Sender.exe) soll auf dem gleichen PC eine Funktion in einem zweiten LabView-Programm (Empfang.exe) auslösen. Das sollte über eine Shared Variable (Umgebungsvariable) möglich sein.
Gibt es noch eine weitere Möglichkeit?

Es soll ein True von dem einem Exe Programm zu dem anderen geschickt werden. Shared Variablen sind ja auch zum Datenaustausch von PC zu PC über ein Netzwerk vorgesehen, da der Datenaustausch aber "nur" auf dem einen PC stattfinden muss, erscheint mir die Lösung über eine Shared Variable etwas übertrieben.
Außer Shared Variablen kenne ich aber keine andere Möglichkeit, mit Shared Variablen habe ich bisher aber auch noch nicht gearbeitet. Bei der Lösung mit Shared Variablen spielt wohl auch die Firewall eine Rolle.


RE: Datenaustausch zwischen zwei LabView-Programmen (Exe) - GerdW - 30.09.2011 07:59

Hallo F.,

mir fällt auf die Schnelle zum Datenaustausch ein:
- Dateien
- Registry-Einträge
- VI-Fernsteuerung
- UDP
- TCP
- SharedVariables
- DAQmx mit AO/DO und AI/DI-Kanälen
- ...


RE: Datenaustausch zwischen zwei LabView-Programmen (Exe) - Y-P - 30.09.2011 08:33

Es gibt auch noch die Network-Stream-VIs.
http://www.labviewforum.de/Thread-Network-Streaming-mit-VIs-der-Network-Stream-Palette?highlight=Network
[attachment=36222]

Gruß Markus


RE: Datenaustausch zwischen zwei LabView-Programmen (Exe) - F.Bi - 30.09.2011 08:54

Danke für die schnellen Antworten.

Die Frage habe ich wohl etwas verwirrend geschrieben...

Die beiden LabView Exe-Programme laufen auf einem PC.
Der Datenaustausch besteht nur aus einem "True" in eine Richtung. Eine Benutzereingabe (Start eines Vorganges) in dem einen Programm soll optional durch den Ablauf in dem anderen Programm ausgelöst werden können.

Die SharedVariables schaue ich mir noch mal genauer an, das funktioniert ja auch ohne Netzwerk, ich muss aber nur sicher sein, dass nicht irgendwann mal die Firewall (z.B. nach einem Update o.ä.) dazwischen funkt.

Network-Stream sieht ja auch ganz gut aus, das werde ich auch mal probieren, da es ja auch Lokal funktionieren müsste.


RE: Datenaustausch zwischen zwei LabView-Programmen (Exe) - Y-P - 30.09.2011 11:39

Tut es. So ist es auch in meinem Bsp. (Localhost ist ja 127.0.01) programmiert. Statt dem Typ "Integer" musst Du halt "Boolean" anschließen. Shared Variables verwende ich auch oft. Damit hatte ich bis jetzt auch noch keine Probleme.

Gruß Markus

(30.09.2011 08:54 )F.Bi schrieb:  Network-Stream sieht ja auch ganz gut aus, das werde ich auch mal probieren, da es ja auch Lokal funktionieren müsste.



RE: Datenaustausch zwischen zwei LabView-Programmen (Exe) - F.Bi - 04.10.2011 09:32

Ich habe es mal mit Network-Stream probiert. Wenn ich die zwei VIs in der Entwicklungsumgebung starte funktioniert das auch, aber die beiden Exe-Dateien funktionieren nicht. Die zuerst gestarte Datei wartet im Create Network Stream, aber bei der zweiten Datei liefert Create Network Stream Error -314350.
Die zwei VIs habe ich nach der Vorlage oben erstellt. Allerdings mit "Boolean", das ist aber nicht das Problem.

Meine Versuche mit SharedVariables haben auch nur in der Entwicklungsumgebung funktioniert. Das Problem liegt hier wohl bei dem Eintrag "Single Process" unter "Variable Type".
Da muss wahrscheinlich "Network-Published" stehen, aber ich weiß nicht, was unter "Enable Aliasing" eintragen muss.

Da es zwei verschiedene Projekte sind, habe ich das auch in zwei verschiedenen Project Explorer.


RE: Datenaustausch zwischen zwei LabView-Programmen (Exe) - jg - 04.10.2011 09:43

Also für die Kommunikation zwischen 2 Exen per Shared-Variable müssen die natürlich "Network-Published" sein.

Gruß, Jens


RE: Datenaustausch zwischen zwei LabView-Programmen (Exe) - F.Bi - 04.10.2011 11:48

(04.10.2011 09:43 )jg schrieb:  Also für die Kommunikation zwischen 2 Exen per Shared-Variable müssen die natürlich "Network-Published" sein.
Ja, aber wie muss ich was eintragen?
Muss ich da erst etwas erstellen, damit ich das über Browse auswählen kann? Wacko


RE: Datenaustausch zwischen zwei LabView-Programmen (Exe) - Y-P - 04.10.2011 11:54

Bei Shared Variables funktioniert es mit der EXE so:
http://www.labviewforum.de/Thread-Shared-Variables-in-Application-einbinden?pid=17865#pid17865

Mich wundert, dass das Bsp. mit dem Network-Streaming nicht als EXE funktionieren soll. Da machst Du bestimmt was falsch.
Ich teste es bei Gelegenheit mal.

Gruß Markus

EDIT: Noch was: Wenn Du 2 Netzwerkkarten in Deinem Rechner eingebaut (und aktiv!) hast, dann klappt das mit den SV's unter Umständen nicht richtig. Da hatte ich auch schon Probleme. Und dazu gibt es auch irgendwo was auf der NI-Webseite, dass das nicht richtig tut.

EDIT2: Zwecks Fehler: Hast Du da mal nachgeschaut: http://digital.ni.com/public.nsf/allkb/E5EC6165CB0B80F78625778A0065B9DA ?


RE: Datenaustausch zwischen zwei LabView-Programmen (Exe) - F.Bi - 18.10.2011 13:31

Das Problem habe ich jetzt mit Shared-Variable gelöst. Es funktioniert mit zwei Exen aus zwei Projekten. Smile
Variable Type: Network.Published
Enable Aliasing: nichts -> Dadurch muss (kann) man bei Bind to nichts angeben. Da wollte ich immer eine Adresse eintragen Wall

Mit Network-Published habe ich nichts mehr weiter probiert. Das Rendezvous-Verhalten ist für den Anwendungsfall wahrscheinlich auch nicht so optimal.