TY - JOUR
T1 - Applying model checking to industrial-sized PLC programs
AU - Adiego, Borja Fernández
AU - Darvas, Dániel
AU - Viñuela, Enrique Blanco
AU - Tournier, Jean Charles
AU - Bliudze, Simon
AU - Blech, Jan Olaf
AU - Suárez, Víctor Manuel González
N1 - Publisher Copyright:
© 2015 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission.
PY - 2015/12/1
Y1 - 2015/12/1
N2 - 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.
AB - 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.
KW - Automata
KW - IEC 61131
KW - Model checking
KW - Modeling
KW - NuXmv
KW - Programmable logic controller (PLC)
KW - Verification
U2 - 10.1109/TII.2015.2489184
DO - 10.1109/TII.2015.2489184
M3 - Article
AN - SCOPUS:84959204468
SN - 1551-3203
VL - 11
SP - 1400
EP - 1410
JO - IEEE Transactions on Industrial Informatics
JF - IEEE Transactions on Industrial Informatics
IS - 6
M1 - 7295624
ER -