LabVIEWForum.de - SubVI aus MainVI heraus abbrechen

LabVIEWForum.de

Normale Version: SubVI aus MainVI heraus abbrechen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Forum,

kann ich aus einem Main-VI heraus ein SUB VI abbrechen, und zwar so, dass das MainVI weiterläuft?
Die Methode ist wahrscheinlich sehr unsauber, ich habe aber im SUB VI viele Melder, Queues und Schleifen,
die müsste ich ansonsten alle mit Timeouts etc. versehen.

Zumal das Programm auch sehr selten abgebrochen werden müsste.
Beim Ausführen von "Stopp" aus der Applikationssteuerung wird auch das MainVI beendet,
bei der Verwendung eines Mathodenkonten bekomme ich den Fehler 1000, "Das VI befindet sich in einem für diese Operation unzulässigem Zustand"

Hat noch jemand einen Tipp für mich?

Danke für die Mühe
Vogster
Also, empfehlen will ich das Vorgehen nicht, und ich weiß auch nicht, wie hierauf eine Exe reagiert, aber diese InvokeNode hört sich doch nicht schlecht an:
[attachment=25568]
Gruß, Jens
' schrieb:Die Methode ist wahrscheinlich sehr unsauber, ich habe aber im SUB VI viele Melder, Queues und Schleifen,
die müsste ich ansonsten alle mit Timeouts etc. versehen.
Die Methode ist definitiv unsauber. Ich rate von dieser Methode dringend ab. Wenn das SubVI abgebrochen wird, heißt das noch lange nicht, dass Queues und Melder geschlossen werden. Was ich auch sehr bezweifle ist, dass eine Queue/Melder-Operation, die gerade auf einem Endlos-Timeout hängt, abgebrochen wird.

Zitat:Zumal das Programm auch sehr selten abgebrochen werden müsste.
Sowas rechtfertigt selbst die unsaubersten Mittel nicht.

Zitat:bei der Verwendung eines Mathodenkonten bekomme ich den Fehler 1000, "Das VI befindet sich in einem für diese Operation unzulässigem Zustand"
Ein SubVI kann nur entweder per Datenfluß oder per VI-Server gestartet werden (von reentrant abgesehen). Ein per Datenfluß gestartet VI kann nicht per VI-Server (siehe "Abort VI") gestoppt werden.

Zitat:Hat noch jemand einen Tipp für mich?
Entweder einen sauberen Abbruch hineinprogrammieren (geht mit Referenzen, Userevents etc). Oder das SubVI per VI-Server starten. Dann sollte es auch mit Abort abbrechbar sein.
Hallo

und Danke für die Antworten.

Ich habe das SubVI aus dem Datenfluss heraus gestartet, daher hat wohl die AbortVI - Methode nicht
funktioniert. Ich habe ein VI noch nie über einen VI-Server gestartet, werde ich mir mal ansehen.

Wenn ich das richtig verstanden habe, dann ist die Abort - Methode generell unsauber.
Auch wenn ich das VI über einen VI - Server starte?

Ansonsten sieht das nach viel Arbeit aus!

Danke und Grüße.
Vogster
' schrieb:Wenn ich das richtig verstanden habe, dann ist die Abort - Methode generell unsauber.
Ich bin der Meinung, ein VI gehört "normal" beendet. Ein Abbrechen als solches gehört nicht zum normalen Beenden.

Zitat:Auch wenn ich das VI über einen VI - Server starte?
Auch wenn ein VI über den VI-Server gestartet wurde, ist ein Beenden, eigenlich Abbrechen, per se unsauber - auch wenn es funktioniert.
Hallo Vogster,

hier findest Du (Beitrag 6) ein ähnliches Beispiel.
Referenz-URLs