GILVI Automation

Blog

OPC UA: guía práctica para conectar máquinas, SCADA y MES

· GILVI Automation

En casi cualquier planta conviven máquinas de fabricantes distintos, PLC de marcas distintas y un SCADA, un MES o un ERP que tienen que entenderse con todos ellos. OPC UA (Open Platform Communications Unified Architecture) permite que sistemas de distintos fabricantes intercambien información mediante una interfaz estándar, sin depender de drivers propietarios para cada combinación, siempre que ambos extremos implementen OPC UA.

En esta guía veremos qué es OPC UA, cómo conectar un PLC con un SCADA o un MES, cuándo tiene sentido usar MQTT, cómo se protege la comunicación y qué errores conviene evitar en una instalación industrial.

OPC UA en un minuto

Dónde encaja: la pirámide de automatización

La forma clásica de ordenar los sistemas de una fábrica es la pirámide de automatización, basada en el modelo ISA-95 (norma IEC 62264). Cada nivel maneja un tipo de información distinto y a un ritmo distinto. Los ritmos de la tabla son orientativos: ISA-95 no los fija, y cada planta tiene los suyos.

Pirámide de automatización: campo, PLC, SCADA y HMI, MES y ERP, con la frontera entre OT e IT. OPC UA conecta los niveles 1 a 4
La pirámide de automatización (ISA-95): abajo, el mundo OT (máquinas y control); arriba, el IT (gestión). OPC UA es el puente habitual entre el PLC y el SCADA, el MES y el ERP.
NivelQué hayRitmo orientativo
0 · CampoSensores, actuadores, motores, válvulasTiempo real
1 · ControlPLC, controladores de robot, variadoresMilisegundos
2 · SupervisiónSCADA, HMI, históricos de procesoSegundos
3 · OperacionesMES: órdenes, trazabilidad, calidad, OEEMinutos, horas, turnos
4 · EmpresaERP: planificación, compras, logísticaDías, semanas

Entre el nivel 0 y el 1 mandan los buses de campo en tiempo real (PROFINET, EtherNet/IP, EtherCAT). Del nivel 1 hacia arriba es donde OPC UA se ha convertido en el estándar de facto: saca los datos del PLC hacia el SCADA y el MES, y permite que máquinas de distintos fabricantes hablen entre sí. El ERP también puede consumir datos por OPC UA, pero en una arquitectura real no suele leer directamente de los PLC: lo hace a través del MES o de una capa de integración.

En las arquitecturas más modernas la pirámide se aplana: en lugar de que cada nivel hable solo con el de al lado, todos publican y consumen datos de un punto común (lo que se conoce como Unified Namespace). Incluso así, OPC UA sigue siendo la forma más habitual de sacar los datos de las máquinas.

Del OPC clásico a OPC UA

Antes de los estándares, cada aplicación necesitaba un driver para cada marca de PLC: tres PLC y tres aplicaciones suponían nueve conexiones distintas que mantener. El primer OPC (hoy llamado OPC clásico: OPC DA, HDA y A&E, de finales de los 90) resolvió parte del problema, pero dependía de Windows y de DCOM, una tecnología difícil de configurar y problemática con los cortafuegos.

Sin estándar hacen falta nueve drivers entre tres PLC y tres aplicaciones; con OPC UA todos hablan el mismo lenguaje
Sin un estándar, cada pareja PLC-aplicación necesita su driver. Con OPC UA, todos usan el mismo protocolo. Para que además entiendan los datos igual están las especificaciones de sector.
OPC clásico (DA)OPC UA
PlataformaSolo WindowsCualquiera: PLC, Linux, Windows, nube
ComunicaciónDCOM, difícil a través de cortafuegosCliente-servidor: TCP binario (opc.tcp, normalmente el puerto 4840), HTTPS o WebSockets
Publicación-suscripciónNo existePubSub sobre MQTT o AMQP (con broker) o UDP (sin broker)
SeguridadLa de WindowsPropia: certificados, firma, cifrado, usuarios
DatosValores sueltos (tags)Modelo de información con estructura, tipos y métodos
FuncionesDatos, históricos y alarmas en especificaciones separadasTodo en un único estándar

Cómo funciona: cliente y servidor

El modo más común es el cliente-servidor. El PLC (o un PC junto a la máquina) tiene un servidor OPC UA que publica sus datos. El SCADA, el MES, un histórico o una aplicación en la nube se conectan como clientes.

