Exemplo – Leitura de Inteiros de 64 Bits
Este exemplo demonstra como realizar a leitura de valores inteiros de 64 bits utilizando a biblioteca pyModbusTCPtools, contemplando valores sem sinal (UINT64) e valores com sinal (INT64).
Valores de 64 bits ocupam quatro registradores Modbus consecutivos e exigem atenção especial ao endianness configurado no dispositivo.
Cenário típico
- Leitura de contadores de grande capacidade
- Leitura de acumuladores de energia ou produção
- Leitura de identificadores numéricos extensos
- Monitoramento de variáveis de alta resolução
Neste exemplo, será realizada a leitura a partir do Holding Register no endereço 300.
Importações
1 2 3 4 5 | |
Criação do cliente
1 2 3 4 5 6 | |
Leitura de inteiro de 64 bits sem sinal (UINT64)
1 2 3 4 5 6 7 8 9 10 | |
Leitura de inteiro de 64 bits com sinal (INT64)
1 2 3 4 5 6 7 8 9 10 | |
Observação sobre endianness
Valores de 64 bits podem ser organizados de diferentes formas dependendo do fabricante.
Caso os valores lidos estejam incorretos, teste outras opções:
Endian.LEEndian.BE_SWAPEndian.LE_SWAP
A biblioteca não tenta inferir automaticamente o endianness correto.
Diferença entre INT64 e UINT64
UINT64representa valores no intervalo de 0 a 18.446.744.073.709.551.615INT64representa valores no intervalo de -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807- Ambos ocupam 4 registradores Modbus
- A conversão é realizada automaticamente pela biblioteca
Comportamento dos métodos
Os métodos de leitura tipada:
- Retornam o valor convertido em caso de sucesso
- Retornam
Noneem caso de falha - Realizam reconexão automática
- Aplicam backoff exponencial
- Registram logs detalhados
Observações importantes
- O endereçamento é zero-based
- Utilize sempre o endianness correto
- Valores de 64 bits exigem atenção redobrada ao endereço inicial
- Sempre valide o retorno antes de utilizar o valor
Encerrando a conexão
Após finalizar as leituras, a conexão pode ser encerrada explicitamente:
1 | |