Skip to main content

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.

ejemplo 74. Ejemplo
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.