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;
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;
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;
...