LabVIEWForum.de
While Schleife durchläuft ein zweites mal nach beenden - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: While Schleife durchläuft ein zweites mal nach beenden (/Thread-While-Schleife-durchlaeuft-ein-zweites-mal-nach-beenden)



While Schleife durchläuft ein zweites mal nach beenden - p4tti - 15.09.2016 08:53

Hallo zusammen,

ich habe eine Programm mit einer While-Schleife, wenn ich diese beende durchläuft das Programm jedoch noch ein zweites mal und beendet erst dann.

Ich konnte dieses Problem mit einer Sequenz beheben, jetzt habe ich habe noch ein eigenes SubVI eingebaut und habe den gleichen Fehler wieder.

Hier 2 Screenshots aus dem Programm:

[attachment=56621]

[attachment=56622]

Vllt hat ja schon mal einer das gleiche Problem.

Gruß
p4tti


RE: While Schleife durchläuft ein zweites mal nach beenden - jg - 15.09.2016 09:09

THINK Dataflow!

Alles was parallel abgearbeitet werden kann, wird auch parallel abgearbeitet. In deinem Fall bedeutet das: Die lokale Variable Heizung stoppen wird mit 99,999% Wahrscheinlichkeit gleich zu Beginn der Abarbeitung des Codes der While-Loop ausgelesen (Merke: eine lokale Variable bedeutet immer eine Datenkopie!). Wenn du erst danach "Heizung stoppen" auf TRUE setzt, dann bekommt das LabVIEW erst beim nächsten Abarbeiten der While-Loop mit.

Gruß, Jens


RE: While Schleife durchläuft ein zweites mal nach beenden - GerdW - 15.09.2016 09:17

Hallo p4tti,

allgemeine Code-Kritik (zusätzlich zu Jens' richtiger Feststellung):
"Fehler While2"
- Wozu eine Sequenz-Struktur? Ist unnötig…
- Es gibt FormatIntoString, damit würde der Inhalt der Case-Struktru deutlich einfacher…
- Wozu die TRUE-Konstante? Warum nicht den boolschen Output direkt mit dem Ergebnis des Vergleichs verbinden?
- Ctrl-U benutzen…
- das Terminal "Fehlermeldung" sollte außerhalb der Case-Struktur liegen: es ist ein Ausgabewert dieses subVIs, der im FALSE-Case momentan undefiniert ist!

"Fehler While1"
- Wozu die Sequenz-Struktur?
- Warum so viele lokale Variablen?
- Wie du die "80" in ein Byte-Array (?) umwandelst, sieht mir sehr gefährlich aus…
- Wenn man Fehler mit Fehlercode und Beschreibung ausgibt, könnte man auch einen "normalen" Errorcluster verwenden…


RE: While Schleife durchläuft ein zweites mal nach beenden - p4tti - 15.09.2016 09:18

Okay, ich habe es zwar noch nicht ganz verstanden, da das hier ja funktioniert:

[attachment=56623]

Gruß
p4tti


@ Gerd

Danke für die Hinweise, ich arbeite erst seit ein paar Wochen mit LabVIEW, ich werde erstmal diese Fehler beheben.

Gruß
p4tti


RE: While Schleife durchläuft ein zweites mal nach beenden - GerdW - 15.09.2016 09:28

Hallo p4tti,

Zitat:da das hier ja funktioniert
Hier wird eine lokale Variable als einziges in einer While-Loop ausgelesen (wieder mit unnötiger Sequenzstruktur!). Die While-Loop läuft dabei ungebremst so schnell es nur geht: selbst wenn der Fehler hier auch auftreten würde, würdest du ihn aufgrund der Abarbeitungsgeschwindigkeit nicht bemerken!


RE: While Schleife durchläuft ein zweites mal nach beenden - jg - 15.09.2016 10:34

Offtopic2
(15.09.2016 09:18 )p4tti schrieb:  Danke für die Hinweise, ich arbeite erst seit ein paar Wochen mit LabVIEW, ich werde erstmal diese Fehler beheben.

Dann Profil_ergaenzen - LabVIEW-Erfahrung seit 2004?