Ir al contenido

Comunicaciones y protocolos en la automatización industrial

Enlaces y protocolos alrededor de un PLC: RS-485, Ethernet, Modbus, MQTT y OPC UA
29 de junio de 2020 por
Comunicaciones y protocolos en la automatización industrial
DAVID SEGOVIA LOPEZ

La automatización industrial usa dos capas de comunicación. El enlace físico transporta los bits: RS-485, RS-232, Ethernet, Wi-Fi, red móvil, I2C, CAN o LoRa. El protocolo que va encima les da significado: Modbus RTU, Modbus TCP, MQTT, OPC UA, HTTP, PROFINET o EtherNet/IP. Una planta típica usa Modbus RTU sobre RS-485 para los equipos de campo, Modbus TCP o el Ethernet industrial del fabricante del PLC entre controladores, y MQTT u OPC UA para enviar datos al SCADA y a la nube.

Esta guía es un mapa de los enlaces y protocolos que encontrarás alrededor de un PLC: qué hace cada uno, qué distancia y velocidad alcanza, cuál elegir y qué interfaces tienen las familias M-Duino, Ardbox, ESP32 PLC y Raspberry PLC de Industrial Shields.

Ilustración de dos ingenieros trabajando con ordenadores que intercambian datos con máquinas y la nube

¿Cuáles son los principales protocolos de comunicación en la automatización industrial?

La pregunta mezcla dos cosas que se suelen confundir. RS-485 o Ethernet no definen el contenido de un mensaje: solo mueven bytes de un equipo a otro. Modbus, MQTT u OPC UA definen el contenido: direcciones, registros, topics, tipos de datos y quién habla en cada momento. Se eligen por separado, y un mismo protocolo puede funcionar sobre varios enlaces. Por ejemplo, Modbus RTU funciona sobre RS-485 o RS-232, y MQTT sobre Ethernet, Wi-Fi o un módem 4G.

CapaQué defineEjemplos
Enlace físicoCables o radio, niveles de tensión, distancia, velocidadRS-485, RS-232, Ethernet (IEEE 802.3), Wi-Fi (IEEE 802.11), I2C, CAN, LoRa, 4G
Red y transporteDirecciones y entrega entre redesIP, TCP, UDP
Protocolo de aplicaciónSignificado de los datos y reglas del diálogoModbus RTU, Modbus TCP, MQTT, OPC UA, HTTP, PROFINET, EtherNet/IP

Comparativa de protocolos de comunicación industrial

ProtocoloFunciona sobreModeloUso típico
Modbus RTURS-485, RS-232Maestro y esclavos, una petición cada vezContadores de energía, variadores, sensores, E/S remotas
Modbus TCPEthernet, Wi-Fi (puerto TCP 502)Cliente y servidorPLC con PLC, PLC con HMI o SCADA, pasarelas
MQTTTCP/IP: Ethernet, Wi-Fi, 4G (puerto 1883, 8883 con TLS)Publicación y suscripción a través de un brokerTelemetría hacia SCADA, bases de datos y la nube
OPC UATCP/IP (puerto 4840)Cliente y servidor, también publicación y suscripciónDatos estructurados con tipos y seguridad para SCADA y MES
HTTP y HTTPSTCP/IP (puertos 80 y 443)Petición y respuestaServidores web en el PLC, API REST, servicios en la nube
PROFINET y EtherNet/IPEthernet industrialDatos de E/S cíclicos entre controlador y equiposRedes de control de PLC de tipo Siemens y Rockwell
CANopenBus CANMultimaestro, prioridad de mensajesControl de movimiento, vehículos, máquinas móviles
LoRaWANRadio LoRaSensores hacia una pasarela y un servidor de redSensores con batería repartidos en recintos grandes

Para comparar en detalle las tres opciones más habituales, lee Modbus RTU vs Modbus TCP vs OPC UA. Para elegir la red de control de una línea nueva, lee EtherNet/IP vs PROFINET vs Modbus TCP.

Ethernet y Wi-Fi en los PLC industriales

Ethernet (IEEE 802.3) es la base cableada de la mayoría de redes de planta. Lleva Modbus TCP, MQTT, OPC UA, HTTP y los protocolos de Ethernet industrial por el mismo cable, a través de switches, con velocidades de 10 Mbit/s a 1 Gbit/s y más. Los PLC M-Duino usan el controlador Ethernet W5500: un chip de 10/100 Mbit/s con la pila TCP/IP en hardware, 8 sockets y un buffer de 32 KB para los paquetes, conectado al microcontrolador por SPI. Tu programa abre sockets y el chip se ocupa de TCP e IP.

Cable Ethernet conectado al puerto Ethernet de un PLC de Industrial Shields

