← Últimos artículos
💬 NLP

ESBMC-GraphPLC: Formal Verification of Graphical PLCopen XML Ladder Diagram Programs Using SMT-Based Model Checking

Este artículo presenta ESBMC-GraphPLC, una herramienta de verificación formal que resuelve la brecha en el manejo de diagramas de escalera XML de tipo PLCopen mediante la implementación de un resolvedor basado en DFS para convertir la lógica de peldaños basada en grafos en una representación intermedia GOTO válida para la comprobación de modelos basada en SMT, permitiendo así la verificación correcta de programas provenientes de editores como CONTROLLINO y OpenPLC Editor sin afectar el soporte existente para el formato textual.

Autores originales: Pierre Dantas, Lucas Cordeiro, Waldir Junior

Publicado 2026-06-19
📖 5 min de lectura🧠 Análisis profundo

Autores originales: Pierre Dantas, Lucas Cordeiro, Waldir Junior

Artículo original bajo licencia CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo

Imagina un Controlador Lógico Programable (PLC) como el cerebro de una máquina de fábrica, como una bomba de agua o un semáforo. Para decirle a este cerebro qué hacer, los ingenieros dibujan Diagramas de Escalera. Estos parecen escaleras eléctricas con peldaños, donde cada peldaño es una regla: "Si el tanque de agua está lleno, apaga la bomba".

Durante mucho tiempo, hubo dos formas de guardar estos dibujos de escalera en una computadora:

  1. La Lista de Texto: Una lista simple, paso a paso, de instrucciones (como una receta).
  2. El Mapa Gráfico: Un mapa visual donde las piezas están conectadas por cables invisibles, identificados por números de ID (como un mapa de metro donde las estaciones están conectadas por líneas).

El Problema: El Programa "Fantasma"

Los investigadores tenían una herramienta poderosa llamada ESBMC-PLC que podía verificar si estos programas tenían errores de seguridad. Funcionaba perfectamente con el formato de Lista de Texto.

Sin embargo, cuando le suministraron el formato de Mapa Gráfico (que es lo que el software moderno como CONTROLLINO y OpenPLC realmente utiliza), la herramienta se confundió. Miraba el mapa, veía los números de ID y los cables, pero no podía entender cómo se conectaban.

Como no podía leer el mapa, asumía que no estaba pasando nada. Pensaba que cada interruptor estaba apagado y que cada bomba estaba detenida.

  • El Resultado: La herramienta decía: "¡Todo es seguro!"
  • La Trampa: Estaba mintiendo. No era segura porque la lógica faltaba; era "segura" porque la herramienta estaba mirando una habitación vacía. Esto se llama verificación vacua — es como decir que una puerta cerrada es segura porque olvidaste revisar si hay una ventana abierta.

La Solución: ESBMC-GraphPLC

Los autores construyeron un nuevo módulo llamado ESBMC-GraphPLC para solucionar esto. Piensa en esto como contratar a un detective para que camine a través del mapa gráfico y lo traduzca de nuevo a un lenguaje que el verificador de seguridad entienda.

Aquí es cómo trabaja su "detective", usando analogías simples:

1. El Detective con una Linterna (Algoritmo DFS)
La herramienta utiliza un método llamado Búsqueda en Profundidad (DFS). Imagina a un detective caminando a través de un laberinto de cables. Comienza en el lado izquierdo de la escalera (la fuente de energía) y sigue cada posible camino hacia el lado derecho.

  • Rastrea cada conexión de cable.
  • Anota cada interruptor (contacto) que pasa.
  • Se detiene cuando llega al dispositivo (la bobina/bomba).
  • Al hacer esto, reconstruye la lógica exacta del peldaño de la escalera, convirtiendo el mapa visual de nuevo en una regla clara de "Si-Entonces".

2. El Agente de Tránsito (El orden importa)
En estos diagramas, a veces tienes un interruptor de "Set" (encender) y un interruptor de "Reset" (apagar) para el mismo dispositivo. ¡El orden importa!

  • Si el "Reset" ocurre después del "Set" en el mismo milisegundo, el dispositivo permanece apagado.
  • Si el "Set" ocurre después del "Reset", el dispositivo permanece encendido.
    La nueva herramienta mira una lista específica en el archivo (la secuencia rightPowerRail) para ver qué interruptor viene primero, actuando como un agente de tránsito que asegura que el coche "Set" pase antes que el coche "Reset". Esto garantiza que la lógica coincida con cómo se comportan las máquinas reales.

3. El Juego de Adivinanza (Inferencia de E/S)
A veces el mapa no dice cuáles cables son "Entradas" (sensores) y cuáles son "Salidas" (motores). La herramienta utiliza un juego de adivinación de tres pasos:

  • Paso 1: Buscar etiquetas de dirección oficiales (como %IX para entradas). Si se encuentran, es exacto.
  • Paso 2: Si no hay etiquetas, observar el comportamiento. Si un cable es solo usado como un interruptor, es probablemente una entrada. Si es solo usado para encender algo, es probablemente una salida.
  • Paso 3: Si aún no está seguro, tratarlo como una "variable misteriosa" que podría ser cualquier cosa. Esta es una apuesta segura porque verifica todas las posibilidades, asegurando que nada se pase por alto.

Los Resultados

El equipo probó este nuevo detective en tres programas del mundo real (bombas de agua, luces de escalera y luces de atenuación).

  • Antes: La herramienta veía una habitación vacía y decía "Seguro" (incorrectamente).
  • Después: La herramienta vio la lógica completa, revisó todas las combinaciones posibles de entradas de sensores y confirmó que los programas eran realmente seguros.
  • Velocidad: Lo hizo en menos de 70 milisegundos (más rápido que un parpadeo humano).
  • Seguridad: No rompió la herramienta antigua. Los 11 programas que ya funcionaban con listas de texto funcionaron perfectamente.

Lo que aún no puede hacer (Las Limitaciones)

El artículo es honesto sobre con qué todavía tiene dificultades el detective:

  • Temporizadores Complejos: Si un peldaño involucra un temporizador (por ejemplo, "Esperar 5 segundos, luego encender"), la herramienta actualmente ignora la parte de "esperar" y la trata como una suposición aleatoria. Es seguro, pero no entiende el tiempo.
  • Mapas Anidados: Algunos diagramas complejos esconden mapas más pequeños dentro de otras secciones (como acciones dentro de un paso). El detective a veces pierde de vista estas habitaciones ocultas.

Resumen

En resumen, los autores construyeron un traductor que permite al software de verificación de seguridad finalmente "leer" los diagramas de escalera visuales utilizados por el software industrial moderno. Convirtieron una herramienta que ciegamente decía "Todo está bien" en una herramienta que realmente entiende la lógica y puede probar que la máquina no se romperá ni hará daño a nadie.

¿Ahogado en artículos de tu campo?

Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.

Probar Digest →