Skip to main content

Instruction ST: FOR

le FOR loop est utilisé pour exécuter des instructions avec un certain nombre de répétitions.

Syntaxe:

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

La section à l'intérieur des parenthèses bouclées {} est facultative.

CODESYS exécute le <instructions> tant que le <counter> n'est pas supérieur à - ou dans le cas d'une valeur négative increment pas moins que - le <end value>. Ceci est vérifié avant l'exécution de la <instructions>.

Chaque fois que le <instructions> instruction ont été exécutées, le compteur <counter> est automatiquement augmenté de l'incrément <increment>. L'incrément <increment> peut avoir n'importe quelle valeur entière. Si vous ne spécifiez pas d'incrément, l'incrément standard est 1.

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

Si vous avez préconfiguré iVar1 avec 1, iVar1 a la valeur 32 après la boucle FOR.



Attention

La valeur finale <valeur finale> ne doit pas avoir la même valeur que la limite supérieure du type de données du compteur.

Si la valeur finale du compteur est égale à la limite supérieure du type de données du compteur, une boucle infinie en résulte. Par exemple, une boucle infinie donne l'exemple ci-dessus si iCounter est du type de données SINT et le <end value> équivaut à 127, puisque le type de données SINT a la limite supérieure 127.

En tant qu'extension de la norme CEI 61131-3, vous pouvez utiliser le CONTINUEZ déclaration au sein de la FOR boucler.