Wi-Fi (IEEE 802.11) ofrece la misma red IP sin cable, a través de puntos de acceso. Es útil en máquinas que se mueven, en retrofits donde un cable nuevo sale caro y para datos que no son críticos en tiempo. El ESP32 PLC y el Raspberry PLC llevan Wi-Fi integrado. La radio del ESP32 solo funciona en la banda de 2,4 GHz. Mantén el lazo de control en enlaces cableados cuando un paquete perdido detiene la máquina.

Logotipo de Wi-Fi

Más: ¿Qué es Ethernet industrial? y Conexión Ethernet con un ESP32 PLC o un M-Duino.

Enlaces serie RS-485 y RS-232

RS-485 (TIA/EIA-485) envía cada bit como la diferencia de tensión entre dos hilos, A y B. El ruido afecta a los dos hilos por igual, así que el bus funciona en armarios ruidosos y con cables largos: unos 1200 m a 100 kbit/s o menos, con hasta 32 cargas unitarias en un segmento. Muchos equipos comparten el mismo par trenzado (un bus multipunto), por eso lo usan Modbus RTU y la mayoría de equipos de campo.

RS-232 (TIA-232-F) es un enlace punto a punto entre dos equipos, por ejemplo un PLC y un instrumento, un lector de códigos de barras o un módem. Usa señales referidas a masa, así que se limita a cables cortos, de unos 15 m.

RS-232 cruza las líneas de datos: el TX de un equipo va al RX del otro. Con conectores DB9, un cable directo une un ordenador (DTE) con un módem (DCE), y un cable cruzado o null-modem une dos equipos DTE, por ejemplo dos ordenadores.

Serie TTL (UART) es el puerto serie básico de un microcontrolador: envía los bits uno tras otro a una velocidad fija, con bits de inicio y de parada en lugar de un reloj, a 0 V y 5 V o 3,3 V. Solo cubre enlaces cortos dentro de una placa o entre placas contiguas. Un transceptor lo convierte a RS-485 o RS-232 antes de salir del PLC.

Conectores DB9 hembra y macho de dos cables serie RS-232
RS-485RS-232
SeñalDiferencial (A y B)Referida a masa
EquiposHasta 32 cargas unitarias por segmento2, punto a punto
DistanciaUnos 1200 m a 100 kbit/s o menosUnos 15 m
Protocolo típicoModbus RTUModbus RTU o comandos ASCII de un equipo

RS-485 en los PLC M-Duino y Ardbox

Los PLC M-Duino y Ardbox usan un transceptor MAX481CSA para la comunicación RS-485. Convierte el nivel TTL al nivel RS-485.

En el M-Duino, un interruptor selecciona half duplex (un par, A+ y B-) o full duplex (dos pares, con Y+ y Z-):

Interruptores del M-Duino con el interruptor FD RS485 HD que selecciona full o half duplex

Cableado, distancia y código: Conceptos básicos de RS-485 en un PLC industrial y RS-485 con PLC basados en Arduino y ESP32.

I2C, SPI y bus CAN a nivel de placa y de máquina

I2C (Inter-Integrated Circuit) es un bus serie síncrono con dos líneas: SDA para los datos y SCL para el reloj, las dos con resistencias de pull-up. Un maestro se dirige a cada esclavo por una dirección de 7 bits. Conecta chips, pantallas y sensores a distancias cortas, dentro de una placa o de un armario, no a lo largo de una planta.

Bus I2C con un maestro y varios esclavos en las líneas SDA y SCL, con resistencias de pull-up a Vcc

SPI (Serial Peripheral Interface) es más rápido que I2C y usa líneas separadas para datos de entrada, datos de salida, reloj y selección de chip. En un PLC conecta periféricos internos, como el controlador Ethernet, y módulos externos.

El bus CAN (ISO 11898) es un bus diferencial con prioridad de mensajes y gestión de errores por hardware. Viene del automóvil y se usa en máquinas móviles y control de movimiento, a menudo con el protocolo CANopen encima.

Guías: Bus I2C en un PLC basado en Arduino, CAN por SPI en el ESP32 PLC 14 y bus CAN con un Raspberry PLC.

Red móvil y LoRa para instalaciones remotas

