Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Historia
El primer PLC aparece aproximadamente a finales de los años 60, se propone un sistema
conocido en su momento como Modular Digital Controller el acrónimo que aún ronda en
la actualidad, padre de los PLC´s el histórico MODICON cuyo modelo exacto era
Modicon 084. El ingeniero que lideró todo este proceso fué Dick Morley y digo fué porque
acabó de fallecer el 17 de Octubre de 2017 (Gracias Dick).
Parece ser que en 1973 con el Modicon penetrando el sector industrial surge la necesidad
de comunicar los equipos y es allí donde nace Modicon Bus (Modbus) el protocolo creado
para comunicar los equipos Modicon. Muchos se estarán preguntando cómo es posible que
algo tan antiguo se nombre en la actualidad, pues tanto el Modicon como Modbus son tan
El mundo de los protocolos podríamos decir que existen dos grandes clasificaciones:
protocolos abiertos y protocolos propietarios. Modbus es un protocolo abierto, tenemos a
nuestra disposición toda la información y precisamente gran parte del material compartido
en este artículo proviene de Modbus Organization les comparto la misión en español.
Origen
Modbus es un protocolo de comunicaciones, basado en la arquitectura maestro/esclavo o
cliente/servidor, diseñado en 1979 por Modicon para su gama de controladores lógicos
programables (PLCs).
Debido a que este protocolo fue público, de fácil uso y que requiere poco desarrollo
(maneja bloques de datos sin suponer restricciones) se convirtió en un protocolo de
comunicaciones estándar en la industria. Es el protocolo de mayor disponibilidad para la
conexión de dispositivos electrónicos industriales.
El protocolo Modbus permite el control de una red de dispositivos, por ejemplo un equipo
de medición temperatura y humedad puede comunicar los resultados a una PC. Modbus
también se usa para la conexión de un PC de supervisión con una unidad remota (RTU) en
sistemas de supervisión de adquisición de datos (SCADA). Existen versiones del protocolo
Modbus para puerto serial y Ethernet (Modbus/TCP).
Características
En Modbus existen dos tipos de perfiles que pueden tomar los equipos dependiendo la
variación del protocolo: maestro o esclavo| cliente o servidor. Un fabricante puede habilitar
las siguientes posibilidades en su hardware, especialmente para las variaciones con trabajan
sobre estándares seriales:
Podremos encontrarnos con cualquiera de estas opciones, por ejemplo es habitual que una
pantalla o HMI tenga de fábrica un perfil de maestro, un controlador de temperatura de
fábrica viene con el perfil de esclavo.
En esta parte tengo que darte una recomendación a la hora de seleccionar un equipo, pues si
no tienes en cuenta el perfil que necesitas puedes estar comprando el equipo equivocado,
por esta razón se debe revisar con detenimiento los requerimientos y las especificaciones
del hardware. Les comparto algunos fragmentos de catálogos de equipos para que
comprueben este punto directamente.
Modbus tiene distintas variaciones, es decir, nos podemos encontrar con cualquiera de las
siguientes opciones en un equipo, es habitual también que el hardware soporte varias. He
desarrollado un podcast para cada tipo de variación accede a ellos a través de los siguientes
enlaces.
En la siguiente imagen puedes ver un equipo que soporta Modbus RTU, Modbus ASCII y
Modbus TCP.
Especificaciones de equipo que soporta Modbus RTU, Modbus ASCII y Modbus TCP
Si accedes a las capas que tienen enlaces puedes escuchar el podcast que se ha desarrollado
hasta el momento con una perspectiva de redes industriales.
Por ejemplo Modbus RTU tiene implementada la capa física, la capa de enlace y la capa de
aplicación, vamos a analizar un poco lo que se encuentra en cada nivel para ésta variante.
Capa Física
El Protocolo Modbus RTU puede trabajar sobre las siguientes recomendaciones en la capa
física:
RS 232
RS 422
RS 485
Capa de Enlace
En la capa de enlace, se definen los ID’s de los equipos (números enteros 1,2,3…255), los
perfiles (maestro – esclavo) y la técnica para detectar la integridad de la información
enviada en la Trama entre otros aspectos. En Modbus RTU se emplea el CRC (chequeo de
redundancia cíclica).
Como lo muestra la figura anterior la capa de enlace de OSI se llama Modbus Master/Slave
frente a las capas del Protocolo Modbus RTU.
Capa de Aplicación
La capa de aplicación de Modbus trabaja bajo la abstracción Cliente /Servidor, para el caso
de Modbus RTU el rol de cliente lo desempeña el Maestro y el rol de servidor lo toman los
esclavos.
[ID][FUNCIÓN][DATO][CRC]
La estructura anterior muestra de forma genérica la trama del protocolo, vamos a ver cada
campo.
ID: Dirección del esclavo, número enteros normalmente desde 1, hasta 255.
Trama Maestro
[ID][FUNCIÓN][DATO][CRC]
Para el maestro el campo dato está integrado por dos subcampos, la dirección y la longitud.
En la dirección se indica al esclavo en que dirección debe buscar lo que se ha solicitado a
través de la función y la longitud indica a partir de esa dirección cuantos elementos se
deben tomar.
[ID][FUNCIÓN][DATO][CRC]
Tamaño de la Trama
Ahora vamos a analizar cada campo cuantos bits, Bytes o Words ocupan, para el caso del
Protocolo Modbus se organizan bloques de tamaño mínimo de Bytes como lo muestra la
siguiente estructura.
Recuerda el primer corchete es la dirección del esclavo (slave), con un Byte se pueden tener
valores entre 0 y 255 para colocar la dirección (ID) del equipo. El segundo corchete es la
función y con un Byte se tiene también la posibilidad de colocar valores entre 0 y 255 pero
se debe tener en cuenta que no existen 256 funciones en el protocolo, son menos ya lo
veremos más adelante. El tercer corchete es el campo de dato y es flexible dependiendo de
si es un maestro o un esclavo. Y finalmente los últimos dos corchetes son dedicados al
CRC (Chequeo de Redundancia Cíclica).
Antes de comenzar a explicar esta tabla voy a seleccionar los códigos más comunes
implementados en los equipos, recuerden, a pesar de tener disponibles muchas funciones en
el Protocolo los fabricantes de los equipos implementan aquellos códigos que son claves de
acuerdo a la funcionalidad que tiene el hardware.
01 ->Read Coils
Estas 8 funciones son muy habituales, pero no quiere decir que los fabricantes las
implementan todas en un equipo, se puede dar el caso que de las mencionadas
anteriormente sólo se implemente dos o tres, lo explico mejor con un ejemplo.
El módulo SR3 MBU le permite al equipo Zelio de Schneider Electric comunicarse por
medio del Protocolo Modbus se utiliza como interfaz mecánica un conector RJ-45. Una vez
resuelto todo lo relacionado con la capa física revisamos los funciones que soporta
empleando el módulo.
Sólo vienen disponibles 4 funciones del Protocolo Modbus la 03, 06, 16 (10 Hex) y 43 (2B
Hex). Las funciones del equipo Zelio están expresadas en formato Hexadecimal, el código
43 es ¨Read Device Indentification¨.
La interpretación literal es leer bobinas, suena raro la verdad para aquellos que no conocen
un PLC, pero es importante anotar que los equipos tiene diferentes tipos de salidas entre las
que se encuentran las Relé y de allí el nombre de bobinas ya que el elemento que se debe
energizar para activar una salida es la bobina. Este nombre del código viene de los primero
PLC´s ya que este tipo de salida es típica y apareció en los primeros Modicon.
Cómo funciona entonces, el maestro cuando solicita a un esclavo la función [01] le está
pidiendo información del estado de sus salidas, no importa si son tipo digital, tipo relé, etc.
Leer entradas discretas, con este código el maestro le solicita al esclavo información del
estado de sus entradas, no importa el tipo de entrada que tenga. Un ejemplo de respuesta del
esclavo puede ser «tengo encendida la entrada 1, la entrada 4, la entrada 5, etc.»
Leer registros de retención, el maestro le indica al esclavo por medio de este código que
entregue información de una posición de memoria, este tipo de memorias son de lectura y
escritura. Es quizá la función más importante del Protocolo Modbus pues por medio de
estos registros se puede obtener información de todo lo que ocurre en el equipo, es
solamente mover la información que se quiere compartir al registro de retención.
Leer registros de entrada, el maestro le indica al esclavo por medio de este código que
entregue información de una posición de memoria, este tipo de memorias son de sólo
lectura. Muchos equipos los utilizan para compartir información de sus entradas analógicas
en caso de que las posean.
MODBUS RS 485
Se le denomina Modbus RS 485 al ya estudiado Protocolo Modbus, pero la capa física está
manejada por la recomendación RS 485. Todo lo estudiado aplica, entre las
especificaciones de RS 485 se pueden resaltar:
MODBUS TCP/IP
Es una evolución natural de las comunicaciones seriales como Modus RTU y Modbus
ASCII. En Modbus sobre TCP/IP como lo nombra la Modbus Organization toda la
estructura de la trama se mantiene como lo que se ha estudiado hasta el momento, pero se
hacen algunos ajustes propios de las nuevas capas del modelo OSI que se están incluyendo.
Empezamos nombrando algunos cambios, los perfiles de los equipos son ahora Cliente y
Servidor. Se puede trazar un paralelo para entender el comportamiento de los equipos con
el tradicional Modbus RTU, los maestros son ahora clientes y los esclavos son servidores.
Vamos a ver dentro del Modelo OSI que nuevas capas se han agregado:
1. Capa física
2. Capa de enlace
3. Capa de red
4. Capa de transporte
5. Capa de Aplicación
Este es un buen ejemplo de integraciones de recomendaciones y protocolos para que pueda
trabajar Modbus TCP IP como lo conocemos.
Capa física
Comenzamos con recomendaciones que nos van a definir las interfaces mecánicas, pin outs
y señalización entre otras especificaciones. En Modbus TCP en la capa física se estandariza
con la norma EIA/TIA 568, que define entre otros aspectos el código de colores del cable,
se emplea un conector RJ45 que interconecta 8 señales, en donde 4 son dedicadas
exclusivamente a la transmisión y recepción de datos (TX+, TX-, RX+, RX-).
Es posible conectar un PLC que soporta Modbus RTU en el hardware y conexiones de
computadores tradicionales sí cumple con las mismas normas que emplean lo
computadores, pero sólo podrán intercambiar información bajo el protocolo aquellos
equipos que tengan implementado Modbus TCP, es decir, un cliente y un servidor.
Capa de enlace
En la capa de enlace es importante tener en cuenta que aquí es donde aparece la dirección
física del Equipo, que popularmente se le llama la dirección MAC, se compone de 6 bytes
(6 octetos), cada equipo tiene una dirección unívoca en el mundo (no existen dos iguales).
Capa de Red
Esta capa es importante pues aparece el protocolo IP, al cual le debemos la estandarización
de todo lo relacionado con la direcciones IP, por lo tanto nuestros equipos en Modbus TCP
deben tener asignada su dirección IP. Para hacer pruebas y redes de tamaño mediano se
usan direcciones clase C, por eso es muy habitual encontrar direcciones IP como:
192.168.X.X configuradas en los equipos.
Capa de Transporte
Se ha definido una estructura genérica para la trama del protocolo conocida como PDU
(Simple Protocolo Data Unit) que permite independizar todo de las capas inferiores.
En el caso de MODBUS sobre TCP/IP se encapsula la PDU en una red TCP/IP Al
encapsularse sobre TCP/IP aparece en la trama un campo nuevo MBAP Header (MODBUS
Aplication Protocolo header). El header tiene un tamaño de 7 bytes con el siguiente
contenido:
Unit Identifier: Identificación del esclavo (En caso de pasar a redes Modbus RTU)
Entonces la configuración inicial básica que debe realizar un usuario cuando usa Modbus
TCP es asignar la dirección IP del equipo y adicional la dirección del esclavo con el que se
va a comunicar.
Controladores de temperatura
Controladores
Programadores Lógicos Programables (PLC’s)
HMI’s
Variadores de Velocidad
Scadas
El protocolo Modbus actual no tiene autenticación, ya que solo es necesaria una dirección
IP y un código de función para establecer las sesiones. Además, un atacante es capaz de
capturar el tráfico de red y analizar todas las peticiones intercambiadas entre maestros y
esclavos en una red industrial que utilice Modbus/TCP y podría interpretar las tramas
fácilmente porque la especificación de Modbus es de dominio público. Al no estar
autenticadas las sesiones se podía suplantar tanto al esclavo como al maestro. En
Modbus/TCP seguro esto ya no es posible al asegurarse la autenticación y el cifrado de la
información.
Este tipo de debilidades obliga a aplicar contramedidas externas en el uso del Modbus
actual, ya que es la única forma de mejorar su seguridad. Mediante el uso de cortafuegos es
posible controlar las peticiones tanto de escritura como de lectura y hasta los registros a los
que está permitido realizar ciertas acciones. Por otro lado, y gracias al uso de IDS e IPS, se
alerta o se bloquean peticiones provenientes de posibles atacantes.
PROFIBUS
Historia
Origen
Parte de la propuesta de valor de PROFIBUS es su capacidad para reducir los costos y mejorar las
operaciones en todo el ciclo de vida de una fábrica, desde el diseño, hasta el mantenimiento
permanente e incluso las renovaciones. En la etapa de ingeniería, PROFIBUS simplifica el diseño de
la planta, eliminado el cableado duro y necesitando menos hardware, lo que conduce a una puesta
en servicio más rápida y menores costos. PROFIBUS también ofrece mejores diagnósticos, lo que
acelera la puesta en servicio. Aparte, PROFIBUS ayuda a lograr mejor productividad y productos de
mayor calidad, mediante la entrega de datos mejores y más oportunos al personal de operaciones
y dirección. Además, apoya las estrategias avanzadas de gestión de activos, para la administración
y mantenimiento general.
Características