Índice
Introducción
En artículos anteriores hemos visto por separado dos tecnologías muy potentes de WinCC Unified: los Custom Web Controls (CWC) y la interfaz Open Pipe. Hoy vamos a ver cómo combinarlas junto con una aplicación Node.js para conseguir algo realmente práctico: exportar los datos almacenados en la base de datos SQLite de WinCC Unified hacia SQL Server, con una visualización personalizada del proceso directamente en el Runtime del operador.
El resultado es una arquitectura de integración real donde la capa de visualización (el CWC integrado en el Runtime de WinCC Unified), la capa de comunicación (Open Pipe) y la capa de integración de datos (Node.js exportando de SQLite a SQL Server) trabajan juntas de forma coordinada.
¿Qué es un Custom Web Control (CWC)?
Un Custom Web Control es un control personalizado basado en tecnologías web estándar (HTML5, CSS3 y JavaScript) que se integra en el editor gráfico de TIA Portal y se ejecuta dentro del Runtime de WinCC Unified.
Aparece en el panel "My Controls" del Toolbox de TIA Portal y se puede arrastrar a cualquier pantalla como si fuera un control nativo. Su gran ventaja es que el desarrollador tiene control total sobre su apariencia y comportamiento, pudiendo crear dashboards, gráficos, controles industriales, juegos demostrativos… cualquier cosa que sea posible con HTML/JS.
- Se desarrolla con un editor web externo (VS Code, WebStorm, etc.)
- Se empaqueta y se instala en TIA Portal como un archivo
.zip - Expone propiedades enlazables a tags de WinCC Unified mediante la API de scripting
- Se comunica con el Runtime a través de eventos y
window.postMessage/ API de WinCC
Para más detalle sobre el desarrollo de CWC, consulta el artículo: WinCC Unified Custom Web Controls.
¿Qué es Open Pipe?
Open Pipe es una interfaz basada en named pipes de Windows que permite conectar aplicaciones externas al Runtime de WinCC Unified. La comunicación se realiza a través del pipe de nombre \\.\pipe\HmiRuntime enviando y recibiendo mensajes en formato JSON.
Con Open Pipe es posible, entre otras operaciones:
- Leer y escribir el valor de tags del Runtime
- Suscribirse a cambios de valor de tags
- Suscribirse y gestionar alarmas
- Ejecutar acciones de script del Runtime
Puede implementarse en cualquier lenguaje que soporte named pipes: Node.js, Python, C#, PowerShell, etc.
Para más detalle consulta el artículo: WinCC Unified Open Pipe.
La integración: CWC + Open Pipe + Node.js
La idea del proyecto es sencilla pero muy potente. El elemento clave es una aplicación Node.js que actúa como puente entre la base de datos de proceso y el Runtime de WinCC Unified:
- WinCC Unified almacena los registros de proceso en su base de datos SQLite local.
- La aplicación Node.js lee esos registros de SQLite y los exporta a SQL Server, permitiendo su análisis, histórico o integración con sistemas MES/ERP.
- Al mismo tiempo, la aplicación Node.js se comunica con el Runtime de WinCC Unified a través de Open Pipe (named pipe
\\.\pipe\HmiRuntime), escribiendo tags con los resultados o el estado de la exportación. - El Custom Web Control (CWC), integrado en la pantalla del operador, refleja en tiempo real el estado de la transferencia de datos mostrando una interfaz web personalizada.
El resultado es una arquitectura de integración real: SQLite → Node.js → SQL Server, con visualización en tiempo real a través de CWC + Open Pipe en WinCC Unified.
Demo — CWC con Open Pipe
En el vídeo vemos la integración completa en acción: la aplicación Node.js exportando los datos de la base de datos SQLite de WinCC Unified hacia SQL Server, mientras el CWC muestra el estado de la operación en tiempo real dentro del Runtime.
El flujo demostrado es:
- La aplicación Node.js lee registros de la base de datos SQLite de WinCC Unified
- Los datos se transfieren y escriben en una base de datos SQL Server
- A través de Open Pipe, la aplicación actualiza tags del Runtime con el estado de la exportación
- El CWC refleja ese estado en su interfaz HTML/JS en la pantalla del operador