LabVIEWForum.de
Sequenz wird zweimal durchlaufen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Sequenz wird zweimal durchlaufen (/Thread-Sequenz-wird-zweimal-durchlaufen)



Sequenz wird zweimal durchlaufen - mprocket - 19.01.2018 16:08

Hallo Zusammen,

ich stehe mal wieder am Rande der Verzweiflung.

Die Sequenz wird 2 mal ausgeführt und das Programm springt erst anschließend in den Zustand "Auf Benutzer warten". Warum? Blink Die Sequenz soll nur 1 mal durchlaufen werden.

Grüße
Marcel


RE: Sequenz wird zweimal durchlaufen - jg - 19.01.2018 16:31

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


RE: Sequenz wird zweimal durchlaufen - mprocket - 19.01.2018 23:16

Hallo Jens,

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!


RE: Sequenz wird zweimal durchlaufen - IchSelbst - 20.01.2018 12:06

Hallo Marcel

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.


RE: Sequenz wird zweimal durchlaufen - jg - 20.01.2018 14:25

(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


RE: Sequenz wird zweimal durchlaufen - mprocket - 21.01.2018 13:46

Hallo Zusammen,

danke für eure Antworten. Anbei findet ihr mein VI. Es geht um den Zustand "SEW Freigabe".

Die Timing Funktion mag nicht die Ursache sein, dennoch wird bei mehreren "warten" Funktionen die Sequenz 2 mal ausgeführt.Huh

Danke für eure Hilfe und schönen Sonntag
Marcel


RE: Sequenz wird zweimal durchlaufen - IchSelbst - 21.01.2018 14:42

(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".


RE: Sequenz wird zweimal durchlaufen - mprocket - 21.01.2018 18:59

Hallo IchSelbst,

vielen Dank für die Lösung! Big Grin

Grüße
Marcel