Bloco lógico que retorna o valor de um bit específico em um campo.
Representação Ladder

Estrutura do Bloco
Tipo de Variável |
Nome |
Tipo de Dado |
Descrição |
VAR_INPUT |
Data |
BYTE USINT SINT WORD UINT INT DWORD UDINT DINT |
Variável cujo bit será testado |
EN |
BOOL |
Habilitação do bloco |
|
Position |
BYTE USINT |
Posição do bit que será alterado |
|
VAR_OUTPUT |
Q |
BOOL |
Valor do bit testado |
Funcionamento
Este bloco, quando tem um valor TRUE em EN, envia para a saída Q o valor do bit indicado em Position na variável Data.
Quando EN possui valor FALSE, Q também recebe FALSE.
|
NOTA! É importante atentar para que Position esteja dentro da faixa de valores de bits correspondente ao tipo de variável em Data. Por exemplo: se Data é um BYTE, logo possui 8 bits, e Position deve compreender um valor entre 0 e 7. |
Fluxograma do Bloco

Exemplo em Ladder

O exemplo acima joga o valor do bit da posição zero de AUX, cujo valor inicial é 74 (0100 1010 em binário) para a saída Q. Como este bit tem valor 0, a saída fica desabilitada.

O exemplo acima joga o valor do bit da posição três de AUX para a saída Q. Como este bit tem valor 1, a saída fica habilitada.

O exemplo acima joga o valor do bit da posição dez de AUX para a saída Q. Como AUX é uma variável do tipo BYTE, ela possui apenas oito bits. Sendo assim, o exemplo acima gera um erro de execução no bloco e, por isso, a saída fica desabilitada.
Exemplo em ST
O exemplo abaixo, exibe as instruções para aplicação do exemplo acima na linguagem ST.
VAR AUX : BYTE := 2#0100_1010; POS : BYTE := 3; END_VAR
DO1 := FB_TESTBIT( EN:=DI1, Data:=AUX, Position:=POS);
|
|---|