Exemplo – Reconexão Automática
Este exemplo demonstra como a biblioteca pyModbusTCPtools realiza reconexão automática em caso de falhas de comunicação Modbus TCP.
Em ambientes industriais, quedas de rede, reinicialização de CLPs e perda temporária de conexão são eventos normais. A biblioteca foi projetada para lidar com essas situações de forma transparente.
Cenário típico
- CLP reiniciado durante a operação
- Perda temporária de conexão de rede
- Timeout de comunicação
- Falhas intermitentes em switches ou cabos
Neste exemplo, será demonstrado como a reconexão ocorre automaticamente durante leituras contínuas.
Importações
1 2 3 4 5 | |
Criação do cliente com reconexão habilitada
1 2 3 4 5 6 7 8 | |
Os parâmetros retry_delay e max_retry_delay controlam o backoff exponencial entre tentativas de reconexão.
Leitura contínua com reconexão automática
1 2 3 4 5 6 7 8 9 10 11 12 | |
Neste loop:
- Falhas de comunicação não encerram o programa
- A biblioteca tenta reconectar automaticamente
- O tempo entre tentativas aumenta progressivamente
- Leituras bem-sucedidas retomam automaticamente
Verificação explícita de conexão
Também é possível verificar explicitamente o estado da conexão:
1 2 3 4 | |
O método is_connected realiza uma leitura real para validar a comunicação.
Comportamento da reconexão
O mecanismo de reconexão segue as seguintes regras:
- Reconexão automática em falhas de socket ou timeout
- Backoff exponencial configurável
- Limite máximo de atraso entre tentativas
- Logs detalhados de cada tentativa
- Retomada automática após restabelecimento da comunicação
Nenhuma ação manual é necessária para reconectar.
Observações importantes
- Falhas de comunicação são tratadas como eventos normais
- Evite loops muito rápidos sem
sleep - Utilize logs para diagnóstico em produção
- Não finalize a aplicação em falhas transitórias
Encerrando a conexão
Quando a aplicação for encerrada, a conexão pode ser fechada explicitamente:
1 | |
Conclusão
O mecanismo de reconexão automática da pyModbusTCPtools permite criar aplicações Modbus TCP robustas e resilientes, adequadas para operação contínua em ambientes industriais reais.