LabVIEWForum.de - Problem mit Sequenz in for-Schleife

LabVIEWForum.de

Normale Version: Problem mit Sequenz in for-Schleife
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebe LabView Gemeinde,

Ich versuche ein LabView Programm zu schreiben, welches eine Sequenz (mit fester Reihenfolge) innerhalb einer for-Schleife ausführen soll. Mit dem angehängten Bild versuche ich mein Problem zu verdeutlichen.
In einer flachen Sequenz aus 2 Frames soll zuerst das erste Frame und danach das zweite Frame abgearbeitet werden. In meinem Fall sind dies Wartezeiten mit einer Ausgabe der jeweils vergangenen Wartezeit. Im ersten Durchlauf der for-Schleife funktioniert die sequentielle Abarbeitung, aber im 2. und den folgenden Durchläufen werden die Frames parallel abgearbeitet, und dies zu verhindern ist mein Problem.
Ich verwenden LabView 2010 und bin für jeden Ratschlag dankbar.

Gruß,
Krypt
Hallo Krypt,

Zitat:im 2. und den folgenden Durchläufen werden die Frames parallel abgearbeitet, und dies zu verhindern ist mein Problem.
Ich bezweifle, dass die Frames parallel abgearbeitet werden. Eher dürfte doch der Fall sein, das die "Elapsed Time" einfach mal abgelaufen ist. Hast du schon mal mit deren "Reset"-Eingängen rumgespielt?

Nächste Mal bitte ein VI anhängen statt eines Bildes!
Mit den Reset Eingängen habe ich schon herumgespielt, der Autoreset ist defaultmäßig true.

Ich gebe mal ein kleines Beispiel:
Das Time Target von Frame 1 ist 4 sekunden und das von Frame 2 ist 3 sekunden.
Wird das Program gestartet, zählt im ersten Durchlauf der for-Schleife die Elapsed Time 1 von 0 bis 4 sekunden und danach die Elepsed Time 2 von 0 bis 3 sekunden.
Im 2. Durchlauf der for-Schleife beginnt die Elapsed Time 1 bei 3 sekunden und zählt bis 4 sekunden.
Das erneute Zählen der Elapsed Time 1 wurde also folglich schon begonnen, bevor der 2. Durchlauf der for-Schleife begonnen hat.
Hallo Krypt,

Zitat:Das erneute Zählen der Elapsed Time 1 wurde also folglich schon begonnen, bevor der 2. Durchlauf der for-Schleife begonnen hat.
Richtig. Willst du doch auch so, da du ja AutoReset=TRUE eingestellt hast. Dann wird nämlich sofort nach Ablauf der ElapsedTime wieder von vorn begonnen - und somit zählen die 3s von ElapsedTime2 schon mit...
Ah ok klingt einleuchtend Smile
Wenn ich das richtig verstanden habe, muss ich also Autoreset= False setzen, und einen reset der Elapsed Time unmittelbar vor Beginn der jeweiligen While-Schleife vornehmen
Hallo krypt,

ja, und man könnte dabei auch auf ExpressVIs verzichten und "richtig" programmieren Smile
[attachment=32928]
Nur mal so als Anregung und als Vergleich zu deinem Bild, gleiche Funktionalität sollte natürlich in ein subVI ausgelagert werden...
Herzlichen Dank!
Das hat mein Problem gelöst! Smile

Liebe Grüße,
Krypt
Referenz-URLs