A classification framework for automated control code generation in industrial automation

https://doi.org/10.1016/j.jss.2020.110575Get rights and content

Highlights

  • 13 code generation methods for control logic in industrial automation since 2004.

  • Each method considers different inputs, transformations, and outputs.

  • Survey providing categorization in rule-based and higher-level programming.

  • Generating IEC 61131-3 control logic was demonstrated only on small examples so far.

  • Merging generated and hand-written code and backpropagation open research topics.

Abstract

Software development for the automation of industrial facilities (e.g., oil platforms, chemical plants, power plants, etc.) involves implementing control logic, often in IEC 61131-3 programming languages. Developing safe and efficient program code is expensive and today still requires substantial manual effort. Researchers have thus proposed numerous approaches for automatic control logic generation in the last two decades, but a systematic, in-depth analysis of their capabilities and assumptions is missing. This paper proposes a novel classification framework for control logic generation approaches defining criteria derived from industry best practices. The framework is applied to compare and analyze 13 different control logic generation approaches. Prominent findings include different categories of control logic generation approaches, the challenge of dealing with iterative engineering processes, and the need for more experimental validations in larger case studies.

Introduction

Software development for industrial automation applications requires substantial design and implementation efforts (Gutermuth, 2010). Besides various client-server applications for supervision and monitoring in this domain, time-critical control software runs on real-time controllers and manages complex production processes of chemical plants, power plants, oil platforms, pulp and paper mills, or steel mills (Martin and Hale, 2010). Control engineers often create this control software in programming languages according to IEC 61131-3, namely function block diagrams, structured text, sequential function charts, ladder diagrams, or instruction lists (Tiegelkamp and John, 1995). The software executes cyclically and computes control signals for actuators, such as valves, motors, or robots, based on periodically sampled sensor signals as inputs (e.g., for temperature, flow, pressure, level, etc.). The software ensures efficient and safe execution of the production process. The development of this software is embedded into a larger engineering process that also covers hardware engineering, HMI development, and device configuration (Gutermuth, 2010).

Engineering industrial plants is an expensive process today and may require several person years for a mid-sized plant with several thousand I/O points (Gutermuth, 2010). Requirements and designs for such plants come from automation customers or engineering contractors, who often provide mostly informal specifications. Control engineers of automation providers partially import these specifications into engineering software tools and manually interpret them to implement the required control logic (Urbas et al., 2012). This process exhibits media discontinuities, where data is manually transformed between different formats. This may lead to data inconsistencies requiring time-consuming feedback loops with the customer. Furthermore, control engineers often use low-level programming abstractions (Lukman et al., 2013) and execute repetitive implementation tasks because of missing reusable components (Schmidberger et al., 2006). Manually written code needs to be tested thoroughly to ensure safe plant operation.

Due to the high engineering costs, practitioners and researchers have sought methods and tools for automating control logic development (Vyatkin, 2013). Practitioners introduced bulk engineering to semi-automatically deal with list-based specifications and created engineering libraries to bundle reusable functionality (Gutermuth, 2010). Researchers worked on higher-level modeling languages (e.g., applying UML or SysML for industrial automation (Vogel-Heuser et al., 2005)) and proposed rule-based code generation approaches (Drath et al., 2006). An overview of these approaches is missing, which complicates identifying and selecting an appropriate approach or to identify research opportunities. Existing literature reviews in this area (Vyatkin, 2013, Lukman, Godena, Gray, Heričko, Strmčnik, 2013, Yang, Vyatkin, Pang, 2014, Liebel, Marko, Tichy, Leitner, Hansson, 2014, Vogel-Heuser, Fay, Schaefer, Tichy, 2015) usually do not focus on the aspect of automatic code generation and rather provide coarse-grained descriptions of several selected approaches. They do not provide detailed classification frameworks nor mirror existing approaches against requirements from practice. In this work, we aim to close this gap.

The contribution of this paper is a classification framework for automated code generation approaches for IEC 61131-3 control logic. The classification framework defines categories and criteria to evaluate such code generation approaches. This can help researchers and practitioners to compare different approaches regarding their capabilities. Using the classification framework, this paper analyzes 13 different code generation approaches from literature in the last 15 years. This analysis identifies patterns and commonalities between the approaches as well as research gaps. Based on findings from the comparison, this paper also discusses implications and required future work.

