Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Wenn Du mit der Error Meldung das Programm beenden möchtest. Musst Du jede der While Schleifen beenden.
Deine unterste Schleife endet mit dem boolen EXIT_FLAG. Die mittlere mit EXIT aus dem state control und die obere Schleife mit dem Ereignis Programm_exit.
Alle drei musst mit den entsprechenden Aufrufen beenden. Erst dann endet dein Programm.
D.h. schreibe ein Programmteil, dass die Error Meldung auswertet und im Fehlerfall die drei Schleifen beendet.
(21.12.2020 14:12 )hulk schrieb: Aber war dann mein Ansatz vom Wochenende nicht besser, einen Fehlerfall als event zu triggern? Dann würde ich alles beenden.
besser oder schlechter ... wer soll denn das beurteilen - ich jedenfalls nicht :-)
Selbstverständlich kannst du auch her gehen und einen Event bei der Event Struktur auslösen und anschließend von dort aus dein Programm beenden. Du kannst auch ganz anders machen . Lediglich die nicht funktionierenden Lösungen solltest du nicht in die engere Wahl ziehen
Zitat:Nur warum funktionierte diese Variante nicht?
Weil der Zweig mit der Event-Struktur nicht beendet wird.
...oder meist du die Variante oben angesprochene Variante mit dem Event? Falls ja, dann musts du auch ein Ereignis auslösen, z.B. ein User Event oder Property Node, Value (signaling).
Guten Abend,
Ich meinte die Version mit dem Event.
Wenn ich den Fehlercluster als Event registriere, hätte ich vermutet, dass er automatisch etwas in der Event Schleife auslöst. Sah in der Theorie am plausibelsten aus.
21.12.2020, 20:11 (Dieser Beitrag wurde zuletzt bearbeitet: 22.12.2020 02:10 von Martin.Henz.)
da musst du den vom Error Cluster (der auf deinem Front-Panel) den Property Node "Value(signaling)" auswählen. Wenn du dort dann den Error Cluster rein stopfst, dann wird in der oberen Schleife das Ereignis "Value Change" ausgelöst.
Martin Henz
21.12.2020, 21:13 (Dieser Beitrag wurde zuletzt bearbeitet: 21.12.2020 21:14 von hulk.)
ich habe gleichzeitig mal eine Meldung für den user eingefügt.
Und der Form halber das VISA wieder geschlossen. An der Stelle soll nur geprüft werden, ob das Gerät angeschlossen ist.
Die Testsequenz folgt in anderen Schritten.
ich muss noch einmal stören. Irgendwas stimmt nicht.
Das Fehlerereignis löst aus, wenn das Gerät angeschlossen. (Verbindungstest erfolgreich).
Jedoch bekomme ich null Rückmeldung am Fehlerindicator oder in der event Schleife für "alter Wert/neuer Wert".
Mit Einzelschritten sehe ich, dass das event auslöst, aber ich sehe wie gesagt keinen Auslösegrund.
Ich habe mal den aktuellen Projektstand als Zip und das Haupt VI einzeln angehangen
Gruß
Steffen
23.12.2020, 11:40 (Dieser Beitrag wurde zuletzt bearbeitet: 23.12.2020 11:41 von jg.)
das Schreiben von "Value Signaling" löst auf jeden Fall ein Event aus, auch wenn sich der Wert mglw. gar nicht ändert (oder wie in deinem Fall, gar kein Fehler vorliegt).
In der Eventstruktur tust du aber so, als ob auf jeden Fall ein Fehler vorliegt, wenn du dieses Event abarbeitest.
Mgl. Lösungen: "Value Signaling" nur auslösen, wenn wirklich ein Fehler anliegt, oder entsprechend eine Fallunterscheidung in der Eventstruktur programmieren.
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!
Das sind eine Menge Fallstricke.
Wäre das angehängte eine Möglichkeit zur Fallunterscheidung?
Ich habe das Signaling einfach in eine Case structur gesetzt. Das true kommt von der Errorleitung