05.04.2010, 15:08
Beitrag #1
|
vogster
LVF-Gelegenheitsschreiber
Beiträge: 80
Registriert seit: Feb 2007
8.2.1, 8.6.1, 9.0, 2011
2006
DE
80807
Deutschland
|
SubVI aus MainVI heraus abbrechen
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
|
|
|
05.04.2010, 17:01
Beitrag #2
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
SubVI aus MainVI heraus abbrechen
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:
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
05.04.2010, 18:10
Beitrag #3
|
IchSelbst
LVF-Guru
Beiträge: 3.697
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
SubVI aus MainVI heraus abbrechen
' 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.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
05.04.2010, 19:13
Beitrag #4
|
vogster
LVF-Gelegenheitsschreiber
Beiträge: 80
Registriert seit: Feb 2007
8.2.1, 8.6.1, 9.0, 2011
2006
DE
80807
Deutschland
|
SubVI aus MainVI heraus abbrechen
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
|
|
|
05.04.2010, 22:14
Beitrag #5
|
IchSelbst
LVF-Guru
Beiträge: 3.697
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
SubVI aus MainVI heraus abbrechen
' 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.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
06.04.2010, 11:40
Beitrag #6
|
labiNNaH
LVF-Grünschnabel
Beiträge: 31
Registriert seit: Sep 2005
5.0 - DS20xx
2005
EN
58xxx
Deutschland
|
SubVI aus MainVI heraus abbrechen
Hallo Vogster,
hier findest Du (Beitrag 6) ein ähnliches Beispiel.
Gruß Ralf
Diskutiere nie mit Idioten, sie ziehen dich runter auf ihr Niveau und schlagen dich dort mit ihrer Erfahrung.
|
|
|
| |