LabVIEWForum.de
subvi beenden - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: subvi beenden (/Thread-subvi-beenden)

Seiten: 1 2


subvi beenden - M4Z - 28.06.2010 14:17

Ich habe die ganzen Lösungsvorschläge hier im Forum schon ausprobiert... aber sobald das ganze in der While-Schlaufe ist, läufts nicht mehr.
Ich bin mir ziemlich sicher, dass gar keine neue Notification gemacht wird, weil das Programm ja schon im SubVI hängt
(die häufig aufgerufenen VIs sind Fahrbefehle und nich zeitkritisch, daher wäre das egal)


[attachment=27426]

LV 2009

[attachment=27427]
[attachment=27428]


subvi beenden - GerdW - 28.06.2010 14:27

Hallo M4Z,

also bei mir läuft's - sobald man das NotifierRequest/Destroy korrekt außerhalb der Schleifen durchführt...

Lv09_img2


subvi beenden - M4Z - 28.06.2010 14:38

Hallo GerdW,
danke für den Hinweis, das ist mir wohl reingerutscht.
Das Problem ist, dass das SubVI in der gleichen While-Schlaufe wie der Abbruch-Button ist. Damit funktioniert dann deine Lösung leider auch nicht mehr.


subvi beenden - GerdW - 28.06.2010 14:54

Hallo M4Z,

"Das Problem ist, dass das SubVI in der gleichen While-Schlaufe wie der Abbruch-Button ist"

Dann denk mal über den Datenfluß nach...
1) Das MainVI kann nur dann iterieren, wenn das SubVI abgearbeitet ist (steckt ja in der Schleife drin).
2) Nur nach dem Iterieren wird der Abbruch-Button abgefragt.
3) Das subVI erhält den Wert erst in der nächsten Iteration. Zurück zu 1)

Siehst du den Fehler?
Ansonsten: Parallel arbeitende Schleifen verwenden...

P.S.: Wenn das subVI ins MainVI gehört, warum hattest du es dann nicht in deinem Beispiel so gezeigt?


subvi beenden - M4Z - 28.06.2010 15:11

Genau das ist das Problem. Der Button soll eigentlich auch nicht benutzt werden, es ist halt eine Art NotStopp.
Mit parallel arbeitenden Schleifen meinst du im Main oder im SubVI? kann mir da grade nichts drunter vorstellen, sitze aber auch schon den ganzen Tag mit Kopfschmerzen vor dem Bildschirm.
Mit References würde es ja gehen, aber der Aufwand dafür ist riesig.
Im Beispiel ist das VI doch in der Schlaufe? Hab zwar vergessen es zu beschreiben, aber im Screen ist es drin.

danke schonmal!


subvi beenden - GerdW - 28.06.2010 15:19

Hallo M4Z,

in deinem Upload des mainVI war ein "untitled.vi" als subVI eingebunden - da das nicht dabei war, hatte ich's gelöscht...
Parallel bedeutet nebeneinander (ohne Datenfluß-Abhängigkeit) und nicht ineinander!

Ich habe mal dein mainVI an die neuesten Anforderungen angepasst, zumindestens um das Funktionsprinzip zu zeigen... (Und ich habe den Abbruch-Button auf Latch umgestellt.)


subvi beenden - M4Z - 28.06.2010 15:30

Ach so, da hatte ich wohl geschlampt.
Dass parallel nebeneinander bedeutet ist mir klar, ich konnt mir nur nichts darunter vorstellen.
Werde jetzt mal schauen, ob ich die VIs parallel laufen lassen könnte - aber die sind zum Teil noch in anderen SubVIs verwendet...
Für mich wars das für heute, vielen Dank für deine Hilfe und die nützlichen Tipps!


subvi beenden - M4Z - 30.06.2010 11:49

Ich hab das Problem jetzt gelöst. Im Nachhinein alles ganz logisch:
Im Main VI eine Parallele Whileschleife zur StateMachine, darin der Stopp-Button, der auf einen Notifier schreibt.
In den entsprechenden SubVIs dann die Abfrage der Notifier mit an die Stopp-Bedingung und gut ist.
Um die StateMachine abzubrechen brauchte ich noch eine Selbsthaltung mit dem Stopp-Button, aber sonst nichts.