Graph-ESBMC-PLC: Formal Verification of Graphical PLCopen XML Ladder Diagram Programs Using SMT-Based Model Checking
Summary
Graph-ESBMC-PLC extends the ESBMC-PLC formal verifier to support graphical PLCopen XML Ladder Diagram (LD) programs, addressing a critical gap where previous versions produced vacuous verification results. This extension introduces a Depth-First Search (DFS)-based resolver that accurately interprets the localId/refLocalId connection graph of graphical LD. It extracts rung paths as Boolean conjunctions of contacts and implements a three-tier I/O inference scheme for variable classification. A crucial design ensures SET coils are processed before RESET coils, aligning with IEC 61131-3 scan-cycle semantics. The implementation involved adding 274 lines of C++ code without modifying the existing ESBMC backend. Validation on 3 graphical LD programs from CONTROLLINO/OpenPLC Editor exports demonstrated successful generation of full GOTO Intermediate Representation (IR), with all programs verifying SAFE at k=2 in under 70 ms. The system also maintained zero regressions across 11 textual LD benchmarks.
Key takeaway
For automation engineers developing safety-critical systems with graphical Ladder Diagram programs, Graph-ESBMC-PLC provides a robust formal verification solution. You can now confidently use exports from tools like CONTROLLINO or OpenPLC Editor, obtaining sound safety proofs in under a second, where previous methods failed. Be aware that programs heavily relying on timer or trigger function blocks may still require future resolver extensions for full semantic preservation.
Key insights
Graph-ESBMC-PLC enables sound formal verification of graphical PLCopen XML Ladder Diagrams by resolving their connection graphs.
Principles
- Graphical LD logic is a directed graph of connections.
- Coil execution order is critical for latching semantics.
- I/O classification ensures sound verification.
Method
A DFS-based resolver traverses the localId/refLocalId graph from leftPowerRail to coils, extracting rung paths. It orders coils by rightPowerRail sequence and applies three-tier I/O inference.
In practice
- Use DFS to reconstruct logic from connection graphs.
- Prioritize SET coils over RESET coils in scan cycle.
- Classify I/O variables for accurate model checking.
Topics
- PLCopen XML
- Ladder Diagram
- Formal Verification
- SMT Model Checking
- ESBMC
- Depth-First Search
Code references
Best for: AI Scientist, Research Scientist, Automation Engineer
Related on AIssential
Editorial summary, takeaway, and curation by AIssential. Original article published by cs.CL updates on arXiv.org.