Automated Verification of Function Block Based Industrial Control Systems

Abstract IEC 61131-3, the world-wide standard for industrial control programming, is increasingly being used in embadded control applications. The standard supports the concept of reusable “software ICs” through the concept of function blocks. can be hierarchically grouped and horizontally “wired” to Complex control loops are typically built from elementary components taken from domain-specific libraries. Code inspection and testing are the two predominant quality assurance techniques in practice, today. For highly dependable control applications, however, these techniques are not sufficient, in general. This paper suggests to augment testing with compositional, theorem-prover supported verification. The approach is based on a representation of IEC 61131-3 function blocks in higher-order logic. The verification task is separated into the a priori verification of library components and a separate proof of individual application programs. The latter relies on proven properties of the library components used. We sketch the semantic embedding of three most used languages of the IEC standard and illustrate our verification approach with a simple example. We conclude with a wish list for a verification tool that is usable by application and licensing engineers.

[1]  Leslie Lamport,et al.  Should your specification language be typed , 1999, TOPL.

[2]  Richard J. Boulton,et al.  Experience with Embedding Hardware Description Languages in HOL , 1992, TPCD.

[3]  Thomas A. Henzinger,et al.  Reactive Modules , 1999, Formal Methods Syst. Des..

[4]  John Robert Harrison,et al.  Theorem proving with the real numbers , 1998, CPHC/BCS distinguished dissertations.

[5]  Nicolas Halbwachs,et al.  Verification of Real-Time Systems using Linear Relation Analysis , 1997, Formal Methods Syst. Des..

[6]  David B. MacQueen,et al.  The Definition of Standard ML (Revised) , 1997 .

[7]  Sofiène Tahar,et al.  Formal Specification and Verification Techniques for RISC Pipeline Conflicts , 1995, Comput. J..

[8]  Hassen Saïdi The Invariant Checker: Automated Deductive Verification of Reactive Systems , 1997, CAV.

[9]  Lawrence Charles Paulson,et al.  Isabelle: A Generic Theorem Prover , 1994 .

[10]  John Harrison Floating Point Verification in HOL Light: The Exponential Function , 1997, AMAST.

[11]  Thomas A. Henzinger,et al.  Automatic Symbolic Verification of Embedded Systems , 1996, IEEE Trans. Software Eng..

[12]  Olaf Stursberg,et al.  A Case Study in Tool-Aided Analysis of Discretely Controlled Continuous Systems: The Two Tanks Problem , 1997, Hybrid Systems.

[13]  S. Engell,et al.  Approximately time-optimal fuzzy control of a two-tank system , 1994, IEEE Control Systems.

[14]  Albert Benveniste,et al.  The synchronous approach to reactive and real-time systems , 1991 .

[15]  Nicolas Halbwachs,et al.  Synchronous Programming of Reactive Systems , 1992, CAV.

[16]  Richard C. Waters,et al.  Knowledge Intensive Software Engineering Tools , 1992, IEEE Trans. Knowl. Data Eng..

[17]  R. W. Lewis,et al.  Programming Industrial Control Systems Using IEC 1131-3 , 1995 .

[18]  Nancy G. Leveson,et al.  An investigation of the Therac-25 accidents , 1993, Computer.

[19]  Zohar Manna,et al.  The Temporal Logic of Reactive and Concurrent Systems , 1991, Springer New York.

[20]  Rajeev Alur,et al.  A Theory of Timed Automata , 1994, Theor. Comput. Sci..

[21]  Tobias Nipkow,et al.  Javalight is type-safe—definitely , 1998, POPL '98.

[22]  Wolfgang A. Halang,et al.  Achieving high integrity of process control software by graphical design and formal verification , 1992, Softw. Eng. J..

[23]  Tobias Nipkow,et al.  Higher-Order Unification, Polymorphism, and Subsorts (Extended Abstract) , 1990, CTRS.

[24]  Norbert Völker Ein Rahmen zur Verifikation von SPS-Funktionsbausteinen in HOL , 1998, Berichte aus der Elektrotechnik.

[25]  Peter B. Andrews An introduction to mathematical logic and type theory - to truth through proof , 1986, Computer science and applied mathematics.

[26]  Wolfgang A. Halang,et al.  Exploiting a Graphical Programming Paradigm to Facilitate Rigorous Verification of Embedded Software , 1995, Comput. J..