SET_BIT

Atribui um valor lógico a um bit específico de uma variável do tipo BYTE, WORD, DWORD ou LWORD (ANY_BIT) e retorna o valor resultante. É uma função.

Biblioteca: HI_STD · Namespace: HILS · Tipo: função

Função

                SET_BIT
            +---------------+
ANY_BIT ----|INP            |---- ANY_BIT
            |               |
    INT ----|BIT_POS        |
            |               |
   BOOL ----|BIT_VAL        |
            +---------------+

Nota

O identificador do bit inicia em 0, sendo este o bit menos significativo da variável especificada.

Parâmetros

Nome

Direção

Tipo

Padrão

Faixa / Unidade

Descrição

INP

IN

ANY_BIT

—

—

Variável cujo bit será atribuído com o valor informado.

BIT_POS

IN

INT

0

0 .. (bits de INP - 1)

Posição do bit a ser atribuído (0 = bit menos significativo).

BIT_VAL

IN

BOOL

FALSE

—

Valor lógico a ser atribuído ao bit especificado de INP.

Retorno / Saídas

Retorna um valor ANY_BIT igual a INP com o bit BIT_POS ajustado para BIT_VAL.

Pré-condições

  • BIT_POS deve estar dentro da faixa de bits do tipo de INP (ex.: 0..7 para BYTE, 0..15 para WORD, 0..31 para DWORD, 0..63 para LWORD).

Observações

  • O tipo do retorno acompanha o tipo de INP (BYTE, WORD, DWORD ou LWORD).

Ver também

GET_BIT

Exemplo

Clique aqui para baixar a tabela de variáveis

Código ST

VAR
    v_inp : DWORD := 16#0001_0000; (* valor do tipo any_bit *)
END_VAR

(* Exemplo de ativação da função dentro da POU *)
(* ... *)
// No primeiro ciclo de scan, o valor da variável v_inp neste ponto é 16#0001_0000
v_inp := HILS.SET_BIT(
          v_inp, // INP [ANY_BIT] = Variável a ser atribuída com o valor no bit especificado
          15,    // BIT_POS [INT] = Posição do bit a ser atribuído
          TRUE   // BIT_VAL [BOOL] = Valor a ser atribuído ao bit especificado da variável INP
          );
// O novo valor retornado pela função anterior será 16#0001_8000

v_inp := HILS.SET_BIT(
          v_inp, // INP [ANY_BIT] = Variável a ser atribuída com o valor no bit especificado
          16,    // BIT_POS [INT] = Posição do bit a ser atribuído
          FALSE  // BIT_VAL [BOOL] = Valor a ser atribuído ao bit especificado da variável INP
          );
// O novo valor ao final da execução anterior será 16#0000_8000
(* ... *)