Skip to main content

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.

Esempio 74. Esempio
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.