Skip to main content

ST-Anweisung: FOR

Die FOR-Schleife verwenden Sie, um Anweisungen mit einer bestimmten Anzahl von Wiederholungen auszuführen.

Syntax:

FOR <counter> := <start value> TO <end value> {BY <increment> } DO
  <instructions>
END_FOR;

Der Abschnitt innerhalb der geschweiften Klammern {} ist optional.

CODESYS führt die <instructions> solange aus, wie der <counter> nicht größer, oder - bei negativer Schrittgröße increment - kleiner als der <end value> ist. Dies wird vor der Ausführung der <instructions> geprüft.

Immer wenn die Anweisungen <instructions> ausgeführt worden sind, wird der Zähler <counter> automatisch um die Schrittgröße <increment> erhöht. Die Schrittgröße <increment> kann jeden ganzzahligen Wert haben. Wenn Sie keine Schrittgröße angeben, ist die Standard-Schrittgröße 1.

Beispiel 71. Beispiel
FOR iCounter := 1 TO 5 BY 1 DO
  iVar1 := iVar1*2;
END_FOR;
Erg := iVar1;

Wenn Sie iVar1 mit 1 vorbelegt haben, hat iVar1 nach der FOR-Schleife den Wert 32.



Achtung

Der Endwert <end value> darf nicht den gleichen Wert erhalten wie die Obergrenze des Datentyps des Zählers.

Wenn der Endwert des Zählers gleich der Obergrenze des Datentyps des Zählers ist, entsteht eine Endlosschleife. Beispielsweise entsteht im obigen Beispiel eine Endlosschleife, wenn iCounter vom Datentyp SINT ist und der <end value> gleich 127 ist, da der Datentyp SINT die Obergrenze 127 hat.

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