Instruções de Iteração

Iteração

Descrição

FOR-TO-BY-DO-END_FOR;

executa instruções por um determinado número de vezes

WHILE-DO-END_WHILE;

executa instruções enquanto uma condição for verdadeira

REPEAT-UNTIL-END_REPEAT;

executa instruções até que uma condição seja alcançada

EXIT;

pula a execução do laço corrente e continua na primeira linha após o mesmo

CONTINUE;

pula a execução do laço corrente e retorna para o início do mesmo

RETURN;

finaliza a execução da POU corrente

FOR

FOR I := 1 TO 10 DO

  ALARME_STATUS[I] = 0;
  IF ALARM_ERROR THEN
    EXIT;  // FORÇA SAIR DO LOOP SE ERRO
  END_IF;
  IF I = 3 THEN
    CONTINUE; // NÃO PROCESSA ALARME PARA O INDICE 3
  END_IF;

END_FOR;

WHILE

X := 5;
WHILE X < 10 DO
   ...
   IF TIMEOUT THEN
     EXIT;  // FORÇA SAIR DO LOOP SE TIMEOUT
   END_IF;

   X := X + 1;

END_WHILE;
../../_images/while_loop_diagram.png

Fig. 85 Diagrama do laço while, testa condição no início.

REPEAT

INDEX := 0;
SUM   := 0;
REPEAT

  SUM   := SUM + VALUES[Index];
  INDEX := INDEX + 1;
        IF ALARM_ERROR THEN
     EXIT;  // FORÇA SAIR DO LOOP SE ERRO
  END_IF;

UNTIL INDEX >= 10 END_REPEAT;
../../_images/repeat_loop_diagram.png

Fig. 86 Diagrama do laço repeat, testa condição no final.

RETURN

A := 10;
B := C;
RESULT := A/B;

IF C = 0 THEN
  RETURN; // TERMINA PROCESSO SE DIVISÃO POR ZERO
END_IF;
...