A classification framework for automated control code generation in industrial automation☆
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)
- et al.
Automatic derivation of qualitative plant simulation models from legacy piping and instrumentation diagrams
Comput. Chem. Eng.
(2016) - et al.
Automated generation of simulation models for control code tests
Control Eng. Pract.
(2013) - et al.
Modular finite state machines: development and application to reconfigurable manufacturing cell controller generation
Control Eng. Pract.
(2006) A knowledge-based system to translate control system applications
Eng. Appl. Artif. Intell.
(2003)A knowledge-based system to translate control system applications
Eng. Appl. Artif. Intell.
(2003)- et al.
Enhancing a model-based engineering approach for distributed manufacturing automation systems with characteristics and design patterns
J. Syst. Softw.
(2015) - et al.
Automatic model generation and PLC-code implementation for interlocking policies in industrial robot cells
Control Eng. Pract.
(2007) - et al.
Model-driven development of industrial process control applications
J. Syst. Softw.
(2011) - et al.
Agile and hierarchical round-trip engineering of IEC 61131-3 control software
Comput. Ind.
(2018) - et al.
Transformation of GRAFCET to PLC code including hierarchical structures
Control Eng. Pract.
(2017)
UML-PA As an engineering model for distributed process automation
IFAC Proceed.
Model-driven engineering of process control software–beyond device-centric abstractions
Control Eng. Pract.
A taxonomy of model transformation
Electron. Notes Theor. Comput. Sci.
Formal representation of GRAFCET to automatically generate control code
Control Eng. Pract.
Transforming hierarchical concepts of GRAFCET into a suitable Petri net formalism
IFAC Proceed.
Evolution of software in automated production systems: challenges and research directions
J. Syst. Softw.
Model-driven engineering of manufacturing automation software projects–A sysML-based approach
Mechatronics
Using process topology in plant-wide control loop performance assessment
Comput. Chem. Eng.
A methodological approach to model-driven design and development of automation systems
IEEE Trans. Autom. Sci. Eng.
Modern information retrieval
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)
Automated PLC software generation based on standardized digital process information
2007 IEEE Conference on Emerging Technologies and Factory Automation (EFTA 2007)
Namur modul type package–Definition
atp magazin
Integrationsplattform Für Anlagenmodellorientiertes Engineering
Handbuch Industrie 4.0 Bd. 2
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)
Managing six sigma: A practical guide to understanding, assessing, and implementing the strategy that yields bottom-line success
Extracting Contract Elements
Proceedings of the 16th Edition of the International Conference on Articial Intelligence and Law
Using Petri nets to develop programs for PLC systems
International Conference on Application and Theory of Petri Nets
A case study on migration from iec 61131 plc to iec 61499 function block control
2009 7th IEEE International Conference on Industrial Informatics
An Automated Tool for Generating UML Models from Natural Language Requirements
Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering
Bedienbilder auf Knopfdruck
atp magazin
Concept for interoperability between independent engineering tools of heterogeneous disciplines
ETFA2011
Computer-aided design and implementation of interlock control code
IEEE Conference on Computer Aided Control System Design
Digitalization of the IEC PAS 63131 Standard with AutomationML
2018 IEEE 23rd International Conference on Emerging Technologies and Factory Automation (ETFA)
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)
Knowledge-based support of HAZOP studies using a CAEX plant model
Inside Funct. Saf.
The text mining handbook: Advanced approaches in analyzing unstructured data
Automatic implementation of Petri net based control algorithms on PLC
Proceedings of the 2000 American Control Conference. ACC (IEEE Cat. No. 00CH36334)
Benefit of system modeling in automation and control education
2007 American Control Conference
Thematic role based generation of UML models from real world requirements
International Conference on Semantic Computing (ICSC 2007)
A model for discrete product flows in manufacturing plants
Proceedings of the 2014 IEEE Emerging Technology and Factory Automation (ETFA)
Rule-based engineering using declarative graph database queries
2014 12th IEEE International Conference on Industrial Informatics (INDIN)
Collaborative Process Automation Systems
Automatic generation of PLC code beyond the nominal sequence
2008 IEEE International Conference on Emerging Technologies and Factory Automation
UML-based development process for IEC 61499 with automatic test-case generation
2006 IEEE Conference on Emerging Technologies and Factory Automation
Automatische erzeugung von SPS-Programmen auf der basis von petri-Netzen
Automatisierungstechnische Praxis
Konzept zur bidirektionalen transformation zwischen GRAFCET-Spezifikationen und IEC 61131-3 steuerungscode
at-Automatisierungstechnik
Guidelines for performing systematic literature reviews in software engineering
Technical Report
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.