Instruction ST : REPEAT
le REPEAT boucle est utilisée comme la TANDIS QUE boucle, mais à la différence que CODESYS ne vérifie la condition d'abandon qu'après l'exécution de la boucle. La conséquence de ce comportement est que le REPEAT boucle est exécutée au moins une fois, quelle que soit la condition d'abandon.
Syntaxe:
REPEAT <instructions> UNTIL <boolean expression> END_REPEAT;
CODESYS exécute le <instructions> déclarations jusqu'au <Boolean expression> renvoie VRAI.
Si l'expression booléenne renvoie déjà TRUE lors de la première évaluation, CODESYS exécute les instructions précisément une fois. Si l'expression booléenne n'applique jamais la valeur TRUE, les instructions sont répétées à l'infini, ce qui entraîne une erreur d'exécution.
REPEAT Var1 := Var1*2; iCounter := iCounter-1; UNTIL iCounter = 0 END_REPEAT;
Dans un certain sens le WHILE et REPEAT les boucles sont plus puissantes que les POUR boucle, puisque le nombre d'exécutions de la boucle n'a pas besoin d'être déjà connu avant son exécution. Dans certains cas, vous ne pouvez travailler qu'avec ces deux types de boucles. Cependant, si le nombre d'exécutions de boucle est clair, alors un FOR loop est préférable afin d'éviter les boucles infinies.
En tant qu'extension de la norme CEI 61131-3, vous pouvez utiliser le CONTINUEZ déclaration au sein de la WHILE boucler.