Integración · Integración

Conectar OPC UA a Node-RED

ProductoNode-RED
CategoríaIntegración
Rol de OPC UACliente

Node-RED habla OPC UA mediante nodos de la comunidad y no como capacidad integrada, lo que lo hace excelente para prototipar un cliente en una tarde y arriesgado como colector de producción. Los dos problemas recurrentes son el manejo de certificados, que los nodos exponen solo parcialmente, y el runtime de un solo hilo, que las suscripciones de alta cadencia desbordarán.

Antes de empezar

  • Una instalación de Node-RED con un runtime de Node.js soportado, y permiso para instalar nodos de la paleta en ella. En una red OT ese permiso suele ser el verdadero bloqueo.
  • Un conjunto de nodos de cliente OPC UA instalado desde la paleta. Existen varios paquetes comunitarios en competencia con distintos nombres de nodo, distinta configuración y distinto estado de mantenimiento; elija uno y sea coherente en todos sus flujos.
  • Una URL de endpoint que funcione y una decisión clara sobre la seguridad. Si piensa trabajar firmado y cifrado, verifique que el paquete de nodos que ha elegido admite la política que ofrece el servidor antes de construir el flujo.
  • Algún sitio al que enviar los datos que no sea Node-RED. No tiene búfer duradero propio.

Cómo configurarlo

  1. Instale un único paquete de nodos OPC UA y quédese con élInstálelo desde el gestor de paletas y anote después el nombre y la versión del paquete en las notas del proyecto. Mezclar dos paquetes OPC UA en una misma instancia de Node-RED produce tipos de nodo duplicados y confusos y directorios de certificados en conflicto.
  2. Demuestre primero el endpoint con seguridad NoneConfigure el nodo cliente con la URL del endpoint y sin seguridad, y lea un único nodo conocido. Esto separa los problemas de red y de endpoint de los problemas de certificados, y lleva un minuto.
  3. Haga el trabajo de certificados de forma explícitaLocalice dónde guarda su paquete de node el certificado de cliente y las carpetas de confianza y de rechazados en disco, y complete después el intercambio en ambos sentidos: el servidor debe confiar en el certificado del cliente Node-RED, y el cliente debe confiar en el certificado del servidor. Este es el paso que convierte una demo en algo que sobrevive a una revisión de seguridad.
  4. Direccione los nodos por URI de espacio de nombres cuando el paquete lo permitaLa mayoría de los nodos de la comunidad aceptan una cadena NodeId con un índice de espacio de nombres literal, a menudo transportado en el topic del mensaje. Si el paquete admite la resolución por URI de espacio de nombres, úsela. Si no, lea el NamespaceArray en un nodo de función al inicio del flujo y construya a partir de ahí las cadenas NodeId, en lugar de pegar índices en cada nodo.
  5. Suscríbase en lugar de sondear, y limite la tasa antes de nada aguas abajoUse el nodo de suscripción o de escucha del paquete con un intervalo de publicación ajustado a lo que necesite el consumidor. Después coloque un limitador de tasa o un nodo de agregación entre la suscripción y cualquier nodo que haga trabajo real, porque cada mensaje se ejecuta en el mismo bucle de eventos que el resto de sus flujos.
  6. Trate la reconexión como un caso de primera claseConecte la salida de estado del nodo cliente a algo que registre y alerte. Pruébelo bloqueando el endpoint en el cortafuegos y observando si el flujo se recupera solo o necesita un nuevo despliegue, porque la respuesta varía según el paquete y la versión.
  7. Saque los datos a almacenamiento persistente de inmediatoEnvíe los mensajes directamente a un broker MQTT, a una base de datos de series temporales o a un fichero, y deje las transformaciones para después de ese salto. Node-RED se reinicia en cada despliegue, y todo lo que en ese momento solo esté en el contexto de flujo se pierde.

Qué aspecto tiene el espacio de direcciones