El PLC hace de servidor OPC UA; SCADA, MES e histórico se conectan como clientes
El servidor publica la máquina; cada cliente lee, escribe, se suscribe o llama a métodos.

Lo que un cliente puede hacer está definido por los servicios del estándar:

Para encontrar los servidores existe un servicio de descubrimiento: el cliente pregunta y el servidor le indica sus direcciones (endpoints) y los niveles de seguridad que admite.

El modelo de información

La gran diferencia de OPC UA frente a otros protocolos es que no publica una lista de registros sin contexto, sino un modelo de la máquina. Todo lo que hay en el servidor son nodos relacionados entre sí:

Ejemplo de modelo de información OPC UA de una llenadora con objetos, variables, alarmas y métodos
Ejemplo de modelo de información de una llenadora: el MES no lee «DB10.DBW4», lee «Producción / Unidades buenas».

Para un MES o un cuadro de mando, la diferencia es enorme: los datos llegan con nombre y estructura (y con unidades, si se han modelado), y una máquina nueva del mismo tipo se integra sin volver a mapear nada.

Suscripciones, muestreo y banda muerta

Preguntar continuamente por cientos de variables (polling) satura la red y el PLC. Con una suscripción, el cliente le dice al servidor qué variables le interesan y con qué condiciones, y el servidor solo envía lo que cambia. Hay tres parámetros clave:

El servidor muestrea cada 100 ms pero solo envía los cambios que superan la banda muerta
Con una banda muerta de 2 °C, de 30 muestras solo 10 generan una notificación.

Ajustar bien estos tres valores es lo que separa una integración fluida de una que satura el PLC. Un contador de producción no necesita leerse cada 100 ms, y una temperatura de horno no necesita enviar cada décima de grado.

PubSub y MQTT

Desde la versión 1.04, OPC UA incluye un segundo modelo de comunicación: publicación-suscripción (PubSub). El publicador envía sus datos sin saber quién los recibe, y cualquier número de suscriptores los consume. Hay dos variantes:

Los PLC publican sus datos en un broker MQTT y el MES, la nube y los cuadros de mando se suscriben
PubSub con broker MQTT: los PLC publican una vez y todos los sistemas que lo necesiten se suscriben.

¿Cliente-servidor o PubSub? En planta, para SCADA y MES, cliente-servidor sigue siendo lo habitual y lo que admiten casi todos los equipos. PubSub sobre MQTT tiene sentido cuando hay muchos consumidores, cuando los datos van a la nube o cuando se monta una arquitectura de datos centralizada.

Seguridad

OPC UA se diseñó con la seguridad integrada, pero solo protege si se configura. Muchos equipos salen de fábrica con el acceso anónimo y sin cifrado para facilitar la puesta en marcha, y así se quedan. La protección se organiza en capas:

Seguridad de OPC UA por capas: red, canal seguro con certificados, sesión con usuario y permisos
Defensa en profundidad: si falla una capa, quedan las demás.

OPC UA no sustituye a una red bien diseñada: la red de planta separada de la de oficinas, cortafuegos entre zonas y solo los puertos necesarios abiertos, como recomienda la serie IEC 62443 de ciberseguridad industrial.

Especificaciones de sector (companion specifications)

Que dos máquinas hablen OPC UA no garantiza que se entiendan: cada fabricante podría organizar sus datos a su manera. Para evitarlo, la OPC Foundation publica junto con asociaciones de fabricantes (como VDMA o EUROMAP) especificaciones de sector, que fijan cómo debe presentarse cada tipo de equipo. Ya hay modelos normalizados para más de 60 tipos de equipos industriales. Algunas de las más usadas:

EspecificaciónPara qué
OPC 40001 · OPC UA for MachineryBloques comunes a cualquier máquina: identificación, estado, gestión de trabajos y energía
OPC 30050 · PackMLMáquinas de envasado: máquina de estados, modos y contadores normalizados
OPC 40010 · RoboticsRobots: identificación, estado y mantenimiento de ejes y controladores
OPC 40077 · EUROMAP 77Inyectoras de plástico conectadas al MES
OPC 40501 · Machine ToolsMáquina herramienta: estado, programas y trabajos
OPC 30000 · PLCopenCómo presentar en OPC UA los bloques de programa del PLC (IEC 61131-3)

Para un fabricante de maquinaria, seguir la especificación de su sector es un argumento de venta: el cliente integra la máquina en su MES casi sin trabajo adicional.

