PLC

ST-Anweisung REPEAT

Die REPEAT-Schleife verwenden Sie wie die WHILE-Schleife, jedoch mit dem Unterschied, dass TwinCAT die Abbruchbedingung erst nach dem Ausführen der Schleife überprüft. Dieses Verhalten hat zur Folge, dass die REPEAT-Schleife mindestens einmal durchlaufen wird, egal wie die Abbruchbedingung lautet.

Syntax:

REPEAT
    <instructions>
UNTIL <boolean expression>
END_REPEAT;

TwinCAT führt die Anweisungen <instructions> solange aus, bis der boolesche Ausdruck <boolean expression> TRUE ergibt.

Wenn der boolesche Ausdruck bereits bei der ersten Auswertung TRUE ergibt, dann führt TwinCAT die Anweisungen genau einmal aus. Wenn der boolesche Ausdruck niemals den Wert TRUE annimmt, werden die Anweisungen endlos wiederholt, wodurch das Programm einen Laufzeitfehler verursacht.

Beispiel:

REPEAT
    nVar1 := nVar1*2;
    nCounter := nCounter-1;
UNTIL
    nCounter = 0
END_REPEAT;

Die WHILE- und die REPEAT-Schleifen sind in gewissem Sinne mächtiger als die FOR-Schleife, da die Anzahl der Schleifendurchläufe nicht bereits vor Ausführung der Schleife bekannt sein muss. In manchen Fällen können Sie nur mit diesen beiden Schleifenarten 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:

ExST-Anweisung CONTINUE
ST-Anweisung FOR
ST-Anweisung WHILE