Node-RED no construye ningún modelo. Cada mensaje transporta un valor, o un lote pequeño, con lo que el paquete de nodos haya decidido exponer del DataValue: normalmente el valor en sí, a veces el StatusCode y las marcas de tiempo, y a menudo no la información de tipo. La estructura del espacio de direcciones es algo que se redescubre en cada flujo con un nodo de exploración, y no se conserva. Eso es aceptable para prototipos y para trabajo de pegamento, pero significa que la semántica de sus datos vive en la disposición del flujo y en los nombres de los nodos, que no son consultables, no están versionados por defecto y no son portables a la máquina siguiente. Si el mismo mapeo se va a usar dos veces, genere la lista de NodeId a partir de una exploración y consérvela como un fichero que lea el flujo.

Las trampas

  • Los nodos de la comunidad no son uniformes en calidad ni en mantenimiento. Los nombres de nodo, los formatos de mensaje y la disposición de los directorios de certificados varían entre paquetes y entre versiones de un mismo paquete, así que registre contra qué paquete y qué versión se construyó un flujo.
  • Un índice de espacio de nombres literal pegado en cada nodo es el modo de fallo estándar de Node-RED. Tras una carga del programa del PLC todo el flujo devuelve BadNodeIdUnknown a la vez, y no hay un único sitio donde arreglarlo.
  • La gestión de certificados es la parte más débil de la mayoría de paquetes, y por eso tantos colectores Node-RED en producción funcionan en silencio con seguridad None. Esa es una decisión que alguien debería tomar conscientemente, no un valor por defecto heredado.
  • Node-RED es monohilo. Una suscripción con un intervalo de publicación de 50 ms sobre unos cientos de ítems dejará sin recursos al bucle de eventos y hará que el propio editor no responda, y el síntoma parece un problema de red.
  • Un despliegue reinicia los flujos, lo que tira sesiones y suscripciones. Desplegar un cambio pequeño de cuadro de mando interrumpe la captura, así que una instancia de Node-RED que capture datos no debería ser también la instancia que la gente edita durante un turno.
  • No hay store-and-forward. Si el destino aguas abajo no está disponible, los mensajes sencillamente se pierden salvo que usted haya construido un búfer.
  • Los límites de sesión del lado servidor se consumen por cada nodo cliente, y un flujo con varios nodos cliente contra un mismo servidor OPC UA embebido en un PLC puede agotarlos.

Cómo sacarle datos de OEE

Node-RED es un buen sitio para explorar lo que expone una máquina y un mal sitio para calcular el OEE. Puede leer una variable de estado, un contador y un código de motivo y reenviarlos, lo que resulta realmente útil para una prueba de concepto o para una máquina a la que no llega nada más. Lo que no dará es la fiabilidad que necesita el cálculo: sin búfer persistente, con la recogida interrumpida en cada despliegue y con una temporización que depende de un bucle de eventos compartido con todo lo demás de la instancia. Si un colector Node-RED va a producción, limítelo a una sola tarea, lleve los valores a un broker o a una base de datos de inmediato conservando intactas las marcas de tiempo del servidor, y calcule disponibilidad, rendimiento y calidad aguas abajo, donde un hueco es visible y reprocesable. El tiempo de producción planificado, los calendarios de turnos y los tiempos de ciclo estándar no están en la máquina y no deben codificarse de forma fija en un flujo.

Verifique esto antes de confiar en ello:Qué paquete OPC UA de la comunidad se mantiene actualmente, qué tipos de nodo y formatos de mensaje ofrece, qué políticas de seguridad soporta y dónde guarda sus almacenes de certificados cambia con el paquete y con el propio Node-RED, y ninguna página de terceros, incluida esta, es una fuente fiable para ello. Consulte la documentación actual y el gestor de incidencias del propio paquete para la versión que instale, y confirme las versiones de Node.js soportadas antes de desplegar en un host de OT.

Última verificación el 7 de septiembre de 2026 frente a OPC UA 1.05.07. OPC UA Connect es un recurso educativo y no está afiliado a la OPC Foundation.

Descarga gratuita
OPC UA Machine Data → OEE Mapping Kit
A qué nodos suscribirse, cómo se convierten en Disponibilidad, Rendimiento y Calidad, y qué especificación complementaria ya le da la respuesta, para que deje de inventar tags.
Consiga el kit de mapeo gratis →
Gratis, sin curso, sin registro