(24.10.2011 08:54 )M@rRy schrieb: (24.10.2011 08:47 )jg schrieb: Da musst du dich verlesen haben. Eine globale LV-Variable ist natürlich nur innnerhalb einer "Instanz" bekannt, also nur innerhalb der LV-Umgebung oder bei einer Exe nur innerhalb der Exe.
Genau das meinte ich damit. Hab halt probeweise anstelle zweier exen eine exe mit bekanntem VI gebaut, da ging es aber oke dann muss ich jetzt schauen was ich da am besten nehme. Hatte halt auf den Speicher gebaut weil das eine Programm deutlich langsamer läuft als das andere, was gewollt ist und somit nicht jeden Wert mitbekommt. Das ist auch nicht schlimm und sogar gewollt aber bei einer festen Verbindung, wie sie durch TCP ja eigentlich vorhanden ist, wird es interessant. Andererseits weiß ich nicht ob ein UDP-Paket einfach "futsch" is wenn es von der Gegenseite ignoriert wird. Gibt es dazu vielleicht noch eine Rat mit auf den Weg zurück ins WWW?
Wenn Du statt einer globalen Variable ein LabVIEW 2 Style Global (oder intelligente Global, oder Funktionsglobal) verwendest hast Du schon fast alles was nötig ist. Mittels VI Server kannst Du dann dieses VI in der anderen Applikationsinstanz aufrufen und ausführen. Geht alles zwar über TCP/IP aber LabVIEW macht das ganze Protokoll für Dich.
Grundsätzlich funktioniert das ganz genau gleich wie eine normale Call By Reference Operation mittels VI Server, nur machst man vor dem Open VI Reference auch noch eine explicite Open Application Reference, der man die Addresse und Portnumber der anderen Applikation übergibt. Dann in der anderen Applikation auch noch sicherstellen dass man den VI Server über TCP/IP enabled hat und eine Portnumber konfiguriert hat et voila!