Pasarela inteligente para grúas y computación periférica: prácticas de ingeniería en la adquisición de datos y la conversión de protocolos OPC UA
La pasarela inteligente y el sistema de computación periférica para grúas son el eje clave que conecta la capa de dispositivos con la capa de información: se encargan de la conversión de protocolos, la recopilación de datos, la computación periférica y la transmisión de datos en caso de pérdida de conexión entre los PLC y los variadores de frecuencia, por un lado, y los sistemas MES, SCADA y las plataformas en la nube, por otro. Krude Heavy Industry, basándose en la pasarela industrial de borde IOT2050 de Siemens y en su propia plataforma de datos de borde, ha creado una arquitectura estandarizada para la adquisición de datos y la conversión de protocolos de las grúas puente, que admite la conversión en tiempo real entre cinco protocolos: PROFINET, OPC UA, Modbus TCP, MQTT y REST API. una sola pasarela puede recopilar simultáneamente los datos de funcionamiento de ocho grúas puente, con un retardo de procesamiento en el borde inferior a 50 ms y sin pérdida alguna de datos en la transmisión tras una interrupción de la conexión. Este artículo expone de forma sistemática esta práctica de ingeniería, desde la selección del hardware y la configuración de la pila de protocolos hasta el modelado de datos, la implementación y el mantenimiento.
I. Selección del hardware de las pasarelas periféricas industriales y arquitectura del sistema
El hardware central del sistema de adquisición de datos de las grúas es una pasarela industrial de borde, que se instala en el armario de control de la grúa o en una estación de control in situ cercana, conectándose hacia arriba a la red del taller y, hacia abajo, directamente al PLC de la grúa a través de una interfaz PROFINET. En su solución estandarizada, Krude Heavy Industry ha elegido la pasarela industrial de borde IOT2050 de Siemens como plataforma de hardware principal, la cual incorpora un procesador ARM Cortex-A72 de cuatro núcleos (1,5 GHz) y 4 GB de RAM DDR4, integra dos puertos Ethernet RJ45 Gigabit, dos puertos USB 3.0 y una ranura para tarjetas SD de grado industrial, y ejecuta Siemens Industrial Edge y Edge Apps basadas en contenedores Linux. El IOT2050 admite un amplio rango de temperaturas de funcionamiento, de -20 °C a 60 °C, y cuenta con un grado de protección IP20, por lo que es adecuado para su instalación en un carril DIN dentro de un armario de control.
| Parámetros | Siemens IOT2050 | Alternativas de fabricación nacional |
|---|---|---|
| Procesador | ARM Cortex-A72 de cuatro núcleos a 1,5 GHz | RK3568 de cuatro núcleos a 2,0 GHz |
| Memoria | 4 GB de DDR4 | 4 GB de LPDDR4 |
| Almacenamiento | 32 GB eMMC + ranura para tarjetas SD | eMMC de 64 GB + SSD M.2 |
| Ethernet | 2× Gigabit RJ45 | 2× Gigabit RJ45 |
| Compatibilidad con protocolos | PROFINET/OPC UA/Modbus/MQTT | PROFINET/OPC UA/Modbus/MQTT |
| Entorno de ejecución | Industrial Edge / Yocto Linux | Debian / Ubuntu |
| Temperatura de funcionamiento | -20 °C a 60 °C | -20 °C a 70 °C |
| Método de instalación | Riel DIN / Montaje en pared | Riel DIN / Montaje en pared |
La arquitectura del sistema adopta una implementación en tres capas: dispositivo, perímetro y nube. La capa de dispositivos incluye el PLC S7-1500, el variador G120, el módulo de interfaz del codificador y el conjunto de sensores que se encuentran en el armario de control de cada grúa; el PLC envía los datos de funcionamiento a la pasarela mediante el ciclo de PROFINET IO (10 ms), mientras que el variador G120 transmite la velocidad del motor, la corriente, la temperatura y los códigos de fallo a través del perfil de configuración del variador de PROFINET. En la capa de borde se implementa una pasarela IOT2050, que ejecuta cuatro aplicaciones Edge principales: un servidor OPC UA (que agrega los datos UA de todos los nodos PLC), un motor de conversión de protocolos (PROFINET ↔ OPC UA ↔ Modbus ↔ MQTT), una unidad de procesamiento de datos en el borde (cola de caché + reanudación de transferencia tras interrupción + compresión de datos) y un módulo de seguridad de datos (cifrado TLS + lista de control de acceso). La capa de la nube incluye el sistema de ejecución de la producción MES, la plataforma de supervisión SCADA y la pantalla gigante de operaciones y mantenimiento del gemelo digital, que se comunican con la pasarela de borde a través de un cliente OPC UA o un broker MQTT.
II. Configuración del servidor OPC UA y modelado de nodos de datos
OPC UA es el protocolo de comunicación fundamental que conecta el PLC de la grúa con el sistema superior. Krud Heavy Industry ha diseñado un modelo de información estandarizado para las grúas en el servidor OPC UA de la pasarela periférica, agrupando y nombrando los nodos de datos del sistema de control de las grúas de acuerdo con la norma complementaria OPC UA for Machinery (IEC 62541-100), lo que garantiza la coherencia de la estructura de datos entre las diferentes grúas, por lo que los sistemas MES y SCADA no necesitan adaptarse individualmente a cada grúa.
El modelo de información se divide en cuatro niveles según la jerarquía de los equipos. El primer nivel es el de emplazamiento (Site), que corresponde a un taller o nave industrial: la ruta de nodo ”/Site/Workshop_01” incluye el conjunto de todas las grúas aéreas de dicho taller. El segundo nivel es el de la línea de producción (Area), que corresponde a un grupo de grúas de puente de la misma nave o del mismo puesto de trabajo: la ruta de nodo ”/Area/Bay_A” contiene las tres grúas de puente de dicha nave. El tercer nivel es el de «Equipo» (Device), que corresponde a una grúa individual: la ruta de nodo «/Device/Crane_01» contiene todos los datos de subgrupos de dicha grúa. El cuarto nivel es el de bloques funcionales (Function), que se corresponde con las distintas unidades funcionales del sistema de control de la grúa: incluye el grupo de control de movimiento (que contiene el modo de funcionamiento, la posición objetivo, la posición real, la velocidad y el estado de aceleración), el grupo de variadores de frecuencia (que contiene la corriente, la velocidad de giro, la temperatura, el estado de funcionamiento y los códigos de alarma de los motores de cada mecanismo) y el grupo de frenos (que incluye el estado de activación/ cerrado de los dos juegos de frenos, la corriente de los electroimanes, el número de desgastes y el indicador de desincronización), el grupo de estado de seguridad (que incluye los estados STO/SLS/SBC/SDI, el número de activaciones de parada de emergencia y el registro de incidentes de seguridad) y el grupo de diagnóstico (que incluye el tiempo de funcionamiento del sistema, la cola de códigos de fallo y la marca de fecha y hora del PLC).
Los nombres de los nodos de datos siguen el formato «camel case»; cada nodo incluye la definición del tipo de datos y una descripción. Motion.ActualPosition (Int32, unidad: mm), Motion.Speed (Real, unidad: m/s), Drive.Current_A (Real, unidad: A), Brake.Status_A (Boolean, True = abierto / Brake cerrado), Brake.UnsyncCount (UInt16), Safety.STO_Active (Boolean), Safety.EventCount (UInt32). Durante la implementación in situ, se lleva a cabo la asignación de direcciones y la verificación de los tipos de datos de los 26 nodos OPC UA estándar de cada grúa; una vez completada la asignación, se utiliza la herramienta UA Expert para escanear y verificar la legibilidad de todos los nodos y la corrección de los tipos de datos.
| Grupo funcional | Número de nodos | Nodo típico | Tipos de datos | Frecuencia de muestreo |
|---|---|---|---|---|
| Control de movimiento (Motion) | 6 | Posición/Velocidad/Modo | Int32, Real, UInt16 | 50 ms |
| Variador de frecuencia Drive | 8 | Corriente/Temperatura/Estado | Real, UInt16, String | 100 ms |
| Freno Brake | 5 | Estado/Actual/Desgaste | Booleano, Real, UInt32 | 200 ms |
| Estado de seguridad Safety | 4 | STO/SLS/EventLog | Booleano, UInt32 | 20 ms |
| Diagnóstico Diagnosis | 3 | Tiempo de actividad/Cola de fallos | UInt32, String[] | 1 s |
III. Capa de conversión de protocolos: PROFINET a OPC UA/Modbus/MQTT
La conversión de protocolos es la función principal de la pasarela periférica. El PLC de la grúa envía datos a la pasarela con el ciclo en tiempo real de PROFINET IO (10 ms); el motor de conversión de protocolos de la pasarela analiza los datos de PROFINET IO y los convierte a un formato interno unificado, para luego reempaquetarlos según los requisitos de los distintos protocolos de destino. La pasarela ejecuta simultáneamente tres salidas de protocolo: un servidor OPC UA, un servidor Modbus TCP y un cliente MQTT, que prestan servicio, respectivamente, a tres tipos de usuarios finales: el sistema MES, el sistema SCADA y la plataforma en la nube.
Configuración de salida de OPC UA. El servidor OPC UA de la pasarela se ha desarrollado a partir de la pila de código abierto open62541 y es compatible con el protocolo binario OPC UA (puerto predeterminado 4840) y el protocolo HTTPS (puerto 443). La política de seguridad del servidor está configurada con cifrado y firma Basic256Sha256 (SecurityMode=SignAndEncrypt), mientras que la autenticación de los clientes se realiza mediante un modo de lista blanca de certificados X.509: solo se permite la conexión y la lectura de datos a los clientes OPC UA cuyos certificados figuren en la lista de confianza de la pasarela. El servidor publica los 26 nodos estándar de grúa mencionados anteriormente; una vez que el cliente UA (como el cliente OPC UA del sistema MES) ha detectado toda la estructura de nodos mediante la operación «Browse», lee los datos en tiempo real de forma masiva mediante suscripción, con un intervalo de muestreo mínimo de 50 ms.
Configuración de la salida Modbus TCP. La pasarela asigna los datos estándar de la grúa a la tabla de registros Modbus, y las direcciones de los registros se asignan de forma consecutiva a partir de 40001: 40001-40006 corresponden a los 6 registros del grupo de funciones «Motion», del 40007 al 40014 corresponden a los 8 registros del grupo de funciones «Drive», del 40015 al 40019 a los 5 registros del grupo de funciones «Brake» y del 40020 al 40023 a los 4 registros del grupo de funciones «Safety». Cada registro ocupa 2 bytes, y los datos de 32 bits (como Real o Int32) ocupan dos registros consecutivos. El sistema SCADA, en su calidad de maestro Modbus TCP (puerto predeterminado 502), realiza un sondeo periódico de las direcciones de los registros; una única instrucción de lectura permite obtener de forma masiva los datos de un segmento de direcciones consecutivas, lo que reduce la carga de la red.
Configuración de salida MQTT. La unidad de procesamiento de datos periférica de la pasarela se conecta como cliente MQTT al broker MQTT de la plataforma en la nube (como EMQX o VerneMQ, puerto predeterminado 8883), utilizando cifrado TLS para las comunicaciones. Los temas MQTT se diseñan según el nivel jerárquico de los equipos de grúa y adoptan una estructura de tres niveles: topic/workshop_id/crane_id/function/parameter; por ejemplo, “krunde/workshop01/crane_01/motion/position”. La publicación de datos utiliza QoS=1 para garantizar al menos una entrega; la carga de datos se encapsula en formato JSON e incluye tres campos: marca de tiempo, valor de datos y marca de calidad. La frecuencia típica de publicación de MQTT es de una vez por segundo, con un volumen de datos de aproximadamente 200 bytes por publicación y por grúa; el tráfico de red con ocho grúas funcionando simultáneamente es de unos 1,6 KB/s.
IV. Procesamiento de datos en el borde y reanudación de la transferencia tras una interrupción de la conexión
La recopilación fiable de los datos de funcionamiento de las grúas depende de la caché de datos local de la pasarela periférica y del mecanismo de transmisión tras una interrupción de la conexión. El entorno de las redes industriales —en particular, el roaming WiFi provocado por el desplazamiento de las grúas a lo largo de los raíles o las interferencias armónicas de los variadores de frecuencia en el taller— puede provocar interrupciones temporales en la conexión de red entre la pasarela y la plataforma en la nube. Para ello, la plataforma de datos periférica de Krud Heavy Industry ha diseñado un búfer circular y un mecanismo de reanudación de la transmisión tras una interrupción.
La capa de caché de datos utiliza una arquitectura de caché de dos niveles basada en memoria y tarjeta SD. La caché de primer nivel es un búfer circular en memoria (Ring Buffer), con una capacidad de 10 000 registros de datos (a razón de 200 bytes por registro, lo que ocupa aproximadamente 2 MB de memoria). El retardo de escritura en la caché de memoria es inferior a 1 ms y se implementa mediante el modelo productor-consumidor: los hilos de salida de OPC UA/Modbus/MQTT, en calidad de consumidores, leen los datos de la caché y los reenvían; una vez reenviados con éxito, se marcan como procesados. La caché de segundo nivel es una caché de archivos en la tarjeta SD; cuando una interrupción de la red provoca que la acumulación de datos supere el umbral de memoria (por defecto, 80%), la unidad de procesamiento de datos periférica escribe automáticamente los datos acumulados en el archivo de caché de la tarjeta SD. La capacidad de la caché de la tarjeta SD depende del tamaño de la misma (se recomienda una tarjeta SD de grado industrial de 32 GB); calculando una caché máxima de 7 días, se necesitan aproximadamente 1,2 GB de espacio, por lo que una tarjeta SD de 32 GB puede almacenar en caché datos de funcionamiento de la grúa durante más de 180 días.
La estrategia de reanudación de la transmisión tras una interrupción de la conexión se divide en tres casos. Interrupción breve (≤30 segundos): la memoria caché tiene capacidad suficiente para almacenar los datos acumulados; una vez restablecida la conexión, la conexión TCP del hilo de salida de la pila de protocolos se vuelve a establecer automáticamente y los datos almacenados en caché se envían rápidamente de una sola vez, ordenados por marca de tiempo. Interrupción media (entre 30 segundos y 2 horas): una vez que se desborda la memoria, los datos se transfieren automáticamente a la caché de archivos de la tarjeta SD; cuando se restablece la conexión, el módulo de sincronización de archivos de reanudación de transferencia escanea la tarjeta SD en busca de archivos en caché no enviados y los sube a una velocidad de 500 registros por segundo (lo que requiere un ancho de banda de subida de aproximadamente 212 KB/s, algo que puede satisfacer una red de taller de 10 Mbps). Interrupción prolongada (≥2 horas): cuando se llena la caché de la tarjeta SD (el número de archivos en caché alcanza el umbral de alarma), la plataforma periférica ejecuta automáticamente una estrategia de eliminación de la caché: elimina los registros más antiguos según el orden FIFO de las marcas de tiempo y, al mismo tiempo, activa una alarma local que se envía al panel de control de la grúa para notificar al personal de mantenimiento. Una vez restablecida la conexión, la pasarela comunica al sistema MES el intervalo de marcas de tiempo de los registros de datos que faltan, y es el MES el que decide si es necesario recuperar dichos datos del historial del PLC.
V. Seguridad de los datos y control de acceso
La seguridad de los datos de la plataforma de datos periféricos de Tianche cumple con la norma de ciberseguridad industrial ISA/IEC 62443. Las medidas de seguridad se dividen en tres niveles: seguridad de la transmisión, control de acceso y registros de auditoría.
La capa de seguridad de la transmisión habilita el cifrado TLS 1.3 en todos los enlaces de comunicación externos. El servidor OPC UA está configurado para utilizar el cifrado con firma Basic256Sha256, y se han desactivado las conexiones sin cifrado (se ha prohibido el uso de SecurityPolicy=None). El cliente MQTT se conecta al broker MQTT mediante TLS, y la verificación del certificado del servidor utiliza la verificación en cadena de la CA: la pasarela viene preinstalada con el certificado de la CA de fábrica y se prohíben las conexiones con certificados autofirmados. Dado que el protocolo Modbus TCP no admite el cifrado, se utiliza un túnel VPN (WireGuard) para establecer un canal cifrado entre la pasarela periférica y el servidor SCADA, y los paquetes Modbus se transmiten a través del túnel. El túnel VPN utiliza autenticación mediante clave precompartida (PSK), y la clave se renueva cada 90 días.
Los certificados OPC UA de los tres tipos de roles se cargan y vinculan en la interfaz de gestión web de la pasarela; cuando un cliente UA se conecta, la pasarela determina el rol mediante la verificación del campo «Common Name» del certificado del cliente y aplica los permisos correspondientes. El control de acceso a MQTT se implementa mediante reglas ACL; cada cliente MQTT se autentica con un nombre de usuario y una contraseña, y las reglas ACL limitan el rango de temas MQTT que el cliente puede publicar o suscribir.
La capa de registro de auditoría registra todos los eventos de acceso a los datos. Cada conexión y desconexión de un cliente OPC UA, cada suscripción o cancelación de suscripción de un cliente MQTT, y cada solicitud de lectura Modbus TCP que supere las 20 veces por segundo y active la limitación de velocidad de conexión se registran en el archivo de registro de auditoría de la pasarela; el formato del registro incluye la marca de tiempo, la dirección IP de origen, el tipo de protocolo, el tipo de operación y el resultado de la misma. El registro de auditoría se renueva automáticamente, con un periodo de retención de 90 días; los archivos de registro se almacenan cifrados y solo los usuarios con el rol de «Admin» pueden descargarlos y consultarlos a través de la interfaz de gestión web de la pasarela.
VI. Implementación, puesta a punto y gestión de operaciones y mantenimiento
La instalación y puesta a punto de la pasarela perimetral de la grúa se realiza siguiendo un proceso estandarizado. Primer paso: instalación del hardware. Se instala el IOT2050 en el carril DIN del armario de control (ocupa el ancho de cuatro módulos estándar). La pasarela se conecta al conmutador PROFINET del taller mediante un cable de red CAT6A apantallado y, a través de otro cable de red, al conmutador de la red de oficinas del taller (utilizado para la transmisión por MQTT y la gestión remota). La alimentación de la pasarela se realiza a 24 V CC a partir de la fuente de alimentación conmutada del armario de control; en la entrada de alimentación se instala un filtro EMC (corriente nominal de 0,5 A).
Segundo paso: implementación del entorno de software en el borde. A través de la plataforma Industrial Edge Management (IEM) de Siemens, se envían de forma remota las imágenes de las aplicaciones de borde al IOT2050. El orden de implementación de las aplicaciones es el siguiente: entorno de ejecución básico (Docker y configuración de red) → aplicación del servidor OPC UA → aplicación del motor de conversión de protocolos → aplicación de procesamiento de datos en el borde → aplicación del módulo de seguridad de datos. Tras la implementación de cada aplicación, se ejecuta un script de autocomprobación para verificar el estado de funcionamiento del contenedor y el estado de escucha de los puertos. La solución nacional envía los archivos de configuración de Docker Compose y las imágenes a través de SSH, y ejecuta la implementación con un solo comando: `docker-compose up -d`.
Tercer paso: verificación de la comunicación OPC UA. Conecta el servidor OPC UA de la pasarela (puerto predeterminado 4840) mediante UA Expert, importa el certificado de cliente emitido por CA y comprueba que la función «Browse» recorra los 26 nodos estándar. A continuación, ejecuta la operación «Read» en cada nodo para confirmar que los tipos de datos y los rangos de valores sean correctos. Utilizar la función «Subscription» de UA Expert para suscribirse al nodo «Motion.Position» (intervalo de muestreo de 50 ms), observar si la actualización de los datos en tiempo real es estable y verificar que la tasa de pérdida de paquetes de la suscripción sea ≤ 0,11 TP3T.
Cuarto paso: verificación del envío de datos. Suscríbete al tema ”krunde/workshop01/+/motion/position” en el cliente de prueba MQTT y comprueba si el formato JSON de los datos publicados por la pasarela es correcto. Utilice un esclavo Modbus para simular la lectura del sistema SCADA de las direcciones de registro 40001~40023 y compruebe que los valores de los datos coinciden con los mostrados en el PLC. Prueba de desconexión de red: desconecta el cable de red de la red operativa de la pasarela durante 30 segundos y comprueba que se creen automáticamente los archivos de caché en la tarjeta SD; una vez restablecida la conexión, el módulo de reanudación de transferencia subirá automáticamente los datos almacenados en caché; comprueba en el lado del MES que no se haya perdido ningún dato y que las marcas de tiempo sean continuas.
Quinto paso: configuración de la gestión de operaciones y mantenimiento. En la interfaz de administración web de la pasarela (HTTPS://192.168.x.x:8443), configura las reglas de alerta: el tiempo de espera de conexión del cliente OPC UA (por defecto, 30 segundos) activa una alerta por correo electrónico; la pérdida del pulso del broker MQTT (por defecto, 60 segundos sin respuesta al ping) activa una alerta; el uso de la caché de la tarjeta SD supera el 80%, lo que activa una alerta; el uso de la CPU de la pasarela supera de forma continuada el 80% durante 5 minutos, lo que activa una alerta. Todas las alertas se envían a través de SMTP al correo electrónico de los ingenieros de operaciones y mantenimiento, al tiempo que se indica el estado in situ mediante los indicadores LED del panel de control local (luz verde: normal; luz roja: alerta; luz amarilla: mantenimiento).