Blog

OPC-UA: qué es y cómo conectar PLCs con software industrial moderno

OPC-UA (Open Platform Communications Unified Architecture, IEC 62541) es el estándar de comunicación que ha unificado la transferencia de datos entre PLCs, robots, sensores, SCADAs y sistemas cloud en los entornos de fabricación modernos. Entenderlo es imprescindible para cualquier ingeniero o responsable de automatización que quiera conectar su planta con el mundo digital.

OPC-UAPLCprotocolos industrialesIoT industrialSiemensAllen-Bradley

El problema que resolvió OPC-UA

Antes de OPC-UA, cada fabricante de PLCs usaba su protocolo propietario: Siemens con S7 (ISO-on-TCP), Allen-Bradley con EtherNet/IP, Schneider con Modbus TCP, Mitsubishi con MELSEC. Integrar un SCADA con equipos de distintos fabricantes exigía drivers específicos para cada uno, que solo corrían en Windows de 32 bits y dependían de DCOM — una tecnología frágil y difícil de mantener.

OPC Classic (versiones DA, HDA, AE) resolvió parcialmente el problema pero mantuvo la dependencia de Windows y DCOM. OPC-UA (2008) lo resuelve completamente: es multiplataforma (Windows, Linux, ARM, microcontroladores), tiene seguridad integrada en el protocolo (TLS, autenticación de usuario, firma de mensajes) y es semántico — no solo transfiere valores sino que describe su significado.

Cómo funciona: el modelo de Address Space

Un servidor OPC-UA expone un "Address Space" — un árbol de nodos — que representa los datos de la máquina. Cada nodo tiene un identificador único (NodeId), un tipo (Variable, Object, Method) y atributos como valor actual, timestamps de la última modificación, calidad del dato y unidades de ingeniería.

Un cliente OPC-UA puede leer el valor actual de cualquier nodo, escribir en nodos que representan setpoints o comandos, y suscribirse a cambios de valor para recibir notificaciones solo cuando el dato cambia (MonitoredItem + Subscription). Esto elimina el polling continuo y reduce drásticamente el tráfico de red.

  • NodeId: identificador único de cada dato (numérico, de cadena o GUID)
  • BrowseNames: nombres legibles para navegar el árbol de datos
  • DataType: tipo de dato (Float, Int32, Boolean, estructura compleja)
  • AccessLevel: permisos de lectura y escritura por nodo
  • Engineering Units: unidades de ingeniería embebidas en el nodo

Conectar un PLC Siemens S7-1500 paso a paso

Primero, activar el servidor OPC-UA integrado del S7-1500 desde TIA Portal (disponible desde firmware V2.0). Segundo, configurar qué bloques de datos (DB) son visibles para clientes OPC-UA y asignar permisos de lectura/escritura por nodo. Tercero, en el software cliente usar una librería OPC-UA: asyncua para Python, node-opcua para Node.js, o el SDK oficial de Unified Automation para .NET.

El endpoint de conexión tiene la forma opc.tcp://192.168.1.100:4840. Tras autenticarse, el cliente navega el Address Space, localiza los nodos que necesita y crea suscripciones para recibir cambios en tiempo real. Para un Allen-Bradley ControlLogix, el proceso es similar a través de Logix Designer con el módulo opcional de servidor OPC-UA.

OPC-UA frente a MQTT: cuándo usar cada uno

Ambos son ampliamente usados en IIoT pero con propósitos distintos. OPC-UA es rico en semántica (tipos, unidades, historial), bidireccional (lectura y escritura de setpoints) y tiene descubrimiento de datos nativo. MQTT es ligero, unidireccional por defecto, sin semántica nativa y óptimo para enviar grandes volúmenes de datos de sensores a un broker cloud.

La combinación más eficiente en arquitecturas industriales modernas es OPC-UA del PLC al gateway edge (para aprovechar la semántica y la escritura bidireccional) y MQTT del gateway al cloud (para aprovechar el bajo ancho de banda y la facilidad de integración con plataformas cloud como AWS IoT Core o Azure IoT Hub). Exactamente la arquitectura que usa HydroNet.

¿Necesitas integrar PLCs o un sistema SCADA con tu software?

Tech Nex tiene desarrolladores industriales especializados en OPC-UA, Modbus y protocolos industriales. Disponibles desde una hora.

Ver packs de horas →