OPC UA frente a otros protocolos

Ojo: no son alternativas equivalentes. OPC UA es un estándar de interoperabilidad (modelo de información, servicios y seguridad); MQTT es un protocolo de transporte que puede llevar datos de OPC UA o de cualquier otra cosa; Modbus TCP y PROFINET son protocolos de comunicación con la periferia y entre equipos de control. La tabla compara para qué se usa cada uno, no cuál es mejor.

OPC UAMQTTModbus TCPPROFINET
Para qué sirveIntegrar máquinas con SCADA, MES y ERPEnviar datos a muchos destinos y a la nubeEquipos sencillosControl en tiempo real del PLC con su periferia
Modelo de datosSí, rico y normalizadoNo (Sparkplug B añade uno básico)No: registros numeradosOrientado a E/S
SeguridadIntegradaTLS y la del brokerPrácticamente ningunaLimitada; depende de la red
Nivel1 a 42 a 4 y nube0 y 10 y 1

No compiten entre sí: en una planta moderna conviven. PROFINET dentro de la máquina, OPC UA para sacar los datos de la máquina y MQTT, a menudo con OPC UA PubSub, para llevarlos a la nube.

OPC UA no sustituye a la comunicación determinista de control. El modo cliente-servidor no está pensado para cerrar lazos de control de milisegundos ni para gobernar periferia y accionamientos: eso sigue siendo cosa de PROFINET, EtherNet/IP o EtherCAT. OPC UA FX, junto con TSN, está ampliando el alcance de OPC UA hacia ese terreno, pero hoy, en la gran mayoría de las máquinas, el control en tiempo real sigue en el bus de campo.

OPC UA en los PLC más habituales

PlataformaQué ofrece
Siemens S7-1500Servidor y cliente OPC UA integrados en la CPU. El servidor necesita una licencia de runtime, que va por tamaño de CPU (Small, Medium o Large). Se configura en TIA Portal.
Siemens S7-1200Servidor OPC UA en las versiones de firmware recientes, también con licencia.
Beckhoff TwinCAT 3Servidor y cliente con la función TF6100 (con licencia).
Omron NJ/NXServidor OPC UA integrado en muchas CPU, según el modelo y la versión.
CODESYSServidor OPC UA incluido en el runtime estándar; se elige qué variables publicar.
Allen-BradleyDepende del modelo y del firmware; si no está integrado, se resuelve con un módulo o una pasarela OPC UA.

Si el PLC no tiene servidor OPC UA (equipos antiguos, por ejemplo), se puede usar una pasarela: un software o un equipo que habla el protocolo nativo del PLC por un lado y ofrece un servidor OPC UA por el otro. Es una solución muy habitual en proyectos de retrofit.

Licencias, versiones de firmware y funciones cambian con cada versión. Compruébalo siempre en la documentación del fabricante antes de presupuestar.

Ejemplo: conectar un S7-1500 por OPC UA

Sin convertir esto en un tutorial de TIA Portal, estos son los pasos de una integración típica con una CPU S7-1500:

  1. Activar el servidor OPC UA en las propiedades de la CPU, comprobar que su versión de firmware admite las funciones que se van a usar y asignar la licencia de runtime que corresponda al tamaño de la CPU.
  2. Definir la interfaz: crear una interfaz de servidor propia con solo las variables que necesita el SCADA o el MES, en lugar de publicar todo el programa.
  3. Configurar la seguridad: políticas de seguridad admitidas, certificado del servidor, usuarios y acceso de invitado desactivado.
  4. Anotar el endpoint: la dirección del servidor, del tipo opc.tcp://<IP del PLC>:4840.
  5. Probar con UaExpert: conectarse, aceptar los certificados, explorar la interfaz y comprobar lecturas, escrituras y suscripciones.
  6. Conectar el SCADA o el MES como cliente, con la misma política de seguridad, y ajustar los intervalos de muestreo y publicación.

La interfaz de datos es un contrato

Activar OPC UA en un PLC es relativamente sencillo: en muchos casos es marcar una casilla. Diseñar una interfaz OPC UA mantenible no lo es. La estructura publicada debería tratarse como una API industrial: una vez que la consume un SCADA, un MES u otro sistema, cambiarla puede romper integraciones que ya funcionan.

El trabajo de ingeniería está en decidir:

Esa es la diferencia entre «tener OPC UA» y tener una integración que dura años.

Caso práctico: un SCADA sin driver para el PLC