The 13 approaches map into three different categories: rule-based engineering, higher-level programming, and higher-level programming using a plant structure as input. Approaches within the same category use similar input specifications. Most approaches have been demonstrated on small lab examples so far, some approaches were tested in student experiments. Challenges for all approaches are missing support for standard input formats, iterative engineering processes, and dealing with natural language requirements. Recent standardization initiatives could improve the situation, warranting further research and more extensive validations.

This paper is structured as follows. Section 2 recaps basics of control logic generation using a running example, sketches a generic transformation process, and surveys inputs available in practice. Section 3 describes the research methodology underlying this study, provides a short overview on the identified approaches, and then proposes and explains our classification framework. Section 4 applies the classification framework to the 13 identified approaches and provides a detailed analysis of their inputs, transformations, and outputs. Section 5 discusses selected findings from the comparison in Section 4 and sketches challenges to be tackled in future work. Section 6 analyzes threats to validity of the present study, and Section 7 summarizes related work. Section 8 concludes the paper.

Section snippets

Control logic generation: Basics and requirements

Control engineers design and implement control logic based on customer requirements and design specifications as well as available control libraries and industrial standards (Gutermuth, 2010). This section provides an overview of the available customer inputs in practice, requirements, methods, and tools for model transformation and code generation, as well as different types of outputs, in terms of the different control logic parts and storage formats. Fig. 1 provides a generic process model

Methodology

The objective of the present study is to classify research approaches for IEC 61131-3 code generation from the viewpoint of a practicing control engineer. A detailed breakdown of each method’s inputs and outputs helps to better understand the context the researchers assumed and the method’s capabilities. The classification supports identifying patterns between the approaches and to assess their maturity levels.

We identified corresponding approaches using Google Scholar, IEEE Digital Library,

Comparison of approaches

Using the classification from Fig. 12, the following compares the approaches. Each subsection deals with one of the four parts of the classification and uses a table to provide an overview to what extent the approaches meet the criteria.

Discussion

This section discusses multiple observations and analyzes of the surveyed approaches.

Heterogeneous Research Scopes Although all surveyed approaches produce IEC 61131-3 code, their individual goals and scopes are diverging. Selecting an approach for a particular project mainly depends on the available inputs and the expected outputs.

Rule-based generation approaches try to limit manual coding efforts, by letting control engineers encode simple engineering tasks into a rule base. The aim is not to

Threats to validity

The comparison of code generation methods in this paper aimed to analyze the prerequisites and capabilities of the all relevant published methods. The following threats to validity of this survey have been explicitly considered and addressed:

  • Non-Representative Selection of Approaches: Section 3 has documented the used search facilities, search terms, and inclusion criteria of this paper. Excluding approaches generating IEC 61499 control logic as well as other programming languages is a threat

Related work

Related Surveys Although there is no classification and comparison of IEC 61131-3 control logic generation in literature, there are several publications providing overviews of different model-driven approaches and code generators for industrial automation applications. Vyatkin’s state-of-the-art review of software engineering in industrial automation (Vyatkin, 2013) summarizes several approaches for model-driven engineering according to the OMG standards MDA, UML, and MOF. This coarsely maps to

Conclusions

This paper classified 13 control logic generation approaches for IEC 61131-3 programming languages. Automating the task of software implementation for real-time controllers in industrial automation could result in a significant cost reduction for the engineering process of industrial plants. The classification criteria used in this paper originate from the customer specifications available in practice (inputs), an idealized model transformation process, and the typical outputs of control logic

CRediT authorship contribution statement

Heiko Koziolek: Conceptualization, Methodology, Writing - original draft, Visualization, Supervision. Andreas Burger: Conceptualization, Investigation, Writing - review & editing. Marie Platenius-Mohr: Conceptualization, Investigation, Writing - review & editing. Raoul Jetley: Conceptualization, Investigation, Writing - review & editing.

Declaration of Competing Interest

The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper.

