Dichiarazione ST: REPEAT
Il REPEAT loop è usato come il MENTRE loop, ma con la differenza che CODESYS controlla la condizione di interruzione solo dopo l'esecuzione del ciclo. La conseguenza di questo comportamento è che il REPEAT loop viene eseguito almeno una volta, indipendentemente dalla condizione di interruzione.
Sintassi:
REPEAT <instructions> UNTIL <boolean expression> END_REPEAT;
CODESYS esegue il <instructions> dichiarazioni fino al <Boolean expression> restituisce VERO.
Se l'espressione booleana ritorna già TRUE alla prima valutazione, CODESYS esegue le istruzioni esattamente una volta. Se l'espressione booleana non applica mai il valore TRUE, quindi le istruzioni vengono ripetute all'infinito, di conseguenza si verifica un errore di runtime.
REPEAT Var1 := Var1*2; iCounter := iCounter-1; UNTIL iCounter = 0 END_REPEAT;
In un certo senso il WHILE e REPEAT i loop sono più potenti di PER loop, poiché non è necessario conoscere già il numero di esecuzioni del ciclo prima della sua esecuzione. In alcuni casi puoi lavorare solo con questi due tipi di loop. Tuttavia, se il numero di esecuzioni del ciclo è chiaro, a FOR loop è preferibile per evitare loop infiniti.
Come estensione della norma IEC 61131-3 è possibile utilizzare il CONTINUA dichiarazione all'interno del WHILE ciclo continuo.