Declaración ST: REPEAT
El REPEAT
bucle se utiliza como el MIENTRAS
bucle, pero con la diferencia de que CODESYS solo verifica la condición de aborto después de la ejecución del bucle. La consecuencia de este comportamiento es que el REPEAT
el bucle se ejecuta al menos una vez, independientemente de la condición de cancelación.
Sintaxis:
REPEAT <instructions> UNTIL <boolean expression> END_REPEAT;
CODESYS ejecuta el <instructions>
declaraciones hasta el <Boolean expression>
devuelve VERDADERO.
Si la expresión booleana ya devuelve TRUE
en la primera evaluación, CODESYS ejecuta las sentencias precisamente una vez. Si la expresión booleana nunca aplica el valor TRUE
, las sentencias se repiten indefinidamente, por lo que se produce un error de tiempo de ejecución.
REPEAT Var1 := Var1*2; iCounter := iCounter-1; UNTIL iCounter = 0 END_REPEAT;
En cierto sentido la WHILE
y REPEAT
Los bucles son más potentes que los POR
bucle, ya que no es necesario conocer el número de ejecuciones del bucle antes de su ejecución. En algunos casos, solo puede trabajar con estos dos tipos de bucle. Sin embargo, si el número de ejecuciones de bucle está claro, entonces un FOR
loop es preferible para evitar bucles infinitos.
Como extensión del estándar IEC 61131-3, puede utilizar el SEGUIR declaración dentro de la WHILE
círculo.