Concepto: Entorno Web con IA para Lógicas de Relés de Protección

1. Problema y Necesidad

Los ingenieros de commissioning de relés de protección (alta y media tensión) programan y prueban lógicas (enclavamientos, disparos, permisos de cierre) directamente sobre el equipo físico (p.ej. SIPROTEC 5, ABB Relion, GE, SEL) usando el software del fabricante. No existe una plataforma universal que permita:

Brecha: La etapa más costosa en commissioning es descubrir interbloqueos mal diseñados o tiempos mal parametrizados una vez en sitio. Reducir reprocesos ahorra días de pruebas y desplazamientos.

2. Estado Actual del Mercado

Herramientas existentes parcialmente relacionadas:

No se observa una plataforma SaaS neutral que analice directamente la lógica visual y ofrezca simulación generativa + clasificación automática.

3. Visión de la Plataforma

Crear un entorno web donde el usuario sube una imagen (captura CFC) o exportación nativa y el sistema:

  1. Detecta cada bloque (AND, OR, XOR, NOT, Timer, Pickup/Dropoff, Counter, Set/Reset Latch).
  2. Aplica OCR y clasificación para obtener etiquetas (Binary Input 5, SF6 Alto P, Permiso de cierre).
  3. Genera un grafo dirigido con metadatos (tipo de nodo, parámetros: tiempo, umbral, etc.).
  4. Identifica naturaleza del símbolo: Entrada física, Salida física, Variable interna (firmware), Variable de usuario.
  5. Permite construir escenarios de simulación (estados iniciales, secuencias temporales, fallas).
  6. Ejecuta motor de evaluación determinista + comprobaciones de enclavamiento (reglas definidas).
  7. Entrega reporte de consistencia, redundancias, condiciones nunca alcanzables y sugerencias.
Valor diferencial: Usar IA para acelerar extracción + ofrecer analítica de calidad lógica (alcance de nodos, condiciones muertas, latencias acumuladas).

4. Arquitectura Propuesta (Alta Nivel)

Componentes Frontend

  • UI Upload (imagen / zip / XML export).
  • Canvas para render del grafo (D3.js / Cytoscape.js).
  • Panel de propiedades de nodo.
  • Editor de escenarios (timeline de estados).
  • Motor de simulación cliente (para pruebas rápidas) + validación servidor (autoridad).

Backend / Microservicios

  • Image Preprocessor (deskew, binarización, segmentación).
  • Detector de Shapes (OpenCV + modelo CNN ligero de iconos).
  • OCR & Label Normalizer (Tesseract + heurísticas domain-specific).
  • Graph Builder.
  • Classifier (Modelo que asigna tipo: entrada, salida, interna, usuario).
  • Simulation Engine (estado discreto, pasos de Δt, timers asíncronos).
  • Rules & Validation (enclavamientos esperados, invariantes).
  • Report Generator (PDF/JSON).

Flujo Resumido

{
  upload -> preprocess -> detect_nodes -> classify_nodes -> detect_connections ->
  build_graph -> infer_semantics -> simulate(scenarios) -> validation_report
}

5. Modelo de Datos (Conceptual)

Node: { id, type(enum: INPUT|OUTPUT|LOGIC|TIMER|COUNTER|LATCH|INTERNAL|USER_VAR), name, params{...}, position{ x,y }, connections{ in[], out[] } }

Edge: { id, from, to, signalProps{ polarity, group } }

Scenario: { id, description, initialStates{ nodeId: value }, events:[ { t(ms), nodeId, value } ] }

Result: { scenarioId, timeline:[ { t, states{ nodeId: value } } ], violations:[...] }

Violations ejemplos: condición de enclavamiento no satisfecha, disparo simultáneo conflictivo, timer sin activación, nodo muerto (never reached).

