ST-Anweisung WHILE

Die WHILE-Schleife verwenden Sie wie die FOR-Schleife, um Anweisungen mehrfach auszuführen, bis die Abbruchbedingung zutrifft. Die Abbruchbedingung einer WHILE-Schleife ist ein boolescher Ausdruck.

Syntax:

WHILE <boolean expression> DO
    <instructions>
END_WHILE;

TwinCAT führt die Anweisungen <instructions> solange wiederholt aus, wie der boolesche Ausdruck <boolean expression> TRUE ergibt. Wenn der boolesche Ausdruck bereits bei der ersten Auswertung FALSE ist, dann führt TwinCAT die Anweisungen niemals aus. Wenn der boolesche Ausdruck niemals den Wert FALSE annimmt, werden die Anweisungen endlos wiederholt, wodurch ein Laufzeitfehler entsteht.

Beispiel:

WHILE nCounter <> 0 DO
    nVar1 := nVar1*2
    nCounter := nCounter-1;
END_WHILE;
ST-Anweisung WHILE 1:

Sie müssen programmatisch sicherstellen, dass keine Endlos-Schleife verursacht wird.

Die WHILE- und die REPEAT-Schleifen sind in gewissem Sinne mächtiger als die FOR-Schleife, da man nicht bereits vor der Ausführung der Schleife die Anzahl der Schleifendurchläufe wissen muss. In manchen Fällen ist es somit nur möglich, mit diesen beiden Schleifenarten zu arbeiten. Wenn jedoch die Anzahl der Schleifendurchläufe klar ist, dann ist eine FOR-Schleife zu bevorzugen, um Endlosschleifen zu vermeiden.

In Erweiterung zum Standard IEC 61131-3 können Sie innerhalb der WHILE-Schleife die CONTINUE-Anweisung verwenden.

Siehe auch: