LabVIEWForum.de
Fallunterscheidung zw. direktem und asynchronem Aufruf. - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Fallunterscheidung zw. direktem und asynchronem Aufruf. (/Thread-Fallunterscheidung-zw-direktem-und-asynchronem-Aufruf)



Fallunterscheidung zw. direktem und asynchronem Aufruf. - StefanKe - 05.03.2018 10:13

Hallo zusammen,

ich habe ein VI das eigenständig in einer While-Schleife läuft. Über einen Stop Button kann die While-Schleife und somit das VI beendet werden.
Dieses VI möchte ich aber auch aus einem übergeordneten VI asynchron aufrufen und auch wieder beenden. In diesem Fall sollte dann aber der Stop Button unsichtbar sein, damit das VI nur von dem übergeordneten VI beendet werden kann.

Wie kann in einem VI festgestellt werden, ob es asynchron von einem übergeordneten VI oder direkt aufgerufen wurde?

Ich habe die Fallunterscheidung schon über die "Aufrufkette" versucht. Diese gibt mir aber nur die Kette von SubVis zurück. Vis über einem asynchronen Aufruf werden in der Kette nicht ausgegeben.

Viele Grüße
Stefan


RE: Fallunterscheidung zw. direktem und asynchronem Aufruf. - GerdW - 05.03.2018 10:48

Hallo Stefan,

herzlich willkommen im Forum!

Du kannst bei einem asynchronen Aufruf vor dem Ausführen des subVIs ja noch programmatisch Werte im subVI vorgeben. Wenn du also hier ein (boolsches) Control auf TRUE (statt Default=FALSE) setzt, kannst du prima die Aufrufsituation signalisieren…
(Letztendlich gibst du beim Aufrufen des subVIs einfach einen Parameter vor!)


RE: Fallunterscheidung zw. direktem und asynchronem Aufruf. - StefanKe - 05.03.2018 11:28

Hallo Gerd,
vielen Dank für deine schnelle Antwort.
Deine Lösung funktioniert im Falle des asynchronen Aufrufs. Aber was passiert wenn danach das Vi wieder einzeln aufgerufen wird? Wenn das VI nicht neu geladen wird, steht der boolsche Wert weiter auf TRUE. Dies könnte man lösen indem der boolsche Wert beim beenden des Vis immer wieder auf FALSE zurückgestellt wird.


RE: Fallunterscheidung zw. direktem und asynchronem Aufruf. - jg - 05.03.2018 11:33

Ein VI-Eingang wird bei jedem Aufruf des VIs auf den Standard-Wert eingestellt, solange du keinen Draht mit dem Übergabewert verbindest.

Gruß, Jens


RE: Fallunterscheidung zw. direktem und asynchronem Aufruf. - GerdW - 05.03.2018 11:38

Hallo Stefan,

du musst das Control schon mit einem Defaultwert versehen, der dann den "normalen" Aufruf signalisiert...