Bloco que realiza uma rotina de saturação do valor encontrado em Value de acordo com os limites estipulados em Minimum e Maximum, armazenando o resultado em Result.
Representação Ladder
Estrutura do Bloco
Tipo de Variável |
Nome |
Tipo de Dado |
Descrição |
VAR_INPUT |
EN |
BOOL |
Habilitação do bloco |
Value |
BYTE USINT SINT WORD UINT INT DWORD UDINT DINT REAL |
Valor de referência |
|
Minimum |
BYTE USINT SINT WORD UINT INT DWORD UDINT DINT REAL |
Valor de saturação inferior |
|
Maximum |
BYTE USINT SINT WORD UINT INT DWORD UDINT DINT REAL |
Valor de saturação superior |
|
VAR_OUTPUT |
Q |
BOOL |
Indicador de que houve saturação no processo |
Result |
BYTE USINT SINT WORD UINT INT DWORD UDINT DINT REAL |
Resultado da operação |
Funcionamento
Este bloco, quando tem um valor TRUE em EN, realiza a comparação de Value com Minimum e Maximum. Se Value estiver na faixa entre Minimum e Maximum, Result recebe o valor de Value e Q permanece FALSE. Caso Value seja maior que Maximum, Result recebe Maximum e Q recebe TRUE. Caso Value seja menor que Minimum, Result recebe Minimum e Q recebe TRUE. Havendo algum erro na operação, Q não é setado, permanecendo em estado FALSE, enquanto Result permanece com seu valor inalterado.
Quando EN possui valor FALSE, Result permanece inalterado e Q permanece em FALSE.
Fluxograma do Bloco

Exemplo em Ladder

O exemplo acima repassa o valor de VALUE para RESULT, visto que ele não é inferior a MINIMUM ou superior a MAXIMUM. O bloco finaliza com sucesso e a saída Q é desativada, pois não houve saturação.

O exemplo acima repassa o valor de MAXIMUM para RESULT, visto que VALUE é superior a MAXIMUM. O bloco finaliza com sucesso e a saída Q é ativada, pois houve saturação.

O exemplo acima repassa o valor de MINIMUM para RESULT, visto que VALUE é inferior a MINIMUM. O bloco finaliza com sucesso e a saída Q é ativada, pois houve saturação.

O exemplo acima repassa o valor de MAXIMUM para RESULT, visto que VALUE é superior a MAXIMUM. O bloco finaliza com sucesso e a saída Q é ativada, pois houve saturação.
Exemplo em ST
O exemplo abaixo, exibe as instruções para aplicação do exemplo acima na linguagem ST.
VAR VALUE : INT := 700; MINIMUM : INT := 300; MAXIMUM : INT := 500; RESULT : INT; END_VAR
RESULT := FB_SAT( EN:=DI1, Value:=VALUE, Minimum:=MINIMUM, Maximum:=MAXIMUM, Q=>DO1);
|
|---|