Heiko Koziolek is a Senior Principal Scientist at ABB Corporate Research in Ladenburg, Germany. He leads research projects on software architectures for industrial process control and coordinated different projects on sustainable architectures. He studied computer science at the Carl von Ossietzky University of Oldenburg and obtained a PhD in software engineering in 2008. His research is concerned with performance prediction for software systems as well as analyzing software maintainability. He

References (110)

  • U. Katzke et al.

    UML-PA As an engineering model for distributed process automation

    IFAC Proceed.

    (2005)
  • T. Lukman et al.

    Model-driven engineering of process control software–beyond device-centric abstractions

    Control Eng. Pract.

    (2013)
  • T. Mens et al.

    A taxonomy of model transformation

    Electron. Notes Theor. Comput. Sci.

    (2006)
  • F. Schumacher et al.

    Formal representation of GRAFCET to automatically generate control code

    Control Eng. Pract.

    (2014)
  • F. Schumacher et al.

    Transforming hierarchical concepts of GRAFCET into a suitable Petri net formalism

    IFAC Proceed.

    (2013)
  • B. Vogel-Heuser et al.

    Evolution of software in automated production systems: challenges and research directions

    J. Syst. Softw.

    (2015)
  • B. Vogel-Heuser et al.

    Model-driven engineering of manufacturing automation software projects–A sysML-based approach

    Mechatronics

    (2014)
  • S.Y. Yim et al.

    Using process topology in plant-wide control loop performance assessment

    Comput. Chem. Eng.

    (2006)
  • M.L. Alvarez et al.

    A methodological approach to model-driven design and development of automation systems

    IEEE Trans. Autom. Sci. Eng.

    (2018)
  • R. Baeza-Yates et al.

    Modern information retrieval

    (2011)
  • M. Barth et al.

    Evaluation of the openness of automation tools for interoperability in engineering tool chains

    Proceedings of 2012 IEEE 17th International Conference on Emerging Technologies & Factory Automation (ETFA 2012)

    (2012)
  • M. Bergert et al.

    Automated PLC software generation based on standardized digital process information

    2007 IEEE Conference on Emerging Technologies and Factory Automation (EFTA 2007)

    (2007)
  • J. Bernshausen et al.

    Namur modul type package–Definition

    atp magazin

    (2016)
  • S. Biffl et al.

    Integrationsplattform Für Anlagenmodellorientiertes Engineering

    Handbuch Industrie 4.0 Bd. 2

    (2017)
  • P. Bihani et al.

    Concept for automationml-based interoperability between multiple independent engineering tools without semantic harmonization: Experiences with automationml

    2017 22nd IEEE International Conference on Emerging Technologies and Factory Automation (ETFA)

    (2017)
  • F.W. Breyfogle III et al.

    Managing six sigma: A practical guide to understanding, assessing, and implementing the strategy that yields bottom-line success

    (2000)
  • Burlein, J., Rassl, M., Schmidt, N., 2018. Introducing AutomationML in a heterogeneous software tool landscape - a...
  • I. Chalkidis et al.

    Extracting Contract Elements

    Proceedings of the 16th Edition of the International Conference on Articial Intelligence and Law

    (2017)
  • G. Cutts et al.

    Using Petri nets to develop programs for PLC systems

    International Conference on Application and Theory of Petri Nets

    (1992)
  • W.W. Dai et al.

    A case study on migration from iec 61131 plc to iec 61499 function block control

    2009 7th IEEE International Conference on Industrial Informatics

    (2009)
  • D.K. Deeptimahanti et al.

    An Automated Tool for Generating UML Models from Natural Language Requirements

    Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering

    (2009)
  • F. Doherr et al.

    Bedienbilder auf Knopfdruck

    atp magazin

    (2013)
  • R. Drath et al.

    Concept for interoperability between independent engineering tools of heterogeneous disciplines

    ETFA2011

    (2011)
  • R. Drath et al.

    Computer-aided design and implementation of interlock control code

    IEEE Conference on Computer Aided Control System Design

    (2006)
  • R. Drath et al.

    Digitalization of the IEC PAS 63131 Standard with AutomationML

    2018 IEEE 23rd International Conference on Emerging Technologies and Factory Automation (ETFA)

    (2018)
  • A. Fay et al.

    Design and implementation of a Java-based industrial control system configuration tool

    ETFA 2001. 8th International Conference on Emerging Technologies and Factory Automation. Proceedings (Cat. No. 01TH8597)

    (2001)
  • A. Fay et al.

    Knowledge-based support of HAZOP studies using a CAEX plant model

    Inside Funct. Saf.

    (2009)
  • R. Feldman et al.

    The text mining handbook: Advanced approaches in analyzing unstructured data

    (2007)
  • Forbes, H., Clayton, D., 2018. Distributed Control Systems Global Market 2017–2022. ARC Market Analysis, ARC Advisory...
  • G. Frey

    Automatic implementation of Petri net based control algorithms on PLC

    Proceedings of the 2000 American Control Conference. ACC (IEEE Cat. No. 00CH36334)

    (2000)
  • D. Friedrich et al.

    Benefit of system modeling in automation and control education

    2007 American Control Conference

    (2007)
  • T. Gelhausen et al.

    Thematic role based generation of UML models from real world requirements

    International Conference on Semantic Computing (ICSC 2007)

    (2007)
  • S. Grüner et al.

    A model for discrete product flows in manufacturing plants

    Proceedings of the 2014 IEEE Emerging Technology and Factory Automation (ETFA)

    (2014)
  • S. Grüner et al.

    Rule-based engineering using declarative graph database queries

    2014 12th IEEE International Conference on Industrial Informatics (INDIN)

    (2014)
  • G. Gutermuth

    Collaborative Process Automation Systems

    (2010)
  • K. Guttel et al.

    Automatic generation of PLC code beyond the nominal sequence

    2008 IEEE International Conference on Emerging Technologies and Factory Automation

    (2008)
  • T. Hussain et al.

    UML-based development process for IEC 61499 with automatic test-case generation

    2006 IEEE Conference on Emerging Technologies and Factory Automation

    (2006)
  • C. Jörns et al.

    Automatische erzeugung von SPS-Programmen auf der basis von petri-Netzen

    Automatisierungstechnische Praxis

    (1995)
  • R. Julius et al.

    Konzept zur bidirektionalen transformation zwischen GRAFCET-Spezifikationen und IEC 61131-3 steuerungscode

    at-Automatisierungstechnik

    (2019)
  • B. Kitchenham et al.

    Guidelines for performing systematic literature reviews in software engineering

    Technical Report

    (2007)
  • Cited by (0)

    Heiko Koziolek is a Senior Principal Scientist at ABB Corporate Research in Ladenburg, Germany. He leads research projects on software architectures for industrial process control and coordinated different projects on sustainable architectures. He studied computer science at the Carl von Ossietzky University of Oldenburg and obtained a PhD in software engineering in 2008. His research is concerned with performance prediction for software systems as well as analyzing software maintainability. He serves on the program committee of leading conferences on software engineering (ICSE) and software architecture (ICSA) and as an Associate Editor for Elsevier ”Journal of Systems and Software”.

    Andreas Burger is a Research Team Manager at ABB Corporate Research in Ladenburg, Germany. He leads research projects on software architecture and software product lines in industrial automation. He studied computer science at the University of Tbingen, Germany, and graduated with a PhD in 2015 while working for Forschungszentrum Informatik (FZI) in Karlsruhe, Germany. He has experience in embedded system development and the automotive domain.

    Marie Platenius-Mohr is a Scientist at ABB Corporate Research in Ladenburg, Germany. She is conducting research in the industrial automation domain. Her research interests are software architecture, information modeling, internet-of-things, and model-driven development. She studied computer science at the University of Paderborn, Germany, and graduated with a PhD in 2016. Afterwards, she worked as a PostDoc in the Collaborative Research Center On-the-Fly Computing and joined ABB in 2018.

    Raoul Jetley is a Senior Principal Scientist at ABB Corporate Research in Bangalore, India. He leads cross-center research projects to improve the efficiency of industrial power systems and software. He studied computer science at the University of Mumbai and North Carolina State University and graduated with a PhD in 2006. He has developed program analysis tools for industrial automation systems and has more than 15 years of experience in industry and academic environments.

    Edited by Prof Doo-Hwan Bae.

    View full text