arXiv:2606.23870cs.PLcs.CL2026-06

首个支持三种主流PLC编程格式的开源形式化验证框架,实现无界安全证明。

ESBMC-PLC+: A Unified IEC 61131-3 Formal Verification Framework as a PLCverif Successor

  • 基于ESBMC后端,通过MATIEC编译器支持结构化文本(ST/SCL)输入
  • 首次将定时器/计数器等函数块状态建模为持久扫描周期变量,支持无界验证
  • 在8个基准程序上验证,速度比nuXmv快400至2000倍,覆盖所有IEC 61131-3格式

PLCverif是目前最成熟的开源可编程逻辑控制器(PLC)形式化验证平台,由欧洲核子研究中心开发,自2019年起投入生产使用。然而其存在两大根本局限:不支持主流的梯形图(LD)程序,且依赖CBMC作为主要后端,仅支持有界证明。作者已明确指出应以ESBMC作为改进后端。先前工作构建了ESBMC-PLC(文本式LD前端,支持k-归纳)和ESBMC-GraphPLC(图形化PLCopen XML支持),虽覆盖了梯形图并实现无界证明,但无法验证结构化文本(ST),且图形化梯形图中的定时器/计数器功能块仍不可验证。本文提出ESBMC-PLC+,一个统一框架,填补这两项空白:(1) 通过MATIEC IEC 61131-3编译器实现ST/SCL前端,将编译后的C代码送入ESBMC,并引入非确定性输入建模与YAML属性注入;(2) 为图形化梯形图定义函数块状态语义,扩展深度优先搜索解析器,将TON/TOF/TP定时器、CTU/CTD计数器及R_TRIG/F_TRIG边沿触发器建模为全局跳转中间表示(GOTO IR)中的持久扫描周期状态变量。ESBMC-PLC+是首个通过单一ESBMC后端支持全部三种主要IEC 61131-3输入格式的开源验证框架,支持无界安全证明。与PLCverif相比,其输入覆盖范围相当,但提供更强保证;在包含最多8个整数定时器的8个基准程序上的实验表明,其性能优于nuXmv BDD后端,速度快400至2000倍,且能在nuXmv BDD超时120秒时完成证明。

原文摘要 · Abstract (English)

PLCverif is the most mature open-source platform for PLC formal verification, developed at CERN and in production use since 2019. Yet it has two fundamental limitations: no support for Ladder Diagram (LD) programs, the dominant PLC notation, and reliance on CBMC as its primary backend, which restricts verification to bounded proofs. The PLCverif authors themselves identified ESBMC as the appropriate backend improvement. Prior work established ESBMC-PLC (a textual LD frontend with k-induction) and ESBMC-GraphPLC (graphical PLCopen XML support); together, they cover LD with unbounded proofs but not Structured Text (ST), and graphical LD with timer/counter function blocks remains unverifiable. This paper presents ESBMC-PLC+, a unified framework that closes both gaps: (1) an ST/SCL frontend via the MATIEC IEC 61131-3 compiler, routing C-compiled ST to ESBMC with nondeterministic input modeling and YAML property injection; (2) function block state semantics for graphical LD, extending the DFS resolver to model TON/TOF/TP timers, CTU/CTD counters, and R_TRIG/F_TRIG edge triggers as persistent scan-cycle state variables in the GOTO IR. ESBMC-PLC+ is the first open-source PLC verification framework to support all three major IEC 61131-3 input formats via a single ESBMC backend, enabling k-induction-unbounded safety proofs. A feature comparison with PLCverif and experimental evaluation on 8 benchmark programs, including programs with up to 8 integer timers, shows that ESBMC-PLC+ matches PLCverif's input coverage while providing stronger guarantees. Against nuXmv's BDD backend, ESBMC-PLC+ is 400-2,000x faster on timer programs and completes proofs where nuXmv BDD times out at 120s.

形式化验证PLCIEC 61131-3ESBMC

Thank you to arXiv for use of its open access interoperability. PaperDance 不是 arXiv 官方产品;中文卡片由大模型生成,请以原文为准。