Caminho:  Programação > Texto Estruturado > Conceitos >

Condicionais

Previous pageReturn to chapter overviewNext page

Condicionais suportadas e especificadas pela IEC-61131-3

wpshelp_common_fig_note

NOTA!

 

Verificar se equipamento possui suporte a condicionais!

 

 

IF (SE)

 

A instrução possibilita que um grupo de instruções possa ser executado somente se, a expressão booleana a ela associada for verdadeira. Se a condição for falsa, somente o grupo de instruções após a palavra-chave ELSE serão executados, caso ela estiver implementada.

 

Descrição

Exemplo

IF ...

THEN ...

 

 ELSIF ...

 THEN ...

 

ELSE ...

END_IF

D := B * B - 4.0 * A * C;

IF D < 0.0

THEN N:= 0;

 ELSIF D = 0.0

 THEN

         N:=1;

               X1:= - B/(2.0+A);

 ELSE

         N:=2;

         X1:=(- B + FB_SQRT(D))/(2.0*A);

         X2:=(- B - FB_SQRT(D))/(2.0*A);

END_IF;

 

CASE (CASO)

 

A instrução consiste em um seletor e grupos de instruções. Cada grupo de instruções é rotulado por um ou mais literais, valores enumerados ou subintervalos. O primeiro caso que atender o valor do seletor, terá seu grupo de instruções executado. Caso o valor do seletor não ocorra, a sequência de comandos após a palavra-chave ELSE deve ser executada. Caso contrário, nenhuma das sequências de instruções deve ser executada.

Os tipos de dados desses rótulos devem corresponder ao tipo de dados da variável especificada no seletor.

 

Descrição

Exemplo

CASE ... OF

  ...

 ELSE ...

END_CASE

C:=0;

CASE A OF

 1: B:= 10;

 2: B:= 20;

 3,5 B:= 30;

 8..10 B:= 40;

 ELSE B:= 50;

          C:=1;

END_CASE

 

FOR (DE ATÉ)

 

A instrução possibilita que uma sequência de instruções seja executada repetidamente, enquanto uma progressão de valores é atribuída a sua variável de controle. A instrução FOR incrementa ou decrementa a variável de controle de um valor inicial até um valor final determinado pelo valor de uma expressão. Se a construção BY for omitida, o valor de incremento será padronizado para 1. O valor inicial e o valor final da variável de controle devem ser expressões do mesmo tipo inteiro (por exemplo, SINT, INT ou DINT).

 

Descrição

Exemplo

FOR ... TO ... BY ... DO

 ...

END_FOR

FOR I:=1 TO 100 BY 2 DO

 IF A[I] > 50

         THEN

                 B := 1;

         ELSE

                 B := 0;

         END_IF

 END_IF

END_FOR

 

WHILE (ENQUANTO)

 

Na instrução a sequência de instruções agrupadas até a palavra-chave END_WHILE, são executadas repetidamente até que a expressão booleana a ela associada seja falsa. Se inicialmente a expressão for falsa, o grupo de instruções não será executado.

 

Descrição

Exemplo

WHILE ... DO

 ...

END_WHILE

J:=0;

WHILE J <= 100 & A[J] > 50 DO

 B:= B+2;

END_WHILE

 

REPEAT (REPITA ATÉ)

 

A instrução faz com que a sequência de instruções agrupadas até a palavra-chave UNTIL seja executada repetidamente pelo menos uma única vez, até que a condição booleana associada a ela seja verdadeira.

 

Descrição

Exemplo

REPEAT ...

 UNTIL ...

END_REPEAT

J:=0;

REPEAT

 J:= J+2;

 UNTIL J > 100 OR A[J] > 50;

END_REPEAT

 

CONTINUE (CONTINUAR)

 

A instrução deve ser usada para pular as instruções restantes do laço de iteração, localizadas após a palavra-chave CONTINUE até o terminador do laço (END FOR, END WHILE ou END REPEAT).

 

Descrição

Exemplo

CONTINUE

J:=1;

WHILE (J <= 100 AND A[J] <= 50) DO

 IF (J MOD 3 = 0) THEN

         CONTINUE;

 END_IF;

 J:=J+1;

END_WHILE;

 

EXIT (SAIR)

 

A instrução deve ser usada para encerrar as iterações antes que a condição de término seja satisfeita.

Quando a instrução EXIT estiver localizada iterações aninhadas, a saída deve ser do laço mais interno no qual a palavra-chave EXIT está localizada, ou seja, o controle deve passar para a próxima instrução após o primeiro terminador de loop (END FOR, END WHILE ou END REPEA 'I') após a SAÍDA

declaração.

 

Descrição

Exemplo

EXIT

FOR I:=1 TO 100 BY 2 DO

 IF A[I] > 50

         THEN

                 B := 1;

                 EXIT;

         END_IF

 END_IF

END_FOR