Applying model checking to industrial-sized PLC programs

Borja Fernández Adiego, Dániel Darvas, Enrique Blanco Viñuela, Jean Charles Tournier, Simon Bliudze, Jan Olaf Blech, Víctor Manuel González Suárez

Research output: Contribution to journalArticlepeer-review

Abstract

Programmable logic controllers (PLCs) are embedded computers widely used in industrial control systems. Ensuring that a PLC software complies with its specification is a challenging task. Formal verification has become a recommended practice to ensure the correctness of safety-critical software, but is still underused in industry due to the complexity of building and managing formal models of real applications. In this paper, we propose a general methodology to perform automated model checking of complex properties expressed in temporal logics [e.g., computation tree logic (CTL) and linear temporal logic (LTL)] on PLC programs. This methodology is based on an intermediate model (IM) meant to transform PLC programs written in various standard languages [structured text (ST), sequential function chart (SFC), etc.] to different modeling languages of verification tools. We present the syntax and semantics of the IM, and the transformation rules of the ST and SFC languages to the nuXmv model checker passing through the IM. Finally, two real cases studies of the European Organization for Nuclear Research (CERN) PLC programs, written mainly in the ST language, are presented to illustrate and validate the proposed approach.

Original languageEnglish
Article number7295624
Pages (from-to)1400-1410
Number of pages11
JournalIEEE Transactions on Industrial Informatics
Volume11
Issue number6
DOIs
Publication statusPublished - 1 Dec 2015
Externally publishedYes

Keywords

  • Automata
  • IEC 61131
  • Model checking
  • Modeling
  • NuXmv
  • Programmable logic controller (PLC)
  • Verification

Fingerprint

Dive into the research topics of 'Applying model checking to industrial-sized PLC programs'. Together they form a unique fingerprint.

Cite this