(01.09.2015 13:13 )GerdW schrieb: Du verknüpfst deine Bedingungen komisch:
- "R-Global" soll FALSE sein für einen Abbruch
- Der Fehlercluster soll TRUE sein für einen Abbruch
- beides wird OR-verknüpft und auf ein Stopp-Terminal geführt, welches bei TRUE die Schleife beendet (wenn ich dein Bild richtig deute)
Vielleicht solltest du entweder R-Global invertieren oder deine logische Verknüpfung anpassen!?
Wo wird "R-Global" initialisiert?
Wo wird "R-Global" gesetzt?
>>>
Es ist nur eine Prinzipdarstellung, was nicht besonders praktisch ist. Ich sehe es ein.
Muss dringend eine Internetverbindung einrichten :/
<<<
R-Global ist selbstverständlich invertiert, bevor der Wert in die ODER-Verknüpfung geht.
R-Global wird mit FALSE zu Beginn der Hauptanwendung initialisiert.
Schaltverhalten ist 'Beim Drücken schalten' (oben links in der Auswahlmatrix).
R-Global ist im Hauptprogramm direkt mit dem Schalter auf dem Frontpanel verbunden, wird dort gesetzt. Daher auch die While-Schleife im Event [Remote], um den Zustand zu checken.
R-Global wird im SubVI per UDP-Befehl String:"Stopp" gesetzt. Die While-Schleife des SubVI rauscht ohne zusätzliches Timing durch.
Die Vermutung mit der verletzten Race Condition habe ich, da bei aktiver Highlight-Funktion der Abbruch funktioniert.
Vom Gedanken her wollte ich eigentlich erreichen, dass immer erst die While-Schleife im SubVI beendet wird und dann der Event-Case verlassen.
1. Fall: UDP fordert stoppen -> SubVI endet, über lokale Variable R-Stopp wird Event-Case verlassen
2. Fall: Remote-Schalter wird FALSE -> SubVI endet, über lokale Variable R-Stopp wird Event-Case verlassen