RS-485 y Modbus no son alternativas: RS-485 es una capa física y Modbus es un protocolo. RS485 (norma TIA/EIA-485, también escrita RS-485) es una interfaz serie: define la señal eléctrica de un par trenzado y cuántos dispositivos pueden compartirlo. Modbus define las peticiones, las direcciones de los dispositivos y los registros que viajan por una conexión. Modbus RTU suele utilizar RS-485 y por eso ambos nombres aparecen juntos, pero Modbus TCP funciona sobre Ethernet sin RS-485.
¿Qué es Modbus? explica el protocolo por sí mismo: el modelo de datos, los códigos de función y una petición completa con su respuesta.
RS485 vs Modbus: la diferencia
| RS-485 | Modbus | |
|---|---|---|
| Qué es | Una norma de interfaz eléctrica, TIA/EIA-485-A | Un protocolo de comunicación publicado por la Modbus Organization |
| Capa | Capa física (capa OSI 1) | Protocolo de aplicación (capa 7), con un protocolo de línea serie en la capa 2 para RTU y ASCII |
| Qué define | Señales diferenciales en un par trenzado, umbrales del receptor y cargas unitarias | Códigos de función, las cuatro tablas de datos, respuestas de excepción, tramas y direccionamiento |
| Funciona sobre | Par trenzado de cobre, dos o cuatro hilos | RS-485 o RS-232 (Modbus RTU y ASCII), o TCP/IP (Modbus TCP) |
| Direcciones de dispositivo | Ninguna | 1 a 247 en una línea serie; dirección IP e ID de unidad en TCP |
| Comprobación de errores | Ninguna | CRC de 16 bits en RTU, LRC en ASCII y las comprobaciones de TCP en Modbus TCP |
| Qué se ajusta en la instalación | Cableado, terminación y polarización | Velocidad en baudios, paridad, bits de parada, dirección y mapa de registros |
| Lo utilizan | Modbus RTU, BACnet MS/TP, DLMS/COSEM y protocolos de fabricante | Contadores, PLC, inversores, variadores y controladores |
La guía Modbus de línea serie hace la misma separación: el protocolo de aplicación Modbus en la capa 7, las reglas de la línea serie y las tramas RTU o ASCII en la capa 2, y EIA/TIA-485 o EIA/TIA-232 en la capa 1. Una hoja de datos que indica «Modbus RS485» se refiere, por tanto, a tramas Modbus RTU en un par RS-485, y el cableado, los ajustes serie y el mapa de registros tienen que coincidir.
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. El conversor de direcciones Modbus convierte una referencia del mapa, como el registro de entrada 30343, en la dirección de base cero que lleva la petición.
Qué define la interfaz RS485: la capa física
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 emisor debe aplicar al menos 1,5 V entre los dos hilos sobre 54 Ω, la carga de un bus terminado en ambos extremos. 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 el cable, 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, y el comprobador de terminación y polarización RS-485 muestra dónde van las resistencias en un bus concreto.
Qué define Modbus: el protocolo
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. La guía Modbus de línea serie admite Modbus RTU sobre RS-232 para un enlace así entre dos dispositivos, con las mismas tramas y ajustes serie que en RS-485.
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
¿Modbus y RS485 son lo mismo?
No. RS-485 es la capa física: una norma eléctrica para la señal de un par trenzado. Modbus es un protocolo para las peticiones, las direcciones de los dispositivos y los registros. 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.
¿Qué diferencia hay entre Modbus RTU y RS485?
Describen una misma conexión en dos capas. Modbus RTU es el protocolo y su trama: mensajes binarios con la dirección del dispositivo, un código de función y un CRC de 16 bits. RS-485 es el par de hilos y las tensiones que transportan esos mensajes. Una hoja de datos que indica «Modbus RS485» se refiere a Modbus RTU en un puerto RS-485. Modbus RTU también puede funcionar sobre RS-232.
¿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.
¿Puede Modbus funcionar sobre RS-232?
Sí. La guía Modbus de línea serie admite RS-232 como opción para un enlace entre dos dispositivos, a menudo un puerto de configuración. Las tramas, el formato de carácter y la regla de un solo maestro son los mismos que en RS-485. El límite de carga de 2.500 pF de RS-232 limita el cable a unos 20 m, así que utilice RS-485 para más de un dispositivo o un tramo más largo.
¿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.
¿Qué tensión utiliza RS-485?
RS-485 no tiene una tensión de señal fija como 5 V o 12 V, porque el receptor lee la diferencia entre los dos hilos. Un emisor debe aplicar al menos 1,5 V sobre la carga de 54 Ω de un bus terminado, un receptor debe interpretar correctamente una diferencia de 200 mV y cada hilo puede estar entre −7 V y +12 V respecto a la masa del receptor. Modbus no define ninguna tensión.