RS-485 es una norma eléctrica. Define las tensiones de un par trenzado y cuántos dispositivos pueden compartirlo. Modbus es un protocolo: define las peticiones y respuestas que viajan por una conexión. Modbus RTU suele utilizar RS-485 y por eso ambos nombres aparecen juntos. Sin embargo, un dispositivo con bornes RS-485 puede utilizar otro protocolo, y Modbus TCP funciona sobre Ethernet sin RS-485.
A qué capa pertenece cada ajuste
Cada ajuste necesario para conectar un dispositivo corresponde a una capa. Cada capa puede fallar por separado:
| Capa | Qué necesita saber | Ejemplo |
|---|---|---|
| Física | Interfaz, modo de cableado y nombres de los bornes | RS-485, dos hilos, bornes D+ y D− más común |
| Ajustes serie y protocolo | Protocolo, velocidad en baudios, paridad, bits de parada y dirección | Modbus RTU, 9.600 baudios, paridad par, 1 bit de parada, dirección 12 |
| Aplicación | Registros y formato de datos | kWh totales en el registro de entrada 0x0156, flotante de 32 bits, palabra alta primero |
Dos productos con bornes RS-485 no pueden intercambiar datos si uno utiliza Modbus RTU y el otro BACnet MS/TP. Dos dispositivos Modbus RTU pueden coincidir en el cableado y los ajustes y, aun así, no coincidir en los registros: cada fabricante define su propio mapa de registros.
Qué define RS-485
RS-485 (TIA/EIA-485-A) es una interfaz diferencial. Cada señal viaja por un par de hilos y el receptor lee la diferencia entre ambos. El ruido de cables próximos afecta de forma similar a los dos hilos, por lo que la diferencia se conserva. La descripción general de Texas Instruments (SLLA070) y su nota sobre carga unitaria (SLLA166) recogen los límites importantes en una instalación.
Un receptor debe interpretar correctamente una diferencia de al menos 200 mV cuando cada hilo se encuentra entre −7 V y +12 V respecto a su propia masa. Ese rango de modo común permite compartir un bus a dispositivos con tierras locales diferentes. Solo se mantiene si los dispositivos comparten una referencia; por eso la guía de la línea serie Modbus incluye un conductor común junto al par.
El límite de carga es de 32 cargas unitarias, no de 32 dispositivos. Una carga unitaria equivale aproximadamente a 12 kΩ. Muchos transceptores actuales se especifican como 1/4 o 1/8 de carga unitaria; esto permite conectar 128 o 256 de ellos a un bus sin repetidor. La guía de la línea serie Modbus sigue indicando 32 dispositivos sin repetidor y el rango de direcciones termina en 247. En un bus de contadores, normalmente se agota antes el tiempo disponible para el sondeo.
La longitud admisible del cable disminuye cuando aumenta la velocidad de datos. Según la regla aproximada de TI, el producto de la longitud en metros por la velocidad en bit/s debe permanecer por debajo de 10⁸. Un tramo de 500 m puede transportar hasta 200 kbit/s. Un tramo de 1.200 m a 19.200 baudios da aproximadamente 2,3 × 10⁷, muy por debajo de ese límite; por tanto, a las velocidades habituales de los contadores, la pérdida en el cable determina la longitud. TI recomienda un máximo aproximado de 1.200 m. La guía de la línea serie Modbus indica 1.000 m a 9.600 baudios con cable AWG 26 o más grueso, la mitad si se utiliza un cable de cuatro hilos como cable de dos hilos, y derivaciones de no más de 20 m.
RS-485 funciona en semidúplex con un par (dos hilos) o en dúplex completo con dos pares (cuatro hilos). No define los caracteres, los mensajes ni las direcciones. Tampoco define las letras de los bornes. La guía Modbus llama D0 y D1 a los conductores, pero los fabricantes utilizan A/B en ambos órdenes, o D+/D−, 485+/485− o TX+/TX−. Siga la definición de las señales de cada manual, no la letra impresa. En la guía Modbus, D1 es el conductor más positivo cuando el bus está inactivo; por tanto, un multímetro conectado entre los dos hilos de un bus inactivo y polarizado permite identificar los bornes. Un par intercambiado es una de las causas más habituales de falta de respuesta en un bus nuevo. La guía de cableado RS-485 explica la polaridad, el conductor común, la terminación de 120 Ω en cada extremo del troncal y la polarización que mantiene el bus inactivo en un estado conocido.
Qué define Modbus
El protocolo de aplicación Modbus define códigos de función (por ejemplo, 03 para leer registros de retención y 04 para leer registros de entrada), el modelo de datos de bobinas y registros, y las respuestas de excepción. Funciona sobre varios medios de transporte:
| Variante | Transporte | Estructura de trama |
|---|---|---|
| Modbus RTU | Línea serie, normalmente RS-485 | Binaria, con CRC de 16 bits |
| Modbus ASCII | Línea serie | Caracteres hexadecimales, con LRC |
| Modbus TCP | TCP/IP sobre Ethernet, puerto 502 | Cabecera MBAP de 7 bytes, sin CRC |
La guía de la línea serie Modbus añade las reglas para RTU sobre una línea serie. Un único maestro envía todas las peticiones. Los dispositivos utilizan direcciones de 1 a 247; la dirección 0 corresponde a una escritura de difusión a la que ningún dispositivo responde. Cada carácter tiene 11 bits: un bit de inicio, 8 bits de datos, un bit de paridad y un bit de parada. La paridad par es el valor predeterminado obligatorio. Sin paridad, la guía exige 2 bits de parada para mantener los 11 bits. Todos los dispositivos del bus deben utilizar la misma velocidad en baudios, paridad y bits de parada. Una discrepancia de paridad suele manifestarse como ausencia de respuesta o errores CRC intermitentes, no como valores incorrectos.
RTU no tiene un carácter de inicio ni de fin. Una trama termina cuando la línea permanece en silencio durante 3,5 tiempos de carácter; un intervalo de más de 1,5 tiempos de carácter dentro de una trama hace que el receptor la descarte. A 9.600 baudios, un carácter dura 1,15 ms, así que el intervalo de silencio es de unos 4,0 ms. Por encima de 19.200 baudios, la guía recomienda valores fijos de 1,75 ms y 750 µs, respectivamente. La calculadora de tiempos de Modbus RTU calcula estos valores para cualquier ajuste; la guía de Modbus TCP frente a RTU compara las variantes serie y de red.
RS-232 frente a RS-485
RS-232 es la antigua interfaz serie de los puertos COM de los ordenadores y de algunos puertos de configuración de contadores. La tabla la compara con RS-422 y RS-485:
| RS-232 | RS-422 | RS-485 | |
|---|---|---|---|
| Señal | No diferencial, referida a masa | Diferencial | Diferencial |
| Dispositivos | Un transmisor y un receptor | Un transmisor y hasta 10 receptores | Hasta 32 cargas unitarias; cualquiera puede transmitir |
| Longitud del cable (orientación de TI) | Unos 20 m, limitados por una carga capacitiva de 2.500 pF | Hasta 1.200 m a velocidades bajas | Hasta 1.200 m a velocidades bajas |
| Uso habitual | Un portátil conectado a un dispositivo | Enlaces unidireccionales de larga distancia | Buses multipunto de contadores y controladores |
Un receptor RS-232 conmuta a ±3 V respecto a su propia masa. Una diferencia de potencial entre las masas de dos cuadros, o el ruido inducido en el único hilo de señal, se suma directamente a esa señal. Un receptor RS-485 mide solo la diferencia entre dos hilos, a los que el mismo ruido desplaza de forma similar. Utilice RS-485 para cualquier enlace con más de un dispositivo, cualquier cable de más de unos 15 a 20 m o cualquier cable que pase cerca del cableado de potencia. El puerto RS-232 de un contador suele servir para configurarlo en el banco de trabajo, no para una red permanente.
Un convertidor RS-232 a RS-485 cambia únicamente la señal eléctrica. Ambos lados deben seguir utilizando el mismo protocolo y los mismos ajustes serie. El convertidor también debe desactivar su transmisor RS-485 a tiempo para recibir la respuesta. Un convertidor que lo hace automáticamente es más sencillo de configurar que uno controlado por la línea RTS desde el software.
Otros protocolos sobre RS-485
RS-485 transporta muchos protocolos además de Modbus RTU. Modbus RTU es el habitual en contadores secundarios, analizadores de energía y controladores de instalaciones. En edificios y sistemas de medida de energía también encontrará estos:
| Protocolo | Dónde se utiliza |
|---|---|
| BACnet MS/TP | Controladores de climatización (véase la guía de BACnet/IP frente a MS/TP) |
| DLMS/COSEM | Algunos contadores de compañías suministradoras, aunque cada vez más lo ofrecen mediante un puerto óptico (IEC 62056-21) |
| Protocolos de fabricante | Variadores, inversores y contadores antiguos |
M-Bus se confunde a veces con estos protocolos. Es un bus de dos hilos distinto, con su propia capa física (EN 13757-2), y solo llega a un puerto RS-485 o RS-232 a través de un convertidor de nivel. La guía de BACnet frente a Modbus compara los protocolos para edificios.
Un bus, un maestro
Un bus Modbus RTU tiene un único maestro que envía todas las peticiones. Los dispositivos solo responden cuando reciben una petición dirigida a ellos. Si un BMS ya sondea los contadores de un bus, no puede añadir un segundo maestro al mismo par. Las transmisiones de ambos maestros interfieren entre sí y los dos observan tiempos de espera agotados y errores CRC intermitentes según sus ciclos de sondeo. Elija una de estas opciones:
- leer los datos del maestro existente a través de su propia interfaz de red;
- utilizar un contador con un segundo puerto de comunicaciones;
- sustituir el maestro del bus por uno que atienda a ambos sistemas, por ejemplo, mediante una pasarela Modbus TCP.
Una pasarela TCP puede aceptar varios clientes de red, pero sigue enviando una sola petición cada vez por el lado serie. Cada cliente alarga el ciclo de sondeo de ese único bus. La guía de pasarelas de protocolos explica la diferencia entre un puente y una pasarela de traducción; la guía de puesta en marcha calcula el tiempo de sondeo para diez contadores.
Qué pedir antes de conectar un dispositivo
Reúna esta información de cada dispositivo antes de empezar los trabajos en la instalación:
- la interfaz física, si utiliza dos o cuatro hilos, y los nombres de los bornes con sus definiciones de señal;
- el protocolo, la velocidad en baudios, la paridad, los bits de parada y la dirección;
- la carga unitaria del transceptor, si el dispositivo incorpora terminación o polarización y si estas se pueden activar o desactivar;
- el mapa de registros del modelo y firmware exactos;
- qué sistema actúa actualmente como maestro, si el dispositivo ya está conectado.
La guía de mapas de registros Modbus explica la capa de aplicación. Para un contador Modbus RTU situado lejos del Gateway, una interfaz Modbus ZMB lo lee a través de un bus local corto y envía los registros por la red mallada Zigbee a un Gateway que ejecuta Edge.
Preguntas frecuentes
¿Son lo mismo RS-485 y Modbus?
No. RS-485 es una norma eléctrica para la señal de un par trenzado. Modbus es un protocolo para las peticiones y respuestas. Modbus RTU suele funcionar sobre RS-485, pero Modbus TCP no necesita RS-485 y el mismo bus RS-485 también puede transportar BACnet MS/TP, DLMS/COSEM y protocolos de fabricante.
¿En qué se diferencian RS-232 y RS-485?
RS-232 utiliza un hilo de señal por sentido, referido a masa, y conecta dos dispositivos. Su cable está limitado por una carga capacitiva de 2.500 pF, unos 20 m. RS-485 utiliza un par diferencial, admite hasta 32 cargas unitarias en un bus y alcanza unos 1.200 m a las velocidades habituales de los contadores. Su receptor solo necesita una diferencia de 200 mV entre los hilos y tolera una diferencia de potencial de −7 V a +12 V respecto a masa sin corromper los datos.
¿Puedo conectar un dispositivo RS-232 a un bus RS-485?
Solo mediante un convertidor, porque las señales eléctricas son distintas. El convertidor también debe conmutar su transmisor RS-485 entre emisión y recepción. Los convertidores automáticos son más sencillos de configurar que los controlados por la línea RTS, que pueden liberar el bus demasiado pronto o demasiado tarde para recibir una respuesta.
¿Qué es Modbus RTU sobre RS-485?
Son mensajes Modbus RTU binarios con un CRC de 16 bits, enviados como caracteres serie de 11 bits por un par RS-485. Un maestro sondea los dispositivos por turnos según sus direcciones, de 1 a 247. La dirección 0 es de difusión y ningún dispositivo responde a ella.