Exemplo – Escrita de Inteiros de 64 Bits
Este exemplo demonstra como realizar a escrita 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, exigindo atenção especial ao endianness configurado no dispositivo.
Cenário típico
- Escrita de contadores de grande capacidade
- Escrita de acumuladores de energia ou produção
- Configuração de parâmetros numéricos extensos
- Ajuste de variáveis internas de alta resolução em CLPs
Neste exemplo, será realizada a escrita em Holding Registers a partir do endereço 800.
Importações
1 2 3 4 5 | |
Criação do cliente
1 2 3 4 5 6 | |
Escrita de inteiro de 64 bits sem sinal (UINT64)
1 2 3 4 5 6 7 8 9 10 11 | |
Escrita de inteiro de 64 bits com sinal (INT64)
1 2 3 4 5 6 7 8 9 10 11 | |
Observação sobre endianness
Para valores de 64 bits, a configuração correta de endianness é crítica.
Caso o valor escrito não seja interpretado corretamente pelo dispositivo, teste:
Endian.LEEndian.BE_SWAPEndian.LE_SWAP
A biblioteca não tenta inferir automaticamente o endianness correto.
Diferença entre INT64 e UINT64
UINT64aceita valores de 0 a 18.446.744.073.709.551.615INT64aceita valores de -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807- Ambos ocupam 4 registradores Modbus
- A biblioteca valida automaticamente o range antes da escrita
Comportamento dos métodos
Os métodos de escrita tipada:
- Retornam
Trueem caso de sucesso - Retornam
Falseem caso de falha - Validam tipo, tamanho e faixa de valores
- Realizam reconexão automática se necessário
- Aplicam backoff exponencial
- Registram logs detalhados
Observações importantes
- O endereçamento é zero-based
- Utilize sempre o endianness correto
- Valores fora do range resultam em erro de conversão
- Sempre verifique o retorno do método
Encerrando a conexão
Após finalizar as escritas, a conexão pode ser encerrada explicitamente:
1 | |
Próximo passo
Após compreender a escrita de inteiros de 64 bits, avance para os exemplos de escrita de valores em ponto flutuante, iniciando com FLOAT32.