Cuando una instalación no tiene cable de red, el PLC puede usar la red móvil o una radio de largo alcance.

  • Red móvil (2G GPRS, 4G LTE, LTE-M, NB-IoT). El PLC obtiene una conexión IP a través de un módem y una tarjeta SIM, así que puede enviar MQTT o HTTP desde cualquier lugar con cobertura. GPRS (2G) ofrece decenas de kbit/s y fue la primera opción para PLC remotos, con SMS para las alarmas. Muchos operadores han apagado o planean apagar sus redes 2G y 3G, así que comprueba la cobertura antes de elegir GPRS para un proyecto nuevo. El ESP32 PLC admite una placa opcional 4G.
  • LoRa y LoRaWAN. Radio de baja velocidad con un alcance de kilómetros y un consumo muy bajo. Encaja con sensores a batería y pocos datos, no con lazos de control. El ESP32 PLC admite una placa opcional LoRa.
PLC M-Duino con una antena para el módem móvil GPRS

Más: ¿Qué es LoRaWAN?, LoRaWAN con un PLC y el caso de monitorización de vagones de tren con un ESP32 PLC en 4G LTE-M.

Modbus RTU y Modbus TCP

Modbus es un protocolo de aplicación abierto, creado por Modicon en 1979. Un maestro (cliente) lee y escribe cuatro tipos de datos en un esclavo (servidor): coils, entradas discretas, input registers y holding registers. Es sencillo, no tiene tipos de datos ni nombres de variables, y casi todos los contadores, variadores y PLC lo admiten.

Red Modbus con HMI y SCADA, controladores, E/S remotas y equipos de campo en enlaces Ethernet y serie
Modbus RTUModbus TCP
EnlaceRS-485 o RS-232Ethernet o Wi-Fi
DireccionamientoDirección de esclavo de 1 a 247 en cada tramaDirección IP, más un identificador de unidad
TramaDirección, código de función, datos y un CRC-16Cabecera MBAP de 7 bytes, código de función y datos, sin CRC (TCP comprueba los datos)
Caracteres11 bits: 1 de inicio, 8 de datos, 1 de paridad, 1 de parada (o 2 de parada sin paridad)No aplica
ConcurrenciaUna petición en el bus cada vezVarias conexiones y peticiones en paralelo

Modbus TCP no es una trama Modbus RTU dentro de un paquete TCP: quita la dirección de esclavo y el CRC y añade la cabecera MBAP. Una pasarela convierte entre los dos. El identificador de unidad de la cabecera MBAP indica a la pasarela a qué esclavo RTU se dirige.

Guías de implementación: Trama Modbus RTU, códigos de función y CRC, Modbus RTU con PLC basados en Arduino y ESP32 y Maestro Modbus TCP con PLC basados en Arduino y ESP32.

MQTT, OPC UA y HTTP para SCADA y la nube

MQTT (ISO/IEC 20922) es un protocolo ligero de publicación y suscripción. El PLC publica valores en topics de un broker, y cualquier cliente suscrito a un topic los recibe. El PLC no necesita saber quién lee los datos y los mensajes son pequeños, así que MQTT funciona bien en 4G y en enlaces lentos. Usa el puerto TCP 1883, o el 8883 con TLS.

OPC UA (IEC 62541) describe los datos, no solo los valores: cada variable tiene un nombre, un tipo, unidades y un lugar en un modelo de información. Lleva la seguridad integrada (certificados, firma y cifrado) y es la opción habitual para conectar controladores con SCADA y MES. Usa el puerto TCP 4840.

HTTP envía peticiones y respuestas por el puerto TCP 80. HTTPS es HTTP dentro de una conexión cifrada TLS, en el puerto 443. En un PLC sirve una página web local o llama a la API REST de un servicio en la nube. Usa HTTPS cuando los datos salen de la red de la planta.

Candado abierto para http:// y candado cerrado para https://

MQTT, OPC UA y HTTP funcionan sobre TCP/IP, así que sirven en Ethernet, Wi-Fi y red móvil. Más: Fundamentos de seguridad en MQTT, MQTT sobre TLS en un ESP32 PLC y servidor OPC UA en un Raspberry PLC con Node-RED.

PROFINET y EtherNet/IP, el Ethernet industrial de los grandes fabricantes de PLC

PROFINET (ecosistema Siemens) y EtherNet/IP (ecosistema Rockwell) intercambian datos de E/S cíclicos entre un controlador y sus equipos por Ethernet, con tiempos de actualización definidos. Son la red de control de muchas líneas, y el equipo debe estar certificado para el protocolo. Cuando la especificación de la planta indica uno de ellos como red de control, el PLC de esa red debe soportarlo de forma nativa. Para intercambiar datos junto a esa red, Modbus TCP, MQTT u OPC UA suelen ser suficientes.

Más: PROFINET con un Raspberry PLC en Linux.

Interfaces de comunicación de cada familia de PLC de Industrial Shields

Datos de las fichas de producto. Cada familia tiene varios modelos: consulta la página de producto del modelo exacto.

