Ir al contenido
Todos los proyectos

Caso de estudio 01 / 22Ingeniería de datos

Cálculos de planta como nodos de n8n reutilizables, verificados 1:1

Rehice el puntaje de sensores y el modelo de fugas de una planta como nodos de n8n probados, iguales 1:1 al original, y los mejoré al lado.

Stack

  • n8n
  • TypeScript
  • Node.js
  • OPC UA
  • Three.js
  • InfluxDB
  • MongoDB

01 · Cómo funciona

  • HoyaModificado en este trabajo
  • Flujo de datos

Qué hace

Una app construida sobre n8n, sin tocar su código, donde los cálculos de una planta son nodos que un ingeniero encadena en el editor: mi nodo de solo lectura lee un servidor OPC UA industrial y entrega una salida por señal, y los nodos de cálculo y de interfaz convierten esas señales en puntajes, alarmas y páginas. Rehice nodo por nodo dos cálculos existentes y comprobé cada uno contra su original, un puntaje de calidad de sensores y un modelo de detección de fugas de 57 nodos de una aplicación de escritorio, y después construí un modelo mejorado al lado de la copia 1:1, un banco de pruebas que califica a los dos con fugas conocidas y un plan para correr los mismos nodos en memoria y probar mil casos por hora.

7 conexiones· elige un componente para ver su recorrido
  1. Servidor OPC UA a Nodo n8n de solo lectura: consultado, nunca escrito
  2. Nodo n8n de solo lectura a Flujos 1:1: un ítem por tag
  3. Nodo n8n de solo lectura a Mejorado, en carriles: las mismas lecturas
  4. Flujos 1:1 a Nodo de comparación: la referencia
  5. Mejorado, en carriles a Nodo de comparación: el candidato
  6. Flujos 1:1 a Páginas hechas con nodos: puntajes y alarmas
  7. Nodo de comparación a Páginas hechas con nodos: dónde se separan y por qué

02Resultados

  • R01Cuanto más alto, mejor

    Pruebas automáticas, aplicación de escritorio y nodos n8n

    Antes 1, después 1,278, 1,278× mayor. Cuanto más alto, mejor.
    Antes
    Después
  • R02Cuanto más bajo, mejor

    CPU por tubería, % de un núcleo (máquinas distintas)

    Antes 163%, después 2.1%, 78× menor. Cuanto más bajo, mejor.
    Antes
    Después
  • R03Cuanto más alto, mejor

    Nota media en 48 corridas del banco, copia 1:1 y mejorado

    Antes 75.4, después 85, +13%. Cuanto más alto, mejor.
    Antes
    Después

Qué logró

  • Puntaje de calidad de sensores: un grafo escrito a mano en un colector → un flujo de n8n de 13 nodos con el mismo puntaje en 241 de 242 sensores durante una hora grabada, y 0 pedidos nuevos a la aplicación existente
  • Modelo de detección de fugas: solo dentro de una aplicación de escritorio → 57 de 57 nodos en n8n, con el mismo estado de fuga en cada minuto grabado, 0 falsas alarmas y el 99.2 % de las filas de alarmas iguales
  • Prueba de la copia: 1 prueba automática → 1278, más un oráculo que corre la propia biblioteca del original al lado de los nodos: 10 039 de 10 039 casos iguales bit a bit
Leer más
  • CPU por tubería: 163 % de un núcleo para la aplicación de escritorio → 2.1 % para su copia 1:1 y 7.4 % para el modelo mejorado, medidos en máquinas distintas
  • Páginas: pantallas escritas a mano → páginas armadas con 7 nodos de interfaz en el mismo flujo, desde una página de monitoreo hasta vistas 3D en vivo
  • Cambiar el modelo: a base de opiniones → 12 de 25 cambios propuestos se quedaron tras una revisión contra el código y los datos; en 48 corridas del banco el modelo mejorado sacó 85.0 frente al 75.4 de la copia

El desafío

La lógica vivía en una aplicación de escritorio y en un colector escrito a mano: cambiar un umbral significaba código, una compilación y una instalación por servidor, y la aplicación ya respondía 61 pedidos por minuto con un presupuesto de 60, así que nada nuevo podía consultarla. Una copia solo vale si es exacta, y el original tenía una sola prueba automática.

Leer más

Sus rarezas había que encontrarlas y copiarlas a propósito, 27 solo en el puntaje de sensores, anotadas una por una, para que la copia sirviera de referencia. Las señales de desarrollo casi no se movían: en la hora grabada solo cambiaron los sensores de un sistema, así que la igualdad se tuvo que mostrar con grabaciones y corriendo la propia biblioteca del original al lado de los nodos, no con el comportamiento en vivo.

Qué aprendí

Primero copiar, después mejorar. Rehacer la lógica 1:1 antes de cambiarla le dio a cada cambio posterior una referencia: el modelo mejorado corre al lado de la copia sobre las mismas lecturas, y un nodo que compara las dos ramas muestra dónde y por qué se separan. Copiar con fidelidad significó copiar a propósito los errores del original y anotar cada uno, así que corregir uno pasó a ser una decisión con un número. n8n se encargó de la fontanería, desde los disparadores y las listas de ítems hasta el editor y su historial de ejecuciones, pero a unos 120 ms por ejecución es demasiado lento para pruebas en masa: el siguiente paso corre los mismos nodos en memoria, idénticos byte a byte o no se usan.

Stack

  • n8n
  • TypeScript
  • Node.js
  • OPC UA
  • Three.js
  • InfluxDB
  • MongoDB
Portada de Cálculos de planta como nodos de n8n reutilizables, verificados 1:1Portada de Cálculos de planta como nodos de n8n reutilizables, verificados 1:1
Un flujo en el editor de n8n, Cálculos de planta como nodos de n8n reutilizables, verificados 1:1
Un flujo en el editor de n8n
Todas las piezas del trabajo, en una lista, Cálculos de planta como nodos de n8n reutilizables, verificados 1:1
Todas las piezas del trabajo, en una lista