Referenziertes VI stoppen - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Referenziertes VI stoppen (/Thread-Referenziertes-VI-stoppen) |
Referenziertes VI stoppen - marhi - 03.03.2016 13:43 Hallo zusammen, folgende Frage. Bei dem angehängten Schnipsel stoppe ich zeitgleich ein VI das ich über asynchronen Aufruf gestartet habe und überwache, wann das VI beendet ist. Merkwürdigerweise wird zwar in dem entsprechenden VI der Stoppbutton gedrückt, aber das VI bleibt auf Status-Running und auch der Pfeil Run zeigt dies an. Wenn ich allerdings die "Lampe" anschalte, gibt es kein Zeichen, dass das VI noch läuft (keine Bewegung hier). Hatte zuvor mit allgemeiner VI-Referenz gearbeitet, da funktionierte es. Leider wird der Code dann unübersichtlicher, weil ich vor dem VI Start einige Werte setzen muss. Verstehe nicht, warum es sich hier anders verhält. Hat jemand eine Idee? danke, marhi. [attachment=55413] RE: Referenziertes VI stoppen - GerdW - 03.03.2016 13:47 Hallo marhi, mit dem gezeigten Code setzt du ein Control namens "Stop" auf TRUE - nicht mehr, aber auch nicht weniger. Interessant wäre jetzt allerdings, ob dein "referenziertes VI" dieses Control überhaupt (und wann) ausliest/auswertet… Zitat:Wenn ich allerdings die "Lampe" anschalte, gibt es kein Zeichen, dass das VI noch läuft (keine Bewegung hier).Das heißt nur, dass das VI gerade auf irgendetwas wartet. Auch hier wäre es hilfreich, dieses ominöse VI zu sehen… RE: Referenziertes VI stoppen - Freddy - 03.03.2016 14:36 Hallo marhi, wird das VI noch von einem anderen VI benutzt, bekommst Du nie den Status Idle. Gruß Freddy RE: Referenziertes VI stoppen - marhi - 04.03.2016 08:55 Hallo zusammen. Zunächst einmal:Das aufgerufene VI wird nur an einer Stelle aufgerufen. Ich hänge einen Screenshot an. Es erzeugt ein TriggerSignal auf unbestimmte Zeit und schaltet dieses ab, wenn es per Stopp oder Fehler oder Stopp in anderen verknüpften VIs angehalten wird. [attachment=55421] aufgerufenes VI RE: Referenziertes VI stoppen - GerdW - 04.03.2016 09:05 Hallo marhi, dann lege doch mal einen Breakpoint in dein subVI, direkt vor die While-Schleife. Ab da dann per Highlighting beobachten, was das subVI macht und wie/ob es auf deinen Stop-Befehl reagiert… Wieso musst du dieses subVI überhaupt asynchron starten? Warum nicht einfach parallel zur Hauptschleife aufrufen? RE: Referenziertes VI stoppen - jg - 04.03.2016 10:10 Mit aller Vorsicht: Wenn ich mich richtig erinnere, dann haben auch Kollegen von mir ab/bei LabVIEW 2013 ein Problem mit dieser PropertyNode. Seltsamerweise wird immer der Status "Running" zurückgegeben, sobald das VI auch nur im Speicher ist. Gruß, Jens RE: Referenziertes VI stoppen - Lutzi - 07.03.2016 08:14 Ein Vi besitzt dann den Status running, wenn es als Sub-Vi in einem running Vi sitzt. Wenn ein Vi nur über Vi-Server aufgerufen wird und ausgeführt wird, dann besitzt es den Status 'running top level', ist lediglich die Referenz im Speicher, dann gilt der Status 'idle'. Also, wenn ein Vi wirklich Stoppen soll (im Sinne von bearbeitbar), dann darf es in keinem anderen Vi als Unterfunktion eingehangen sein! RE: Referenziertes VI stoppen - rolfk - 08.03.2016 12:07 (04.03.2016 10:10 )jg schrieb: Mit aller Vorsicht: Das ist nicht erst seit LabVIEW 2013 so. Ein VI bekommt den Status running, sobald es in irgendeiner Hierarchy benützt wird die running ist. Auch wenn eine strikte VI Server Referenz darauf offen ist. Der State Property kennt nur bad", "idle", "running", "run top level" und sonst nichts. Um unterscheiden zu können op ein VI wirklich gerade running ist oder nur Teil einer running Hierarchy und/oder mit einer offenen strikten VI Reference müsste der State "running" aufgeteilt werden in "reserved for running" und "running" aber das hätte weitreichende Folgen für die Backwardskompatibilität von bestehenden Applikationen. |