LabVIEWForum.de - 1 Rack 2 Geräte

LabVIEWForum.de

Normale Version: 1 Rack 2 Geräte
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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.
Hallo Dieter,

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.
Hallo Dieter,

Zitat:Wenn ich das richtig verstanden habe, sind globale nicht global im Sinne Rechner, sondern global im Sinne Hauptprogramm.
Ja.

Jedes Executable bekommt seinen eigenen Speicherbereich. So ist das seit Jahrzehnten bei Multitasking-Betriebssystemen…
Danke, dann werde ich mich nach etwas anderem umsehen.
Hallo Dieter,

ich bezweifle doch stark, dass 2 Executables gleichzeitig auf dieselbe GBIP Schnittstelle zugreifen können.

Aber wenn deine beiden Exen nie gleichzeitig laufen, dann ist doch alles kein Problem...

Gruß, Jens
(10.11.2022 17:12 )jg schrieb: [ -> ]Hallo Dieter,
Aber wenn deine beiden Exen nie gleichzeitig laufen, dann ist doch alles kein Problem...

Gruß, Jens

Es gibt ein VISA Lock. Ich weiß aber nicht, ob es űber verschiedene Exe funktioniert. Das könntest Du mal probieren.

Gruß Holger
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)
Referenz-URLs