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

Descrição:

Possuo um driver Modbus Mestre (protocolo Modbus-TCP) conectado em um conversor Ethernet/RS485, e dentro desta rede RS-485 há dois dispositivos escravos (protocolo Modbus-RTU).

Eventualmente determinados tags apresentam falha ou TIMEOUT, e o problema só acontece quando tentamos comunicar com os dois escravos simultaneamente.

Solução:

Em muitos casos, o conversor Ethernet/RS485 ou Serial/RS485, necessita de um “delay” entre as transações TX/RX para conseguir comunicar com múltiplos escravos da rede RS-485, e isso por padrão 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, no entanto, essa opção ainda não é suportada pela camada Ethernet do IOKit, somente via camada Serial. Portanto esta solução seria válida apenas para uso de um conversor RS485 para Serial.

Nos casos de conversor RS485 para Serial ou conversor RS485 para Ethernet, pode-se utilizar um parâmetro do driver Modbus (oculto no dialog 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 sugestão seria 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

Thoughts on “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.

Leave a Reply

Your email address will not be published.Required fields are marked *