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!
Die Sequenz wird 2 mal ausgeführt und das Programm springt erst anschließend in den Zustand "Auf Benutzer warten". Warum? Die Sequenz soll nur 1 mal durchlaufen werden.
Das lässt sich auf Grund des Screenshots nicht sagen. Ich vermute eine Race-Condition auf Grund der Abarbeitung von Code parallel zu deinem Code-Ausschnitt.
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!
wie kann ich eine "Race-Condition" vermeiden? Was genau ist das eigentlich?
Ich habe übrigens herausgefunden, dass wenn sich maximal eine "Warten" Funktion in der gesamten Sequenzstruktur befindet, dass das Problem nicht auftritt. Sobald ich eine zweite "Warten" Funtkion einfüge wird die Sequenz zweimal ausgeführt. Vielleicht gibt es eine andere Möglichkeit, bei der das Problem nicht auftritt? Evtl. eine zeitgesteuerte Sequenzstruktur?
Vielen Dank im Voraus für deine Hilfe!
Grüße
Marcel
P.S.: In der außen befindlichen While-Schliefe befindet sich kein weiterer Programmcode, außer der abgebildeten State Machine!
Zur weiteren Beantwortung deiner Fragen wäre vorerst ein Bild mit dem kompletten Inhalt der While-Schleife sowie ein Bild mit dem kompletten Inhalt des Cases "Auf Benutzer warten" notwendig. Schön wäre natürlich das VI selbst.
Race-Conditions ergeben sich aus parallelen Programmabläufen, in deren Folge man nicht definitiv sagen kann, welchen Wert eine bestimmte Dateninstanz hat.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
(19.01.2018 23:16 )mprocket schrieb: Ich habe übrigens herausgefunden, dass wenn sich maximal eine "Warten" Funktion in der gesamten Sequenzstruktur befindet, dass das Problem nicht auftritt. Sobald ich eine zweite "Warten" Funtkion einfüge wird die Sequenz zweimal ausgeführt.
Also das ist sicher NICHT die Ursache für die 2-malige Ausführung.
Beantworten lässt sich das aber nur bei vollständiger Kenntnis deines VI (wie IchSelbst schon geschrieben hat). Meine Glaskugel ist leider kaputt :glass2:
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!
(21.01.2018 13:46 )mprocket schrieb: die Sequenz 2 mal ausgeführt.
Das Schaltverhalten des Buttons "SEW Freigabe" (Prüfstand hochfahren) steht auf "Bis zum Loslassen schalten". Dieses Verhalten bewirkt Events sowohl beim Drücken des Buttons als auch beim Loslassen des Buttons. Demzufolge wird der Event und die Sequenz pro Klick zweimal ausgeführt.
Ich empfehle ein Umstellen des Verhaltens auf "Latch beim Loslassen".
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).