20.11.2014, 16:11
THINK Dataflow!
Ich habe mal deine Feedbacknode durch ein Schieberegister ersetzt und danach das Programm durch Autoclean-Up gejagt. Danach kommt das hier raus:
[attachment=51405]
Was passiert, wenn du deinen "Latch" Stopp Button drückst?
- Der Stopp-Button wird ausgelesen, die For-Loop beendet und der Stopp Button springt zurück auf False.
- Hierdurch wird aber nicht deine While-Loop beendet, sie startet den nächsten Step.
- In diesem Schritt führst du jetzt zwar kein Kommando mehr aus, ABER die Wartezeit diesen Schrittes wird jetzt abgearbeitet -> FAIL.
Der Vorteil einer Statemachine ist eigentlich, dass man die programmierten Schritte nicht statisch abarbeiten muss (im Prinzip machst du das), sondern dass man im Fehler- oder Abbruchfall dediziert zu einem "Abbruch-Case" springen kann, in dem man dann z.B. alles sauber ausschaltet.
Was beim nächsten Start des VI genau schief geht, keine Ahnung, da musst du einmal Fehlersuche betreiben (Errorcluster anzeigen, etc. pp.).
Gruß, Jens
Ich habe mal deine Feedbacknode durch ein Schieberegister ersetzt und danach das Programm durch Autoclean-Up gejagt. Danach kommt das hier raus:
[attachment=51405]
Was passiert, wenn du deinen "Latch" Stopp Button drückst?
- Der Stopp-Button wird ausgelesen, die For-Loop beendet und der Stopp Button springt zurück auf False.
- Hierdurch wird aber nicht deine While-Loop beendet, sie startet den nächsten Step.
- In diesem Schritt führst du jetzt zwar kein Kommando mehr aus, ABER die Wartezeit diesen Schrittes wird jetzt abgearbeitet -> FAIL.
Der Vorteil einer Statemachine ist eigentlich, dass man die programmierten Schritte nicht statisch abarbeiten muss (im Prinzip machst du das), sondern dass man im Fehler- oder Abbruchfall dediziert zu einem "Abbruch-Case" springen kann, in dem man dann z.B. alles sauber ausschaltet.
Was beim nächsten Start des VI genau schief geht, keine Ahnung, da musst du einmal Fehlersuche betreiben (Errorcluster anzeigen, etc. pp.).
Gruß, Jens