Bloco que replica para a saída o valor de uma das variáveis de entrada (Value0 ou Value1) de acordo com a seleção de Selector.
Representação Ladder

Estrutura do Bloco
Tipo de Variável |
Nome |
Tipo de Dado |
Descrição |
VAR_INPUT |
EN |
BOOL |
Habilitação do bloco |
Selector |
BOOL |
Variável que seleciona a entrada |
|
Value0 |
BYTE USINT SINT WORD UINT INT DWORD UDINT DINT REAL |
Entrada número 1 |
|
Value1 |
BYTE USINT SINT WORD UINT INT DWORD UDINT DINT REAL |
Entrada número 2 |
|
VAR_OUTPUT |
ENO |
BOOL |
Fim de operação |
Result |
BYTE USINT SINT WORD UINT INT DWORD UDINT DINT REAL |
Valor de saída selecionado |
Funcionamento
Este bloco, quando tem um valor TRUE em EN, replica para a variável Result o valor de Value0 caso Selector seja FALSE ou o valor de Value1 caso Selector seja TRUE.
Quando EN possui valor FALSE, Result permanece inalterado.
O valor de ENO repassa para o próximo bloco Ladder o valor de EN após finalizada a operação.
Fluxograma do Bloco

Exemplo em Ladder

O exemplo acima utiliza a varável SELECTOR como seletor do canal de multiplexação. Quando ela está em nível FALSE, a saída RESULT recebe o valor de VALUE0. O bloco finaliza com sucesso e a saída ENO é ativada.

O exemplo acima utiliza a varável SELECTOR como seletor do canal de multiplexação. Quando ela está em nível FALSE, a saída RESULT recebe o valor de VALUE0. O bloco finaliza com sucesso e a saída ENO é ativada. Observe que o padrão binário foi mantido, apesar de a representação decimal estar corrompida, dado que DWORD não aceita valores negativos.

O exemplo acima utiliza a varável SELECTOR como seletor do canal de multiplexação. Quando ela está em nível TRUE, a saída RESULT recebe o valor de VALUE1. O bloco finaliza com sucesso e a saída ENO é ativada. Observe que o padrão binário foi mantido, apesar de a representação decimal estar corrompida, dado que DWORD não aceita valores negativos.
Exemplo em ST
O exemplo abaixo, exibe as instruções para aplicação do exemplo acima na linguagem ST.
VAR SELECTOR : BOOL := FALSE; VALUE0 : SINT := -52; VALUE1 : INT := -985; RESULT : INT; END_VAR
RESULT := FB_SEL( EN:=DI1, Selector:=SELECTOR, Value0:=VALUE0, Value1:=VALUE1, ENO=>DO1);
|
|---|