ModBus: Tipos de dados

Tipo de dado

Descrição

INT16

Número inteiro no intervalo de -32768 bis 32767.
O intervalo de números real para um ponto de dados pode divergir.

UINT16

Número inteiro sem sinal no intervalo de 0 bis 65535.
O intervalo de números real para um ponto de dados pode divergir.

ENUM

É uma contagem. Só pode ser introduzido um dos parâmetros abaixo listados.

BOOL

Um valor booleano é um parâmetro com precisamente dois estados (0 – errado/false ou 1 – verdadeiro/true). De forma geral todos os valores acima de zero são classificados como true.

BITMAP*

É um resume de 16 valores booleanos (bits). Os valores são indexados de 0 a 15. O número de leitura e escrita do registo dá-se da soma de todos os bits com o valor 1×2 acima do seu índice remissivo.

  • Bit 0: 20 = 1
  • Bit 1: 21 = 2
  • Bit 2: 22 = 4
  • Bit 3: 23 = 8
  • Bit 4: 24 = 16
  • Bit 5: 25 = 32
  • Bit 6: 26 = 64
  • Bit 7: 27 = 128
  • Bit 8: 28 = 256
  • Bit 9: 29 = 512
  • Bit 10: 210 = 1024
  • Bit 11: 211 = 2048
  • Bit 12: 212 = 4096
  • Bit 13: 213 = 8192
  • Bit 14: 214 = 16384
  • Bit 15: 215 = 32768

BITMAP32

É um resumo de 32 valores booleanos (bits). Para detalhes do cálculo ler o bitmap.

* Exemplo para clarificação:
Bit 3, 6, 8, 15 são 1 todos os outros são 0. A Soma então é 23+26+28+215 = 8+64+256+32768 = 33096. O caminho inverso também é possível. Neste processo é testado se do bit com maior índice remissivo, se o número lido é maior ou igual à potência de dois. Quando este é o caso, p bit 1 é colocado e a potência de dois é deduzida do número. Depois repete-se a verificação com o bit com o próximo índice remissivo mais baixo e o número residual acabado de calcular, até se chegar ao bit 0 ou o número residual ser zero. Exemplo para clarificação: O número lido é de 1416. Bit 15 fica 0, quando 1416<32768. Bits 14 até 11 são igualmente 0. Bit 10 fica 1, quando é 1416>1024. O número residual é de 1416-1024=392. Bit 9 fica 0, quando 392<512. Bit 8 fica 1, quando 392>256. O número residual fica 392-256=136. Bit 7 fica 1, quando 136>128. O número residual fica 136-128=8. Bit 6 até 4 ficam 0. Bit 3 fica 1, quando 8=8. O número residual fica 0. Deste modo os restantes bits 2 ficam todos 0.