Esta tarea parece simple, pero no lo es por lo siguiente: cuando envía desde un
programa un carácter hacia el puerto serie, en realidad se lo está enviando a un buffer
que controla el sistema operativo, de modo que de antemano no conoce ni cuando
comienza la transmisión ni cuando termina la transmisión.
Existen varias soluciones a este problema, la primera solución es dotar al
sistema operativo de un "driver" que controle la línea RTS a bajo nivel o bien, si el
lenguaje lo dispone, habilitar este protocolo de transmisión. No debe confundirse con el
control de flujo RTS/CTS, no tiene nada que ver y no sirve para gestionar una RED
RS485.
La segunda solución es utilizar un puerto serie RS232c y conectar sobre él un
conversor RS232c RS485 con control de flujo automático. Aquí puede surgir un
segundo problema; existen algunos conversores que añaden un retardo a este control de
flujo. Si este retardo es mayor que 3.5 caracteres, tenemos la posibilidad de perder el
inicio del paquete de respuesta.
Normalmente ningún conversor tiene retardos tan largos, pero si por el camino
se insertan repetidores y distintos convertidores rs485-fibra puede llegar a tenerse dicho
problema.
Debe tener presente, que a diferencia de un puerto serie "full duplex" (RS232 ó
RS422) en un puerto "half duplex" (RS485) se recibe siempre un Eco de los datos
transmitidos. De modo que al preguntar algo a una tarjeta periférica se recibe la
pregunta seguida de la respuesta.
Existen en el mercado algunos conversores RS232c RS485 que disponen
de una opción de cancelación de Eco, pero es mejor que el software utilice este Eco para
comprobar que la línea funciona correctamente. Por ejemplo un corto entre las líneas A
y B haría que no se produjese ese ECO y en un sistema "MultiMaster" podría servir
para detectar la colisión de mensajes (aunque no es una buena idea en ModBus).
14.2 Terminación de las líneas
En algunos casos es necesario añadir en los extremos de las líneas RS485 unas
resistencias terminadoras para adaptar la impedancia de la línea a las impedancia de los
transceptores. Cuando las impedancias no coinciden, la señal transmitida no es
absorbida adecuadamente por lo que parte de ella se refleja de nuevo en la línea.
Añadiéndolas eliminamos este reflejo pero aumentamos la complejidad de la
instalación y aumentamos el consumo de los transceptores. Cuando utilizamos la línea
RS485 a baja velocidad, caso de nuestras tarjetas, no adquirimos ninguna ventaja al
instalar dichas resistencias ya que el reflejo no afecta a las comunicaciones.
Si utiliza un conversor RS232c RS485 que se alimenta del propio puerto
serie no debe utilizar este tipo de terminaciones. Si va a utilizar resistencias
terminadoras debe instalar solo una en cada extremo de la línea, y calcularlas para que
la impedancia de esta sea 120 Ohmios.
MANUAL MODBUS iBDAM
Pág 48 de 60