Descrição:
Como posso resolver um problema de comunicação do driver Modbus com múltiplos escravos e um conversor RS-485? Tenho um driver Modbus Mestre (protocolo Modbus-TCP) conectado a um conversor Ethernet/RS485; dentro desta rede RS-485, há dois dispositivos escravos (protocolo Modbus-RTU).
Eventualmente, alguns tags apresentam falha ou TIMEOUT, e o problema só acontece quando tento comunicar com os dois escravos simultaneamente. Como posso resolver esta situação?
Solução:
Em muitos casos, o conversor Ethernet/RS485 ou Serial/RS485 necessita de um delay entre as transações TX/RX para que ele consiga comunicar com múltiplos escravos da rede RS-485; por padrão, isso não é feito.
A opção Inter-frame delay da aba Serial, que define uma espera entre pacotes enviados ou recebidos pelo IOKit em milésimos de segundo (1000 = 1 segundo) poderia introduzir um delay entre cada transação TX/RX.
Os drivers que utilizam o IOKit versão 2.0.125 ou superior, possuem a opção implementada de delay “Inter-frame” para a camada Ethernet.
E a partir da versão 4.0.7 do driver Modbus, é possível configurar a opção de “Inter-frame Delay” para as comunicações em modo Ethernet na aba Ethernet do IOKit.
Para versões inferiores, pode-se utilizar um parâmetro do driver Modbus (oculto no diálogo de propriedades) para adicionar um delay entre as transações TX/RX durante a troca de ID dos escravos.
Para configurar esta opção, uma possibilidade é iniciar o driver em modo Offline (selecionar a opção Start driver OFFLINE na aba Setup), e inserir o seguinte script no evento AfterStart do driver:
Sub Modbus1_AfterStart() ' Habilita a funcao Swap Address Delay Write -1, 0, 0, 3, Array("ModiconModbus.UseSwapAddressDelay", 1) ' Configura o atraso (por exemplo, 300 milisegundos) Write -1, 0, 0, 3, Array("ModiconModbus.SwapAddressDelay", 300) 'Online Write -1,0,0,4,1 End Sub
Artigos Relacionados:
- Problemas Comuns no Driver Modbus: Múltiplos Escravos com Conversor RS485
- Problemas Comuns no Driver Modbus: Endereçamentos Iniciam em Índices Diferentes
- Problemas Comuns no Driver Modbus: Bytes e Words Fora de Ordem
- Problemas Comuns no Driver Modbus: Descontinuidade no Endereçamento do Equipamento
- Problemas Comuns no Driver Modbus: Equipamento Incrementa Endereços Fora do Padrão
- Problemas Comuns no Driver Modbus: Interpretando Prefixos de Endereços
- Problemas Comuns no Driver Modbus: Códigos de Exceção do Protocolo
- Problemas Comuns no Driver Modbus: Indexação de Endereços de Registradores.
A dica atendeu 100% minha necessidade e o problema foi solucionado imediatamente com a configuração do “Inter-frame Delay”.
Agradeço muito o esclarecimento. Parabéns Elipse, parabéns equipe de suporte.