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

Estrutura do Bloco
Tipo de Variável |
Nome |
Tipo de Dado |
Descrição |
VAR_INPUT |
EN |
BOOL |
Habilitação do bloco |
DWORD |
DWORD UDINT DINT |
Variável de entrada de 32 bits |
|
VAR_OUTPUT |
ENO |
BOOL |
Fim de operação |
Bit0 – Bit31 |
BOOL |
Bit da posição correspondente de DWord |
Funcionamento
Este bloco, quando tem um valor TRUE em EN, decompõe a variável de entrada DWORD em 32 valores booleanos armazenados nas variáveis Bit 0 a Bit 31. O Bit 0 corresponde ao LSB (bit menos significativo) e Bit 31 corresponde ao MSB (bit mais significativo).
Quando EN possui valor FALSE, as variáveis de saída permanecem inalteradas.
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 decompõe o valor de MYWORD em valores booleanos, sendo estes armazenados nas variáveis de saída BIT0 a BIT31. 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 ENTRADA : DWORD := 1456756758; ARRAY_BOOL : ARRAY[0..31] OF BOOL; END_VAR
DO1 := FB_DEMUX2( EN:=DI1, DWord0:=ENTRADA, 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]);
|
|---|