Una guía básica para estudiantes sin conocimientos previos
El protocolo Modbus es uno de los protocolos de comunicación industrial más utilizados en el mundo de la automatización. Desarrollado originalmente por Modicon (ahora Schneider Electric) en 1979, Modbus se ha convertido en un estándar de facto en la industria debido a su simplicidad, robustez y naturaleza abierta.
Figura 1: Visión general del protocolo Modbus
Modbus opera bajo un principio fundamental: la arquitectura maestro-esclavo (o cliente-servidor en Modbus TCP). Esta arquitectura define cómo se establece la comunicación entre los dispositivos:
Figura 2: Arquitectura maestro-esclavo en Modbus
Modbus organiza la información en diferentes tipos de registros, cada uno con características específicas:
Tipo de Registro | Tamaño | Acceso | Descripción |
---|---|---|---|
Discrete Inputs | 1 bit | Solo lectura | Entradas digitales o estados de conmutación |
Coils | 1 bit | Lectura/Escritura | Salidas digitales o estados de conmutación |
Input Registers | 16 bits | Solo lectura | Valores analógicos o contadores |
Holding Registers | 16 bits | Lectura/Escritura | Valores configurables o datos de proceso |
Existen dos variantes principales del protocolo Modbus que se utilizan ampliamente en la industria:
Utiliza comunicación serial (RS-232 o RS-485) y transmite datos en formato binario.
Adaptación del protocolo para redes Ethernet, utilizando TCP/IP como medio de transporte.
Modbus RTU (Remote Terminal Unit) es una de las variantes más utilizadas del protocolo Modbus en entornos industriales. Se caracteriza por su simplicidad, eficiencia y robustez, lo que lo hace ideal para aplicaciones donde se requiere una comunicación confiable en ambientes industriales.
Figura 3: Comunicación Modbus RTU
Modbus RTU presenta varias características que lo distinguen:
La trama de datos en Modbus RTU tiene una estructura compacta y eficiente:
Figura 4: Estructura de trama Modbus RTU
Campo | Tamaño | Descripción |
---|---|---|
Dirección del esclavo | 1 byte | Identifica el dispositivo esclavo (1-247) |
Código de función | 1 byte | Indica la acción a realizar (lectura, escritura, etc.) |
Datos | Variable | Contiene direcciones, valores o información adicional |
CRC | 2 bytes | Verificación de redundancia cíclica para detección de errores |
Modbus RTU ofrece numerosas ventajas que explican su amplia adopción en la industria:
Modbus TCP es una variante moderna del protocolo Modbus que adapta el protocolo original para funcionar sobre redes Ethernet utilizando TCP/IP. Esta adaptación ha permitido que Modbus se integre perfectamente en la infraestructura de red moderna, ampliando significativamente sus capacidades y aplicaciones.
Figura 5: Comunicación Modbus TCP
Modbus TCP presenta características distintivas que lo diferencian de Modbus RTU:
La estructura del protocolo Modbus TCP incluye una cabecera MBAP (Modbus Application Protocol) que encapsula la PDU (Protocol Data Unit) de Modbus:
Figura 6: Estructura de trama Modbus TCP
Campo | Tamaño | Descripción |
---|---|---|
Transaction ID | 2 bytes | Identificador de transacción para emparejar solicitudes y respuestas |
Protocol ID | 2 bytes | Siempre 0 para Modbus TCP |
Length | 2 bytes | Número de bytes siguientes |
Unit ID | 1 byte | Identificador de unidad (para compatibilidad con Modbus RTU) |
Function Code | 1 byte | Código de función Modbus (igual que en Modbus RTU) |
Data | Variable | Datos específicos de la función |
Modbus TCP utiliza un modelo cliente-servidor en lugar del modelo maestro-esclavo tradicional:
Modbus TCP ofrece numerosas ventajas sobre Modbus RTU:
Tanto Modbus RTU como Modbus TCP son variantes del protocolo Modbus ampliamente utilizadas en la industria. Cada una tiene características específicas que la hacen más adecuada para determinadas aplicaciones.
Característica | Modbus RTU | Modbus TCP |
---|---|---|
Medio físico | RS-232 o RS-485 | Ethernet |
Protocolo de transporte | Serial | TCP/IP |
Formato de datos | Binario | Encapsulado en TCP |
Velocidad | Hasta 115.2 kbps | 10/100/1000 Mbps |
Distancia | Limitada (hasta cientos de metros) | Extendida (con infraestructura adecuada) |
Verificación de errores | CRC (16 bits) | Manejada por TCP |
Direccionamiento | Dirección de esclavo (1-247) | Dirección IP + Puerto TCP |
Modelo de comunicación | Maestro-Esclavo | Cliente-Servidor |
Conexiones simultáneas | Un maestro a la vez | Múltiples clientes simultáneos |
Esta sección proporciona información técnica más detallada sobre el protocolo Modbus, incluyendo los códigos de función y el modelo de datos, elementos fundamentales para comprender cómo funciona este protocolo en aplicaciones reales.
Los códigos de función son una parte esencial del protocolo Modbus. Estos códigos indican al dispositivo esclavo qué tipo de acción debe realizar. La siguiente tabla, extraída directamente de la especificación oficial del protocolo Modbus (MODBUS Application Protocol Specification, sección 5.1 Public Function Code Definition), muestra los principales códigos de función:
Figura 7: Códigos de Función Modbus según la especificación oficial
Como se puede observar en la tabla, los códigos de función se organizan en diferentes categorías según el tipo de acceso a datos:
Entre los códigos de función más comúnmente utilizados se encuentran:
Una característica importante del protocolo Modbus es que cada dispositivo puede tener su propio mapa de memoria. El siguiente diagrama ilustra cómo el protocolo Modbus accede a diferentes áreas de la memoria de un dispositivo:
Figura 8: Modelo de Datos Modbus con bloques separados
Como se muestra en la imagen, un dispositivo servidor Modbus (esclavo) organiza sus datos en diferentes bloques:
Es fundamental entender que cada fabricante define su propio mapa de memoria para sus dispositivos. Esto significa que:
Esta flexibilidad es una de las razones por las que Modbus es tan versátil, pero también requiere una configuración específica para cada tipo de dispositivo en una red Modbus.