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.