Bloco que cria uma nova variável DWORD a partir da concatenação de 32 variáveis BOOL.
Representação Ladder

Estrutura do Bloco
Tipo de Variável |
Nome |
Tipo de Dado |
Descrição |
VAR_INPUT |
EN |
BOOL |
Habilitação do bloco |
Bit0 – Bit31 |
BOOL |
Bit da posição correspondente na nova palavra |
|
VAR_OUTPUT |
ENO |
BOOL |
Fim de operação |
DWord |
DWORD UDINT DINT |
Nova palavra formada a partir dos bits de entrada |
Funcionamento
Este bloco, quando tem um valor TRUE em EN, concatena os valores booleanos das variáveis de entrada e armazena este valor na variável Dword. O Bit0 corresponde ao LSB (bit menos significativo) e Bit31 corresponde ao MSB (bit mais significativo).
Quando EN possui valor FALSE, Dword 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 concatena os valores booleanos dos bits de entrada do bloco, formando a palavra de saída armazenada em MYDWORD. O bloco finaliza com sucesso e a saída ENO é ativada.
Exemplo em ST
O exemplo abaixo, exibe as instruções para aplicação do exemplo acima na linguagem ST.
VAR ARRAY_BOOL : ARRAY[0..31] OF BOOL := [ 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0]; MYDWORD : DWORD; END_VAR
MYDWORD := FB_MUX2( EN:=DI1, Bit0:=ARRAY_BOOL[0], Bit1:=ARRAY_BOOL[1], Bit2:=ARRAY_BOOL[2], Bit3:=ARRAY_BOOL[3], Bit4:=ARRAY_BOOL[4], Bit5:=ARRAY_BOOL[5], Bit6:=ARRAY_BOOL[6], Bit7:=ARRAY_BOOL[7], Bit8:=ARRAY_BOOL[8], Bit9:=ARRAY_BOOL[9], Bit10:=ARRAY_BOOL[10], Bit11:=ARRAY_BOOL[11], Bit12:=ARRAY_BOOL[12], Bit13:=ARRAY_BOOL[13], Bit14:=ARRAY_BOOL[14], Bit15:=ARRAY_BOOL[15], Bit16:=ARRAY_BOOL[16], Bit17:=ARRAY_BOOL[17], Bit18:=ARRAY_BOOL[18], Bit19:=ARRAY_BOOL[19], Bit20:=ARRAY_BOOL[20], Bit21:=ARRAY_BOOL[21], Bit22:=ARRAY_BOOL[22], Bit23:=ARRAY_BOOL[23], Bit24:=ARRAY_BOOL[24], Bit25:=ARRAY_BOOL[25], Bit26:=ARRAY_BOOL[26], Bit27:=ARRAY_BOOL[27], Bit28:=ARRAY_BOOL[28], Bit29:=ARRAY_BOOL[29], Bit30:=ARRAY_BOOL[30], Bit31:=ARRAY_BOOL[31], ENO=>DO1);
|