Caminho:  Equipamentos (Dispositivos) > RUW100 > Ladder > Logic > Logic Bit >

SETBIT

Seta um Bit

Previous pageReturn to chapter overviewNext page

Bloco lógico utilizado para realizar set de um bit específico em um campo.

 

Representação Ladder

 

SETBIT_block

 

Estrutura do Bloco

 

Tipo de Variável

Nome

Tipo de Dado

Descrição

VAR_IN_OUT

Data

BYTE USINT SINT WORD UINT INT DWORD UDINT DINT

Variável cujo bit será alterado

VAR_INPUT

EN

BOOL

Habilitação do bloco

Position

BYTE USINT

Posição do bit que será alterado

VAR_OUTPUT

Done

BOOL

Sucesso da operação

 

Funcionamento

 

Este bloco, quando tem um valor TRUE em EN, seta o bit indicado em Position na variável Data, que é repassada para a saída já com o seu valor atualizado.

 

Quando EN possui valor FALSE, Data permanece inalterado.

 

A variável DONE recebe o mesmo valor de EN, exceto quando há erro no set do bit, recebendo então um valor FALSE.

 

wpshelp_common_fig_note

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

 

SETBIT_flowchart

 

Exemplo em Ladder

 

SETBIT_example01

 

O exemplo acima seta o bit da posição zero de AUX, cujo valor inicial é 153 (1001 1001, em binário). Como este bit já possuía valor TRUE, nada foi alterado.

 

SETBIT_example02

 

O exemplo acima seta o bit da posição dois de AUX, alterando seu valor binário e, consequentemente, sua representação decimal.

 

SETBIT_example03

 

O exemplo acima seta o bit da posição quinze de AUX. 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 não é habilitada.

 

Exemplo em ST

 

 O exemplo abaixo, exibe as instruções para aplicação do exemplo acima na linguagem ST.

 

 

VAR

   AUX : BYTE := 2#1001_1001;

   POS : BYTE := 2;

END_VAR

 

DO1 := FB_SETBIT(

   EN:=DI1,

   Data:=AUX,

   Position:=POS);