FamiliaBaseComunicaciones
M-DuinoArduino Mega 2560Ethernet, RS-485, RS-232, I2C, SPI
ArdboxArduino LeonardoRS-485, RS-232, I2C, SPI
ESP32 PLCESP32Ethernet, Wi-Fi, Bluetooth LE, RS-485, RS-232, I2C, SPI. Placa opcional LoRa, 4G o CAN
Raspberry PLCRaspberry Pi, Linux2 x Ethernet, 2 x RS-485, Wi-Fi, Bluetooth LE, I2C, SPI. Placa opcional CAN, LoRa o 4G
GateBerryRaspberry Pi, pasarela LinuxEthernet, RS-485. 4G o LoRa como opciones

En todos ellos, los protocolos (Modbus RTU, Modbus TCP, MQTT, HTTP) son software: librerías de Arduino en M-Duino, Ardbox y ESP32 PLC, y Python, Node-RED o CODESYS en el Raspberry PLC. Para comparar tipos de controlador, lee Cómo elegir un controlador industrial.

Cómo elegir el enlace y el protocolo de una red de PLC

  1. Equipos de campo con puerto serie (contadores, variadores, reguladores de temperatura): Modbus RTU sobre RS-485, una sola línea con 120 Ω en los dos extremos.
  2. Controladores, HMI y SCADA en la misma planta: Modbus TCP sobre Ethernet, o el Ethernet industrial que exija el estándar de la planta.
  3. Datos hacia paneles, bases de datos o la nube: MQTT, u OPC UA cuando el cliente necesita datos con tipo y descripción.
  4. Instalaciones sin cable: 4G o LTE-M con MQTT para datos periódicos, LoRaWAN para sensores de bajo consumo.
  5. Enlaces cortos dentro del armario: I2C o SPI para módulos junto al PLC.

Prueba una red mixta en el navegador. En el simulador de red Modbus, un M-Duino 21 consulta cuatro esclavos Modbus RTU por RS-485 y sirve los valores por Modbus TCP. Cambia la velocidad o apaga un esclavo, y lee las tramas y los timeouts.

Abrir el simulador de red ModbusLeer el caso Modbus RTU y TCP

Para instalaciones remotas, el simulador de telemetría de instalaciones remotas reproduce un sistema de telemetría de la red de agua de un municipio: estación de bombeo, depósito, alarmas y detección de fugas por caudal nocturno.

Preguntas frecuentes sobre protocolos de comunicación industrial

¿RS-485 es un protocolo?

No. RS-485 es una capa física: define tensiones y cableado. Modbus RTU, BACnet MS/TP y muchos otros protocolos funcionan sobre ella.

¿Cuál es el protocolo más usado en automatización industrial?

Modbus (RTU y TCP) es el más soportado, porque es abierto y sencillo. En líneas grandes la red de control suele ser PROFINET o EtherNet/IP, y los datos hacia los sistemas IT van cada vez más por OPC UA y MQTT.

¿Qué diferencia hay entre Modbus TCP y MQTT?

Modbus TCP es petición y respuesta: un cliente pide registros a un servidor. MQTT es publicación y suscripción: el PLC envía valores a un broker y los clientes los reciben. Modbus TCP encaja en la comunicación entre PLC y en la consulta desde SCADA. MQTT encaja en la telemetría hacia muchos clientes y hacia la nube.

¿Es mejor MQTT u OPC UA para un PLC?

MQTT es más ligero y sencillo para enviar valores por enlaces lentos o móviles. OPC UA describe los datos y tiene seguridad y un modelo de información, que usan los sistemas SCADA y MES. Muchos sistemas usan los dos: OPC UA dentro de la planta y MQTT hacia la nube.

¿Puede un PLC usar varios protocolos a la vez?

Sí. Una configuración habitual es un PLC que es maestro Modbus RTU en RS-485 para los equipos de campo, servidor Modbus TCP en Ethernet para el HMI y cliente MQTT de un broker para los datos remotos.

¿Qué protocolo funciona sobre 4G?

Cualquier protocolo sobre TCP/IP: MQTT, HTTPS, Modbus TCP u OPC UA. MQTT es la opción habitual porque los mensajes son pequeños y el PLC abre la conexión, así que funciona detrás de las direcciones IP privadas de las redes móviles.

Buscar en nuestro blog

Comunicaciones y protocolos en la automatización industrial
DAVID SEGOVIA LOPEZ 29 de junio de 2020
Compartir esta publicación

¿Estás buscando tu Controlador Lógico Programable ideal?

Echa un vistazo a esta comparativa de producto de varios controladores industriales basados en Arduino.

Comparamos entradas, salidas, comunicaciones y otras especificaciones con las de los equipos de otras marcas destacadas.

Comparativa de PLCs