Skip to main content
QUICK REVIEW

[論文レビュー] PLCverif: Status of a Formal Verification Tool for Programmable Logic Controller

Jean-Charles Tournier, Fernández Adiego, Borja|arXiv (Cornell University)|Jan 1, 2022
Smart Grid Security and Resilience被引用数 4
ひとこと要約

PLCverif は、プログラマブルロジックコントローラー(PLC)向けのオープンソース形式検証ツールであり、PLCコードを形式的モデルに自動変換し、CBMC や Theta といったツールを用いたモデルチェックを可能にする。アサーションおよびパターンベースの要件仕様による使いやすさの向上、シーメンスおよび部分的なシュナイダーエレクトリックの複数のPLC言語のサポート、CFAの削減、抽象化、および反例分析によるパフォーマンス向上により、安全が求められる産業制御システムの検証を大幅に支援する。

ABSTRACT

Programmable Logic Controllers (PLC) are widely used for industrial automation including safety systems at CERN. The incorrect behaviour of the PLC control system logic can cause significant financial losses by damage of property or the environment or even injuries in some cases, therefore ensuring their correct behaviour is essential. While testing has been for many years the traditional way of validating the PLC control system logic, CERN developed a model checking platform to go one step further and formally verify PLC logic. This platform, called PLCverif, first released internally for CERN usage in 2019, is now available to anyone since September 2020 via an open source licence. In this paper, we will first give an overview of the PLCverif platform capabilities before focusing on the improvements done since 2019 such as the larger support coverage of the Siemens PLC programming languages, the better support of the C Bounded Model Checker backend (CBMC) and the process of releasing PLCverif as an open-source software.

研究の動機と目的

  • 複雑なPLC論理の検証において、従来のテスト手法に限界があること、特に網羅的テストが現実的でない安全が求められるシステムの文脈でそれらの限界を克服すること。
  • PLC開発者にとって形式検証の障壁を下げるために、PLCコードを形式的モデルに自動変換すること。
  • モデルチェックにおける状態空間の爆発問題を、抽象化および最適化技術を用いて軽減すること。
  • アサーションや自然言語パターンによる要件仕様の簡素化、および実行可能な反例分析の提供により、使いやすさを向上させること。
  • 拡張性のあるアーキテクチャを備えたオープンソースソフトウェアとして PLCverif をリリースすることで、産業自動化分野における形式検証の広範な採用を促進すること。

提案手法

  • 構造化テキスト(SCL)、ラダー図(LAD)、機能ブロック図(FBD)でのPLCプログラムを、制御フローに基づく形式的中間表現である制御フローアトマトン(CFA)にパースする。
  • 要件仕様の2つの手法をサポートする:埋め込みアサーション(例://#ASSERT)と、時相論理への変換用のプレースホルダを備えたパターンベーステンプレート。
  • CFAの削減技術を適用してモデルを単純化し、状態空間を縮小することで、検証の可能性を向上させる。
  • 外部モデルチェッカー(CBMC、Theta、ESBMC)との統合により、時相論理的性質の形式的検証を実行する。
  • 入力の非決定的モデル化や関数抽象化といった抽象化戦略を実装し、大規模なPLCシステムの反復的検証を可能にする。
  • 反例分析を実装し、性質違反の原因となるコード領域を特定することで、デバッグ性を向上させる。

実験結果

リサーチクエスチョン

  • RQ1形式的検証が、形式手法に深く精通していない産業開発者にとっても利用可能になるように、PLCプログラムの形式的検証をどのように実現できるか?
  • RQ2状態空間の爆発問題を効果的に軽減しつつ、検証の整合性を保つためにどのような技術が有効か?
  • RQ3低レベルの論理ではなく、自然言語パターンやアノテーションを用いた要件仕様を、PLCエンジニアがどのように簡素化できるか?
  • RQ4現代のSMTベースのモデルチェッカーと統合し、抽象化、モデル削減を施すことによって、どのようなパフォーマンス向上が達成できるか?
  • RQ5モジュラー構造を持つ大規模なPLCアプリケーションに対して、反復的かつ構成的検証戦略を効果的に適用できるか?

主な発見

  • PLCverif は、シーメンスPLCプログラミング言語(SCL、LAD、FBD)を正常にサポートしており、シュナイダーエレクトリックPLCについても部分的なサポートを追加した。
  • 本プラットフォームは、MITライセンスの下でオープンソースソフトウェアとしてリリースされ、コミュニティの貢献と広範な産業分野への採用を可能にした。
  • Java 11 へのアップグレードおよび最新版の Theta モデルチェッカーとの統合により、互換性とパフォーマンスが向上した。
  • CFAの削減および抽象化技術により、検証時間と状態空間のサイズが顕著に削減され、かつては処理不能であったケースの検証が可能になった。
  • 反例分析により、関連するコードセグメントが明確に特定され、違反の根本原因に焦点を当てるためのデバッグ時間が短縮された。
  • ESBMC などのSMTベースのモデルチェッカーおよび反復的検証戦略に関する継続的な研究作業は、より大規模かつ複雑なPLCシステムへのスケーリングの可能性を示している。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。