← 最新论文
💻 computer science

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

本文介绍了 ESBMC-PLC+,这是一个统一的开源框架,它扩展了 ESBMC 后端以支持所有主要的 IEC 61131-3 语言(包括梯形图和结构化文本)以及无界验证,从而克服了其前身 PLCverif 在输入格式上的限制和有界证明的约束,并显著优于 nuXmv 在验证重定时器程序方面的表现。

原作者: Pierre Dantas, Lucas Cordeiro, Waldir Junior

发布于 2026-06-24
📖 1 分钟阅读☕ 轻松阅读

原作者: Pierre Dantas, Lucas Cordeiro, Waldir Junior

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,可编程逻辑控制器 (PLC) 是工厂机器的大脑。它是一种坚固的工业计算机,负责指挥机器人、阀门和指示灯何时移动、停止或改变颜色。这些机器运行在一个严格的、循环往复的“扫描周期”之上,每秒钟都会检查传感器并做出决策数千次。由于这些机器控制着诸如核电站或火车信号之类的关键设施,代码中的哪怕一个微小错误都可能导致灾难性的后果。

形式化验证 (Formal verification) 就像是一个超级聪明的数学校对员,它会检查机器可能遇到的每一种可能的场景,以确保它永远不会崩溃或发生危险行为。

多年来,这项工作的最佳开源工具被称为 PLCverif。你可以把 PLCverif 想象成一名技术精湛的机械师,他非常擅长修理汽车(基于文本的代码),但拒绝查看摩托车(梯形图)的引擎内部,或者没有合适的工具来证明引擎能永远运行而不至于过热(无界证明)。

这篇论文介绍了一个全新的、升级版的“超级机械师”——ESBMC-PLC+,旨在取代并改进 PLCverif。以下是它的功能说明,通过简单的语言进行解释:

1. 精通所有语言(统一框架)

PLC 程序员主要使用三种语言:

  • 梯形图 (Ladder Diagram, LD): 看起来像带有横梁和导轨的电气电路图。这是工厂中最流行的语言(类似于工业界的“英语”)。
  • 结构化文本 (Structured Text, ST): 看起来像标准的计算机代码(类似于 Pascal 或 C)。
  • 图形化梯形图 (Graphical LD): 梯形图的可视化版本。

问题所在: 旧工具(PLCverif)只能读取“结构化文本”语言。如果工程师使用的是梯形图,他们必须手动将其重写为文本,这既缓慢又容易出错。此外,如果梯形图中包含复杂的“功能块”(如定时器或计数器),旧工具完全无法处理它们。

解决方案: ESBSP-PLC+ 是一个通用翻译官。它能够原生读取所有三种语言。

  • 对于结构化文本 (ST),它使用一个受信任的开源编译器 (MATIEC) 将代码转换为验证引擎可以理解的格式。
  • 对于梯形图 (LD),它拥有一个新的“解码器”,现在可以理解以前被忽略的复杂定时器和计数器。

2. “永远”的保证(无界证明)

想象你在测试一座桥梁。

  • 有界检查(旧方法): 你让一辆卡车在桥上行驶 100 次。如果它撑住了,你就说:“它大概是安全的。” 但你不知道第 101 次会发生什么,或者在 1,000 年后桥是否会坍塌。这就是旧工具的主要引擎 (CBMC) 所做的事情。
  • 无界证明(新方法): ESBMC-PLC+ 使用了一种称为 k-归纳法 (k-induction) 的技术。它不再仅仅检查 100 次,而是利用数学手段来证明:如果 桥梁在前几秒内能够承受住,那么它将永远保持稳固。它保证了无论机器运行多久,都不会发生故障。

3. 速度之王(SMT 与 BDD)

论文将 ESBMC-PLC+ 与旧工具的“无界”引擎 (nuXmv) 进行了对比,后者使用的是一种称为 BDD(二元决策图)的方法。

  • 类比: 想象你有一个巨大的图书馆(代表机器的所有可能状态)。
    • 旧工具 (BDD) 试图逐一阅读书架上的每一本书。如果图书馆非常庞大(因为机器有很多定时器或计数器),它就会不堪重负并停止工作(超时)。
    • ESBMC-PLC+ (SMT) 使用了一个神奇的索引。它不再逐本阅读,而是请求一位超级智能的图书管理员(SMT 求解器)来一次性检查整个图书馆的逻辑。
  • 结果: 在处理带有定时器的程序时,ESBMC-PLC+ 比旧工具快了 400 到 2,000 倍。在某些情况下,旧工具在 2 分钟后就放弃了,而 ESBMC-PLC+ 在不到一秒钟内就完成了证明。

4. 它究竟修复了什么

论文强调了它填补的两个具体“空白”:

  1. 缺失的文本: 它增加了对结构化文本 (ST) 程序的支持,而旧工具对标准 IEC 代码的处理能力很差甚至完全不支持。
  2. “幽灵”定时器: 在可视化的梯形图中,存在一些“功能块”(例如等待 5 秒后才开启灯光的定时器)。旧工具忽略了这些功能块,相当于假装它们不存在。这导致了“空虚 (vacuous)”的结果——即工具之所以说“安全!”,仅仅是因为它根本没有观察到那些危险的部分。ESBMC-PLC+ 现在可以正确地对这些定时器进行建模,确保安全检查是真实的,而不是一种“假象”。

总结

ESBMC-PLC+ 是一个全新的开源工具,它充当了工业机器代码的通用翻译官。它能听懂工程师使用的所有主要语言,能够处理带有定时器和计数器的复杂可视化图表,并使用更快速、更智能的数学引擎来证明机器将永远安全,而不仅仅是经过短期测试。它是旨在成为前任行业标准 PLCverif 的直接且更优越的继任者。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →