Problemas Comuns no Driver Modbus: Múltiplos Escravos com Conversor RS485.

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).

comunicação do Modbus com múltiplos escravos via conversor RS-485

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
Em ambas as maneiras, o atraso necessário pode variar de acordo com o conversor utilizado. Em geral, sugere-se valores na faixa de 100 a 400 milissegundos.
Print Friendly, PDF & Email

Este artigo foi útil? Was this helpful?

Classificação média - Average rating 5 / 5. Count: 2

Comentários em “Problemas Comuns no Driver Modbus: Múltiplos Escravos com Conversor RS485.

  1. 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.

Deixe seu Comentário

Seu endereço de e-mail não será publicado. Campos marcados com asterisco são obrigatórios *