ModBus: Tipos de dados
Tipo de dado | Descrição |
---|---|
INT16 | Número inteiro no intervalo de -32768 bis 32767. |
UINT16 | Número inteiro sem sinal no intervalo de 0 bis 65535. |
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.
|
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.