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!
Hallo, ich habe ein 4-fach-Voltmeter (eine GPIB-Adresse). Ein Messprogramm öffnet 2 dynamische VI's, die jeweils 1 Kanal auslesen.
Für ein zusätzliches Regel-Programm soll ein dritter Kanal ausgelesen werden. Alle Programme sind executable und unabhängig (und Labview).
Um zu verhindern, dass die Antworten durcheinanderkommen, brauche ich eine einfache Synchronisation zwischen verschiedenen exe's auf dem selben Computer,
wobei ich das Anschluss-Paneel der dynamischen VI's möglichst nicht verändert werden soll.
Global Variables haben sich nicht bewährt.
Anzeige
10.11.2022, 09:53 (Dieser Beitrag wurde zuletzt bearbeitet: 10.11.2022 10:05 von GerdW.)
Zitat:Alle Programme sind executable und unabhängig (und Labview).
Um zu verhindern, dass die Antworten durcheinanderkommen, brauche ich eine einfache Synchronisation zwischen verschiedenen exe's auf dem selben Computer, wobei ich das Anschluss-Paneel der dynamischen VI's möglichst nicht verändert werden soll.
Und was hat das angehängte VI mit deinem Problem zu tun?
Was an diesem VI ist "dynamisch"? Was meinst du mit "dynamisch aufrufen"?
Dieses VI greift auf globale Variablen zu: wenn deine "Programme" alle als Executable vorliegen, dann verwenden sie alle ihre eigenen globalen Variablen und können darüber keine Informationen austauschen.
Um Executables zu synchronisieren müsstest du eine übergeordnete Instanz implementieren, die diese 3 Executables verwaltet…
Das Hauptprogramm ruft über eine gepackte Bibliothek mehrere Unterprogramme auf, die jeweils ein Messgerät auslesen. Ich konnte auch die Unterprogramme, die auf die selbe Schnittstelle zugreifen synchronisieren. Jetzt soll ein unabhängiges/separates Regelprogramm Daten eines Kanals eines Messgerätes, das bereits genutzt wird, auslesen, was jedoch zu Verwirrungen führt. Wenn ich das richtig verstanden habe, sind globale nicht global im Sinne Rechner, sondern global im Sinne Hauptprogramm.
Vielen Dank euch allen,
es ist viel einfacher: es gibt in der VISA-Fortgeschrittenen Palette die Funktion "VISA Locking.vi" und das entsprechende Gegenstück.
Das funktioniert auch zwischen gleichzeitig laufenden Programmen gleichgültig, ob vi oder exe (allerdings nur mit LV2020 geprüft)