Error de trama en la línea Rx en rs485 al convertidor Ethernet

3

Tengo un dispositivo conectado a MOXA nPort 5150 a través del cable rs-485 de 4 hilos. La resistencia de terminación dentro del convertidor se estableció en 1 kΩ (otra opción era 150 kΩ, que no funcionó en absoluto; tuve errores de encuadre en ambos lados) y ahora tengo una señal correcta en las líneas de transmisión (mi dispositivo reacciona correctamente a los comandos ).

Lamentablemente, los datos que se envían desde el dispositivo al convertidor están dañados. Constantemente recibo errores de encuadre con partes de datos intactas. Por ejemplo, debería obtener 18 bytes de datos:

30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 0d 00

Y tengo 17:

30 60 30 30 30 30 30 31 04 02 82 02 06 02 02 82 0d 00

La configuración incorrecta del puerto serie obviamente no es la razón (ya que puedo transmitir datos al dispositivo correctamente). También es muy poco probable que haya algún problema con el cable (pude conectar otro convertidor con el mismo cable y funcionó, fue ATC1000 rs485 al convertidor de Ethernet).

Además, cuando conecto líneas Rx a líneas Tx (en un bucle), la señal pasa sin problemas.

Consideré agregar resistencias de polarización para recibir líneas. Lo intentaré y veré qué pasa de todos modos, pero llevará algo de tiempo. Mientras tanto quería preguntar:

¿Es posible que el convertidor ATC1000 tenga resistencias de polarización implementadas internamente, y MOXA5150 no, o mejor dicho MOXA se haya implementado solo en líneas de transmisión? ¿O puede haber otra razón para este problema?

EDIT:

Después de agregar la resistencia de polarización en la línea de recepción, la señal es un poco mejor (menos errores de trama), pero aún está dañada.

El uso de cable blindado no cambia nada.

Sorprendentemente, otro dispositivo MOXA, UPort 1150 (que tiene integradas resistencias de polarización) se comporta exactamente de la misma manera (la transmisión se realiza sin problemas, la señal de recepción está dañada). Este convertidor funciona correctamente en otros casos (con diferentes dispositivos). El tercer convertidor que tengo (ATC1000, no MOXA) todavía funciona correctamente con mi dispositivo ...

    
pregunta Arie

2 respuestas

0

Para ser honesto, olvidé que incluso hice esta pregunta porque nunca he descubierto la respuesta exacta, solo una solución. Estoy publicando esto ahora, tal vez ayude a alguien.

Resulta que el convertidor de Moxa que estaba usando en ese momento interpretaba incorrectamente las señales de algunos dispositivos y no podía diferenciar de manera confiable entre los estados de marca, espacio y ralentí mientras que el otro convertidor podía hacerlo. El problema parece ser específico para los convertidores Moxa RS-485, como lo mismo sucedió un tiempo después cuando uno de mis colegios intentaba conectar algún otro dispositivo RS-485 usando Moxa (también probamos diferentes modelos Moxa, lo mismo sucediendo). No está tan difundido, ya que pude encontrar quizás dos casos de personas que informaron esto en la red. Desde mi experiencia, funciona bien la mayoría de las veces, pero luego hay algunos dispositivos que tienen este problema cuando otros convertidores RS-485 trabajan con ellos y Moxa no. Pensamos que era un problema de firmware con la interpretación de la señal en el lado del convertidor de Moxa (o en el lado del dispositivo, que de cualquier manera no podría resolver, ya que tampoco puedo modificarlo). Fue hace un tiempo y, a partir de este día, no sé si Moxa lo abordó o no.

Para mí fue más simple, más rápido y más barato usar una solución alternativa. Compré un convertidor RS-485 a RS-232 barato y lo inserté entre mi dispositivo y Moxa, luego cambié el modo de conversión de Moxa a RS-232. Trabajó como un encanto.

    
respondido por el Arie
1

¿A qué resistencia se refiere como la terminación? La resistencia de 1 kOhm todavía es demasiado para RS485. Si el par trenzado es su medio (como debería ser), las resistencias deben estar alrededor de 120 ohmios (100 a 150 ohmios) entre las líneas. Por supuesto, esto debería estar dispuesto solo en los puntos finales de conexión. ¿Es posible que su ATC1000 que está funcionando tenga esas resistencias, y en otros casos no estén presentes (y 1 kOhm no es una terminación adecuada)?

También es posible que desee probar algunos resistores de 10 kOhm desde cada línea hasta el suelo. No es terminación, pero ayuda a mantener el ruido en las líneas hacia abajo cuando no hay transmisión (para que los receptores no reciban señales UART activadas por señal falsa).

También tuve el caso de ir 'demasiado rápido' al modo de recepción (cuando trabajaba en half duplex), por lo que mi firmware cortaría parte del mensaje. Se resolvió teniendo el receptor encendido todo el tiempo para que mi remitente en realidad "viera" todo lo que estaba en la línea cuando transmitía. Si ese no fuera el caso, tendría que arreglar un poco de retraso antes de comenzar a recibir, y el retraso podría ser demasiado largo para poder perder el inicio del mensaje.

    
respondido por el Drazen Cika

Lea otras preguntas en las etiquetas