Site icon Blog Usinainfo

Por que meu conversor RS485 mostra leitura 0 repentinamente?

Você já teve aquele problema desesperador:

Se você está lendo este artigo, provavelmente já testou cabo, já trocou o conversor, já verificou a alimentação, já checou o endereço Modbus… e mesmo assim os valores caem para zero repentinamente, voltam ao normal e zeram de novo.

A boa notícia: na enorme maioria dos casos, o culpado é um só:

Falta do resistor de terminação de 120 ohms no final da linha RS485.

E o mais impressionante: isso acontece até em instalações muito curtas, em pequenos testes!

Como identificar o problema de reflexão no RS485 (a famosa “leitura 0”)

Quando não há resistor de terminação, o sinal RS485 sofre reflexão nas extremidades do cabo. Essa reflexão gera ruído que, em determinados momentos, faz o receptor interpretar bytes errados — e o resultado mais comum no Modbus RTU é exatamente o valor 0 nos registradores.

Veja um exemplo real na leitura de um sensor:

Por que isso acontece mesmo com cabo curto?

Muita gente acha que “só precisa de resistor se o cabo tiver mais de 10 metros”. Isso é um mito perigoso.

Em velocidades típicas do Modbus (9600 ou 19200 baud), o problema de reflexão pode aparecer mesmo com cabos bastante curtos, principalmente se o cabo não for blindado, lembrando que depende do seu conversor também.

Para referência, realizamos o teste com 2 conversores populares, sendo eles:

A solução definitiva (e barata!)

Basta colocar um resistor de 120 ohms ±1% 1/4W entre os terminais A e B:

Alguns conversores já possuem internamente, além de alguns contarem com um jumper para habilitar e desabilitar.


Fonte: Embarcados

Apesar do resistor 1/4W ser bastante flexível, pode ser que ele não atenda toda a sua rede, muitos conversores vem de fábrica com resistores de 1/2W (0,5W) para atender a todos os dispositivos e uma distância maior.

Passo a passo para resolver agora:

  1. Identifique o último dispositivo da sua rede RS485.
  2. Coloque um resistor de 120 ohms entre A (+) e B (-).
  3. Reinicie a comunicação.
  4. Pronto! Agora você deve ter uma leitura estável (caso piore pode ser que já exista o resistor em seu sensor/conversor).

Conclusão

Nunca mais perca horas procurando defeito no sensor, no cabo ou no software. Na quase totalidade dos casos de “leitura 0 repentina no Modbus RTU RS485”, a solução é simples e custa menos de R$ 2,00: o resistor de terminação de 120 ohms.

Se depois de colocar o resistor o problema continuar, aí sim podemos investigar outros pontos (ground loop, polaridade invertida, baudrate errado, etc.), mas isso é menos de 5% dos casos.

Deixe seu comentário abaixo: qual foi a distância do seu cabo quando aconteceu isso? Já resolveu com o resistor? Vamos ajudar a comunidade!

Sair da versão mobile