El problema

En un proyecto de maquinaria farmacéutica, el SCADA de supervisión era Wonderware InTouch y había que captar señales del PLC de la máquina. Para ese caso no había driver de comunicación disponible entre el SCADA y el PLC.

La arquitectura

El PLC de la máquina hace de servidor OPC UA y publica las señales necesarias. El lado del SCADA se conecta como cliente OPC UA y las recibe como cualquier otra señal de su base de datos.

La solución

En lugar de desarrollar o comprar un driver específico, las señales se pasaron al SCADA por OPC UA: el estándar hace de puente entre dos productos que no tenían una conexión directa.

El resultado

El SCADA recibe las señales de la máquina por un protocolo estándar, documentado y mantenible, que además sirve igual para conectar otros sistemas en el futuro.

El SCADA no tenía driver para el PLC y las señales se pasaron por OPC UA
OPC UA como puente cuando no hay driver nativo: es uno de sus usos más prácticos.

Cómo plantear un proyecto OPC UA

  1. Para qué se quieren los datos. Indicadores de producción, trazabilidad, mantenimiento, energía… El objetivo decide qué datos y con qué frecuencia.
  2. Inventario de máquinas. Marca y modelo de cada PLC, versión de firmware y si tiene servidor OPC UA o hará falta una pasarela.
  3. Diseño de la interfaz de datos. Qué variables, con qué nombres, unidades y estructura. Si existe una especificación de sector (PackML, Machinery…), seguirla.
  4. Licencias. Comprobar qué licencias de runtime necesita cada equipo y añadirlas al presupuesto.
  5. Red y seguridad. Dónde está cada equipo, qué cortafuegos hay que atravesar, qué modo de seguridad, qué usuarios y quién gestiona los certificados.
  6. Configurar los servidores y publicar solo lo definido en la interfaz.
  7. Probar con un cliente genérico (por ejemplo, UaExpert) antes de conectar el SCADA o el MES: así se separan los problemas del servidor de los del cliente.
  8. Integrar y ajustar los intervalos de muestreo, la publicación y las bandas muertas viendo la carga real del PLC y de la red.
  9. Documentar la interfaz, los certificados y sus fechas de caducidad, y los usuarios.

Errores frecuentes

Hacia dónde va OPC UA

Preguntas frecuentes

¿OPC UA sustituye a PROFINET o a EtherNet/IP?

No. PROFINET y EtherNet/IP son buses de tiempo real para que el PLC controle su periferia. OPC UA sirve para sacar los datos de la máquina hacia arriba y para comunicar sistemas entre sí. Conviven en la misma máquina.

¿Es gratis?

El estándar es abierto y hay muchas implementaciones libres. Pero en muchos PLC el servidor OPC UA integrado necesita una licencia de runtime del fabricante, y algunos SCADA y MES cobran el cliente OPC UA como opción.

¿Puedo usar OPC UA con máquinas antiguas?

Sí, con una pasarela que habla el protocolo nativo del PLC antiguo y ofrece un servidor OPC UA. Es una de las formas más habituales de conectar maquinaria existente sin tocar su programa.

¿Qué es mejor, OPC UA o MQTT?

Hacen cosas distintas. OPC UA aporta el modelo de datos y la seguridad de extremo a extremo; MQTT es un transporte ligero para repartir datos a muchos destinos. Lo habitual es combinarlos.

¿Cuántas variables puede publicar un PLC?

Depende de la CPU: cada fabricante indica un límite de variables publicadas, de sesiones simultáneas y de elementos monitorizados. Antes de diseñar la interfaz hay que mirar los datos técnicos de la CPU concreta.

¿Qué puerto usa?

Para un endpoint opc.tcp típico se abre el puerto configurado en el servidor, que normalmente es el 4840. Si se usa HTTPS, WebSockets o PubSub con MQTT, los puertos son otros.

Documentación de referencia

Nuestra experiencia

En GILVI Automation usamos OPC UA en proyectos de captación de señales y de integración de datos:

Si necesitas conectar tus máquinas a un SCADA o a un MES, o quieres que tus máquinas salgan de fábrica con una interfaz OPC UA bien diseñada, cuéntanos tu proyecto. Más información en Digitalización industrial e integración IT/OT.

¿Hablamos de tu proyecto?

Trabajamos desde Terrassa para el Vallès Occidental, Barcelona y toda España.

info@gilviautomation.com

Servicio relacionado