Amigos Técnicos, Sabios y Ocurrentes:
Trabajo habitualmente con redes de dispositivos RS485. El PC siempre actúa como "master" y todos los demás dispositivos como "slaves".
La conexión mínima es la compuesta por un PC, con su soft específico, un conversor RS232 a RS485
ATEN IC-485SN unidos mediante un cable DB9-DB25 y uno de mis dispositivos esclavos unidos mediante dos hilos RS485.
La comunicación mínima que se establece entre el PC y los distintos dispositivos consiste en una llamada "broadcast" desde el PC, del estilo de "L000:#1..." (un string terminado en 0Dh) a la que cada dispositivo debe responder con un "R000:#1,ID,..." (otro string terminado en 0Dh), el PC al recibir esta respuesta del dispositivo lo identifica y desactiva sus nuevas respuestas con un "L000:#2,ID,..." (de nuevo un string terminado en 0Dh).
Esquemáticamente sería así:
PC -> "L000:#1..."[0Dh] (¿Hay algien ahí?)
Disp -> "R000:#1,ID,..."[0Dh] (Estoy yo y me llamo ID)
PC -> "L000:#2,ID,..." [0Dh] (ID, te he oído asi que cállate ya)
Esto funciona de forma absolutamente correcta, perfecta, rápida y completa ... pero ....
Hay dos mundos distintos cuya frontera se establece en el conector DB9 del PC. Éste, su S.O., su software de aplicación y su puerto COM es el "primer mundo", el conversor RS232 a RS485, la linea de dos hilos de la red RS485 y todos y cada uno de los dispositivos colgados de ella son el "segundo mundo".
Me han encargado que realice dispositivo que sea capaz de emular la respuesta de la red para comprobar efectivamente que el "primer mundo", el PC, funciona correctamente.
Debe ser posible desconectar el cable DB9-DB25 del puerto COM del PC, conectar mi emulador a dicho puerto COM y realizar exactamente la comunicación descrita mas arriba, tal y como se establecería con el conexionado original.
Ante un fallo generalizado de la conexión con los distintos dispositivos este invento debería ser capaz de descartar cualquier fallo en el buen funcionamiento del PC, con cada uno de los elementos que intervienen en éste, desde el S.O. hasta el puerto COM del mismo. Si mi dispositivo contesta correctamente el error debe estar desde dicho puerto COM hacia afuera.
Hasta aquí todo está claro ....
-----------------------------------------------
Para detectar exactamente cuál es el protocolo de la comunicación anterior me he hecho un montaje "espía" de puerto COM, así puedo conocer en detalle qué envía el PC y qué es lo que debe recibir éste desde el dispositivo. Eso es lo que debo implementar en mi invento.
El montaje espia consiste en dos conectores DB9, hembra y macho, conectados pin a pin, que inserto entre el PC y el conversor RS232 a RS485. De este puente saco las líneas Tx y Rx que envía a dos nuevos conectores RB9 pero ambas unidas a los pines Rx de cada uno de ellos.
De esta forma con dos puertos COM adicionales puedo "escuchar" lo que se envía y lo que se recibe por un tercer puerto COM.
El esquema queda como sigue:
COM1.Tx -> CONVERSOR.Rx
COM1.Tx -> COM2.Rx
COM1.Rx -> CONVERSOR.Tx
COM1.Rx -> COM3.Rx
Por el puerto COM1 realizo la comunicacion normal entre PC y el dispositivo. Abro dos monitores serie conectados a COM2 y COM3 y "veo" todo lo que se envia y recibe por el COM1.
----------------------------------------------------------
Y ahí tengo el problema:
TODO lo que envío desde el PC por la linea COM1.Tx lo recibo por la línea COM1.Rx ...

Si el dispositivo es el que habla lo recibo por COM1.RX sin problemas de ningun tipo ...

Con lo que la comunicación descrita al principo la monitorizo de la siguiente forma:
Tx -> "L000:#1..."[0Dh]
Rx -> "L000:#1..."[0Dh] "R000:#1,ID,..."[0Dh]
Tx -> "L000:#2,ID,..." [0Dh]
Rx -> "L000:#2,ID,..." [0Dh]
Como véis lo que tengo es un eco por Rx de todo lo que envío por Tx ... y esto me tiene desconcertado ...

Para realizar mi invento me dá un poco igual todo esto porque puedo filtrar perfectamente toda esta "basura" pero soy un perfeccionista

y me gustaría poder eliminar este insidioso eco ...
¿Se os ocurre algo?
P.D. He probado a ponerle una resistencia de carga de final de línea RS485 de 120 Ohms con los mismos y frustrantes resultados ecográficos.