Empirical Software Engineering

, Volume 19, Issue 3, pp 655–677 | Cite as

An empirical study of control logic specifications for programmable logic controllers

  • Oscar LjungkrantzEmail author
  • Knut Åkesson
  • Martin Fabian
  • Amir Hossein Ebrahimi


This paper presents an empirical study of control logic specifications used to document industrial control logic code in manufacturing applications. More than one hundred input/output related property specifications from ten different reusable function blocks were investigated. The main purpose of the study was to provide understanding of how the specifications are expressed by industrial practitioners, in order to develop new tools and methods for specifying control logic software, as well as for evaluating existing ones. In this paper, the studied specifications are used to evaluate linear temporal logic in general and the specification language ST-LTL, tailored for functions blocks, in particular. The study shows that most specifications are expressed as implications, that should always be fulfilled, between input and output conditions. Many of these implications are complex since the input and output conditions may be mixed and involve sequences, timer issues and non-boolean variables. Using ST-LTL it was possible to represent all implications of this study. The few non-implication specifications could be specified in ST-LTL as well after being altered to suit the specification language. The paper demonstrates some advantages of ST-LTL compared to standard linear temporal logic and discusses possible improvements such as support for automatic rewrite of complex specifications.


Industrial study Software requirements and specification Formal specification Temporal logic Programmable logic controller (PLC) IEC 61131-3 



