Condicionais suportadas e especificadas pela IEC-61131-3

wpshelp_common_fig_note

NOTA!

 

Verificar se equipamento possui suporte a condicionais!

 

 

Condicional - IF

 

A instrução IF possibilita que um grupo de instruções possa ser executado somente se, a expressão booleana a ela associada for verdadeira. Caso retorne falso, as condições subsequentes definidas com ELSIF, caso existam, são verificadas. Se alguma delas for verdadeira, as instruções correspondentes ao seu THEN são executadas. Caso todas as condições sejam falsas, as instruções definidas após ELSE são executadas.

 

Portanto, no máximo apenas uma única expressão da instrução IF será executada. As cláusulas ELSIF e ELSE são opcionais.

 

 

IF <expressão booleana> THEN

 

   <instruções>

 

ELSIF <condition> THEN

 

   <instruções>

 

ELSE

 

   <instruções>

 

END_IF

 

 

 

Exemplo

 

O exemplo abaixo exibe uma lógica onde um ventoinha de resfriamento deve operar com base nas condições de temperatura:

Se a temperatura for inferior a 25°C, a ventoinha permanece desligado.
Se a temperatura estiver entre 25°C e 40°C, a ventoinha opera em velocidade média.
Se a temperatura for superior a 40°C, a ventoinha opera em velocidade alta e um alarme é ativado.

 

VAR

   alarm : BOOL;

   temperature : USINT;

   fanSpeed : USINT;

END_VAR

 

IF temperature < 25 THEN

   fanSpeed := 0;

   alarm := FALSE;

ELSIF temperature >= 25 AND temperature <= 40 THEN

   fanSpeed := 50;

   alarm := FALSE;

ELSE

   fanSpeed := 100;

   alarm := TRUE;

END_IF    

 

 

Condicional - CASE

 

 

A instrução CASE funciona como um seletor de grupos de instruções. Cada grupo é identificado por um ou mais literais, valores enumerados ou intervalos. Quando o valor do seletor corresponde a um dos casos, o grupo de instruções associado a esse caso é executado. Se o valor do seletor não corresponder a nenhum dos casos, a sequência de comandos após a palavra-chave ELSIF, caso existam, são verificadas. Se alguma delas for verdadeira, as instruções correspondentes ao seu THEN são executadas. NormalCaso todas as condições sejam falsas, as instruções definidas após ELSE são executadas.

 

Os tipos de dados desses rótulos devem corresponder ao tipo de dados da variável especificada no seletor.IF será executada. As cláusulas ELSIF e ELSE são opcionais.

 

 

CASE <expressão> OF

 

   <label_1>

     

       <instruções>

 

   <label_2, label_3>

     

       <instruções>

 

   <label_4..label_7>

     

       <instruções>

 

   ELSE

 

       <instruções>

 

END_CASE

 

 

 

Exemplo

 

O exemplo abaixo ilustra uma lógica em que um valor de entrada é determinado pela posição de uma chave seletora de oito posições:

 

VAR

   selectorSwitch : USINT;

   input : USINT;

END_VAR

 

CASE selectorSwitch OF

  0..3:

       input := 25;

   4:

       input := 35;

   5, 6:

       input := 40;

   ELSE

       input := 50;

END_CASE