On Formal Specification and Verification of Function Block Applications in Industrial Control Logic Development
Doktorsavhandling, 2011

Developing a control system for an automated manufacturing system is a challenging task. In addition to controlling and coordinating the machines and robots used in the production, the safety of the operators must be assured. The control system should also be easily modifiable and quickly made fully operational, to reduce down-time and ramp-up-time of the manufacturing system. To handle these challenges, Programmable Logic Controllers (PLCs) and a set of standard programming languages are typically used. Many industrial practitioners also use standardized programming structure and they reuse code in form of function blocks between and within different programming projects. Although the PLC programming is well standardized, there is no established standard for the specifications. The function blocks are typically documented informally, for instance using natural language and pictures, or not specified at all. Unambiguous specifications of function blocks would not only promote efficient reuse and facilitate verification, but are fundamental for the part handling safety. International safety standards emphasize the importance of specifying and verifying safety-related software. This thesis proposes the Reusable Automation Component (RAC) framework for formal, mathematical specification and verification of function blocks. The RAC formal specification removes ambiguity and enables automated and exhaustive off-line verification using model checking. Developing formal specifications is typically a tough task for PLC programmers and maintainers and this thesis therefore proposes methods and a language for assisting the specification development. The main contributions of the thesis are the proposed specification assistance and industrial studies on PLC programming and function block specifications. A prototype RAC tool has been implemented in which the function blocks can be specified and then verified using a model checking tool. Several industrial examples show that the RAC framework may help the users to find errors and inconsistencies within the function blocks, and to confirm that the expected safety properties are fulfilled.

safety logic

function block

IEC 61131

software requirements and specification

formal verification

reusable automation component (RAC)

temporal logic

manufacturing automation software

programmable logic controller (PLC)

model checking

HC1, Hörsalsvägen 14, Chalmers University of Technology, Göteborg
Opponent: Prof. Georg Frey, Department of Mechatronics Engineering, Saarland University, Saarbrücken, Germany


Oscar Ljungkrantz

Signaler och system, System- och reglerteknik, Automation

A formal specification language for PLC-based control logic

Proceedings of the 8th IEEE International Conference on Industrial Informatics, INDIN 2010; Osaka; 13 July 2010 through 16 July 2010,; (2010)p. 1067-1072

Paper i proceeding

Practice of Industrial Control Logic Programming using Library Components

Programmable Logic Controller,; (2010)p. 17-32

Kapitel i bok

An Empirical Study of Control Logic Specifications for Programmable Logic Controllers

Empirical Software Engineering,; Vol. 19(2014)p. 655-677

Artikel i vetenskaplig tidskrift

Formal Specification and Verification of Industrial Control Logic Components

IEEE Transactions on Automation Science and Engineering,; Vol. 7(2010)p. 538-548

Artikel i vetenskaplig tidskrift

Towards Industrial Formal Specification of Programmable Safety Systems

IEEE Transactions on Control Systems Technology,; Vol. 20(2012)p. 1567-1574

Artikel i vetenskaplig tidskrift


Data- och informationsvetenskap





Doktorsavhandlingar vid Chalmers tekniska högskola. Ny serie: 3250

HC1, Hörsalsvägen 14, Chalmers University of Technology, Göteborg

Opponent: Prof. Georg Frey, Department of Mechatronics Engineering, Saarland University, Saarbrücken, Germany