This work was carried out at theWingquist LaboratoryVINN Excellence Centre within the Area of Advance - Production at Chalmers, supported by the Swedish Governmental Agency for Innovation Systems (VINNOVA). The support is gratefully acknowledged. Thanks also to our industrial partners in the FLEXA research project within the European Seventh Framework Programme (FP7).


  1. Alur R, Henzinger TA (1992) Logics and models of real time: a survey. In: de Bakker J, Huizing K, de Roever WP, Rozenberg G (eds) Real time: theory in practice. Lecture notes in computer science, vol 600. Springer, pp 74–106Google Scholar
  2. Baier C, Katoen JP (2008) Principles of model checking. MIT PressGoogle Scholar
  3. Behrmann G, David A, Larsen KG (2004) A tutorial on Uppaal. In: Proceedings of the 4th international school on formal methods for the design of computer, communication, and software systems, Bertinoro, Italy. Lecture notes in computer science, vol 3185, pp 200–236Google Scholar
  4. Bérard B, Bidoit M, Finkel A, Laroussinie F, Petit A, Petrucci L, Schnoebelen P, McKenzie P (2001) Systems and software verification—model-checking techniques and tools. SpringerGoogle Scholar
  5. Bitsch F (2001) Safety patterns—the key to formal specification of safety requirements. In: Proceedings of the 20th international conference on computer safety, reliability and security. Lecture notes in computer science, vol 2187. Springer, pp 176–189Google Scholar
  6. Bryman A, Bell E (2011) Business research methods, 3rd edn. Oxford University PressGoogle Scholar
  7. Campos JC, Machado J (2009) Pattern-based analysis of automated production systems. In: Proceedings of the 13th IFAC symposium on information control problems in manufacturing, Moscow, Russia, pp 976–981Google Scholar
  8. Campos JC, Machado J, Seabra E (2008) Property patterns for the formal verification of automated production systems. In: Proceedings of the 17th IFAC world congress, IFAC, Seoul, South Korea, pp 5107–5112Google Scholar
  9. Clarke EM, Grumberg O, Peled DA (2000) Model checking. MIT PressGoogle Scholar
  10. Devlin K (2005) Sets, functions and logic—an introduction to abstract mathematics, 3rd edn. Chapman & Hall/CRCGoogle Scholar
  11. Dwyer M, Avrunin G, Corbett J (1998) Property specification patterns for finite-state verification. In: Proceedings of the second workshop on formal methods in software practice, Clearwater Beach, Fla, USA, pp 7–15Google Scholar
  12. Dwyer M, Avrunin G, Corbett J (1999) Patterns in property specifications for finite-state verification. In: Proceedings of the 1999 international conference on software engineering, Los Angeles, CA, USA, pp 411–420Google Scholar
  13. Hajarnavis V, Young K (2008) An investigation into programmable logic controller software design techniques in the automotive industry. Assembly Autom 28:43–54Google Scholar
  14. IEC (2003) Programmable controllers—part 3: programming languages, 2nd edn. International standard IEC 61131-3, International Electrotechnical CommissionGoogle Scholar
  15. Lennartson B, Bengtsson K, Yuan C, Andersson K, Fabian M, Falkman P, Åkesson K (2010) Sequence planning for integrated product, process and automation design. IEEE Trans Autom Sci Eng 7(4):791–802CrossRefGoogle Scholar
  16. Lewis RW (1998) Programming industrial control systems using IEC 1131-3 revised edition. The Institution of Electrical EngineersGoogle Scholar
  17. Ljungkrantz O, Åkesson K, Fabian M (2010a) Practice of industrial control logic programming using library components. In: Guedes LA (ed) Programmable logic controller, Intech, chap 2, pp 17–32Google Scholar
  18. Ljungkrantz O, Åkesson K, Fabian M, Yuan C (2010b) A formal specification language for PLC-based control logic. In: Proceedings of the 8th IEEE international conference on industrial informatics, Osaka, Japan, pp 1067–1072Google Scholar
  19. Lucas M, Tilbury D (2003) A study of current logic design practices in the automotive manufacturing industry. Int J Human-Comput Stud 59(5):725–753CrossRefGoogle Scholar
  20. Nain S, Vardi MY (2007) Branching vs. linear time: semantical perspective. In: Automated technology for verification and analysis. Lecture notes in computer science, vol 4762. Springer, pp 19–34Google Scholar
  21. Preusse S, Hanisch HM (2008) Specification and verification of technical plant behavior with symbolic timing diagrams. In: Proceedings of the 3rd international design and test workshop, Monastir, Tunisia, pp 313–318Google Scholar
  22. Preusse S, Hanisch HM (2009) Specification of technical plant behavior with a safety-oriented technical language. In: Proceedings of the 7th IEEE international conference on industrial informatics, Cardiff, Wales, pp 632–637Google Scholar
  23. Richardsson J, Fabian M (2006) Modeling the control of a flexible manufacturing cell for automatic verification and control program generation. Flex Serv Manuf J 18(3):191–208CrossRefGoogle Scholar
  24. Rozier KY (2010) Linear temporal logic symbolic model checking. Comput Sci Rev 5(2):163–203CrossRefGoogle Scholar
  25. Ruf J, Kropf T (2003) Symbolic verification and analysis of discrete timed systems. Formal Methods Syst Des 23(1):67–108CrossRefzbMATHGoogle Scholar
  26. Shull F, Singer J, Sjøberg DIK (eds) (2008) Guide to advanced empirical software engineering, vol 4334. SpringerGoogle Scholar
  27. Vardi MY (2001) Branching vs. linear time: final showdown. In: Tools and algorithms for the construction and analysis of systems. Lecture notes in computer science, vol 2031. Springer, pp 1–22Google Scholar
  28. Visser W (1987) Strategies in programming programmable controllers: a field study on a professional programmer. In: Proceedings of the empirical studies of programmers: second workshop. Ablex Publishing Corp., Washington DC, pp 217–230Google Scholar
  29. Vyatkin V, Bouzon G (2008) Using visual specifications in verification of industrial automation controllers. EURASIP J Embedded Syst 2008(5):5:1–5:9Google Scholar

Copyright information

© Springer Science+Business Media New York 2012

Authors and Affiliations

  • Oscar Ljungkrantz
    • 1
    Email author
  • Knut Åkesson
    • 1
  • Martin Fabian
    • 1
  • Amir Hossein Ebrahimi
    • 1
  1. 1.Department of Signals and SystemsChalmers University of TechnologyGöteborgSweden

Personalised recommendations