6. Flujo de IA Detallado

  1. Pre-Proceso: ruido → filtro bilateral; corrección de inclinación (Hough lines); contraste adaptativo.
  2. Segmentación: edge detection + contour grouping → crops de candidatos (íconos y textos).
  3. Clasificación de iconos: CNN pequeña (MobileNetV3) entrenada con dataset de puertas típicas (AND, OR, XOR, NOT, Timer, Counter, Latch Set/Reset, Pickup/Dropoff).
  4. OCR: Tesseract + whitelist de tokens (Binary, Input, SF6, Sec., Disparo, Permiso, etc.) para mejorar precisión.
  5. Normalización: reglas regex → "Binary Input 5" → type=INPUT, index=5.
  6. Grafo: detección de líneas/segmentos (skeletonization) y asociación de puertos (puntos de anclaje).
  7. Clasificación Semántica: Modelo (p.ej. LightGBM o transformer pequeño) que usa features (nombre, proximidad a icono, sufijo Ind#, DPCSO#) para etiquetado final INPUT/OUTPUT/USER_VAR/INTERNAL.
  8. Validación Básica: chequeo de aciclicidad en grafo lógico puro (timers introducen pseudo estados, pero no rompen DAG principal).

Expresión formal (pipeline):

Let I = input image
Clean(I) -> I'
DetectShapes(I') -> S
Classify(S) -> Nodes (set N)
DetectConnections(I', N) -> E (edges)
OCR(I', N) -> Labels L
Semantic(N, L) -> N'
Graph G = (N', E)
Simulate(G, Scenarios) -> Results R
Validate(G, R) -> Report

7. Motor de Simulación

Evaluación discreta con paso de tiempo Δt (ej. 10 ms). Timers acumulan tiempo mientras condición de pickup es verdadera:

timer.state:
  if condition==true: elapsed += Δt
  else: elapsed = 0
  output = (elapsed >= setpoint)

Enclavamientos: Conjunto de invariantes declarativas.

// Ejemplo pseudo-regla
rule "Permiso de cierre requiere SF6 OK y muelles cargados" {
  assert (Permiso_Cierre == 1) implies (SF6_Alto_P == 1 && Muelles_Descargados == 0)
}

Algoritmo de ejecución:

  1. Topological sort de nodos lógicos (ignorar ciclos provenientes de latches → tratarlos como nodos con memoria).
  2. Aplicar actualizaciones de eventos al inicio de cada t.
  3. Evaluar nodos puros (AND/OR/XOR/NOT).
  4. Actualizar timers/counters/latches.
  5. Registrar snapshot de estados.
  6. Chequear reglas de enclavamiento y acumular violaciones.

Complejidades: latencias no idénticas al firmware real; valores análogos (mediciones) simplificados a booleanos/umbrales.

8. Roadmap MVP (Iterativo)

  1. MVP 0: Upload imagen → extracción manual asistida (usuario valida bounding boxes).
  2. MVP 1: Detección automática de puertas básicas + OCR nominal (≥85% precisión).
  3. MVP 2: Construcción de grafo + simulación de booleanos + timers.
  4. MVP 3: Reglas de enclavamiento personalizadas + reporte de cobertura.
  5. MVP 4: API de importación desde export XML (DIGSI / PCM600) para eliminar dependencia de calidad de imagen.
  6. MVP 5: Analítica avanzada (condiciones inalcanzables, redundancias, tiempo mínimo de disparo).
  7. MVP 6: Multi-usuario, históricos, control de versiones, firma digital del reporte.

9. Modelo de Negocio y Monetización

Pricing Propuesto

  • Plan Profesional: suscripción mensual por asiento (ej. 200–400 €/mes).
  • Enterprise: licencias flotantes + despliegue on-prem (cumplimiento OT).
  • Pay-per-Report: token para análisis único (para pequeñas firmas).

Generadores de Valor

  • Reducción horas en sitio.
  • Menos errores de enclavamientos → evita re-trips.
  • Trazabilidad auditorías (ISO, reguladores).
  • Base de conocimiento reutilizable entre proyectos.

Diferenciación: Integración universal + IA de parsing + analítica de calidad lógica + motor neutro.

10. Riesgos y Mitigación

RiesgoImpactoMitigación
OCR bajo en capturas pobresErrores en la lógica generadaPipeline de revisión humana asistida; aceptar export XML
Variaciones de íconos entre fabricantesFalsos positivos en clasificaciónDataset incremental + transferencia de estilo
Responsabilidad por decisiones de protecciónRiesgo legalDisclaimer estricto; la herramienta no reemplaza pruebas en campo
Datos críticos (infraestructura)Compliance y seguridadEncriptación, segregación de tenants, opción on-prem
Escalabilidad de simulaciónLentitud con grafos grandesTopological caching + ejecución incremental Δt adaptativo

11. Prototipo Interactivo (Stub)

Sube una imagen (no se procesa realmente aquí). Se generan nodos ficticios para que veas la estructura. Reemplaza funciones stub* con llamadas a tu backend de IA.

Esta demo no envía datos; toda la lógica es local.

Nodos Detectados

IDNombreTipoParámetrosEstado

Escenario

Resultados

// Salida de simulación aparecerá aquí.

12. Ejemplo de JSON de Esquema

{
  "version": "0.1",
  "meta": { "source": "capture.png", "parsedAt": "2025-10-27T12:00:00Z" },
  "nodes": [
    { "id":"n1","name":"Binary Input 5","type":"INPUT","params":{} },
    { "id":"n2","name":"Timer10s","type":"TIMER","params":{"setpoint_ms":10000} },
    { "id":"n3","name":"Muelles Descargados","type":"OUTPUT","params":{} }
  ],
  "edges": [
    { "id":"e1","from":"n1","to":"n2" },
    { "id":"e2","from":"n2","to":"n3" }
  ],
  "rules": [
    { "id":"r1","expr":"Permiso_Cierre -> (SF6_Alto_P && !Muelles_Descargados)" }
  ]
}

13. Seguridad / Cumplimiento

Disclaimer: La plataforma NO sustituye pruebas funcionales finales en el equipo real ni libera al ingeniero de validar parámetros críticos de protección (tiempos, sensibilidad, curvas).

14. Roadmap Extendido (12 Meses)

  1. Mes 1-2: Dataset de iconos (≥2000 ejemplos), prototipo de OCR adaptado.
  2. Mes 3: Grapho completo + simulación booleana simple.
  3. Mes 4-5: Timers/counters avanzados, interfaz escenarios.
  4. Mes 6: Reglas declarativas + reporte PDF.
  5. Mes 7: Import directo XML DIGSI / PCM600.
  6. Mes 8: Analítica de cobertura lógica & nodos muertos.
  7. Mes 9: Multi-usuario + control de versiones + roles.
  8. Mes 10: API externa + SDK Python para integración CI.
  9. Mes 11: Seguridad reforzada, firma digital, on-prem pack.
  10. Mes 12: Optimización performance, internacionalización, comerciales.