New survey accepted today at Elsevier JSS: 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 introduces a novel classification framework for control logic generation approaches, which is applied to 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. [Download preprint]
A new paper (download preprint) was accepted for the 42nd International Conference on Software Engineering (ICSE) – at the “Software Engineering in Practice” track (SEIP) to be held in May 2020 in Seoul, South Korea. Summary: “Software development for industrial automation applications is a growing market with high economic impact. Control engineers design and implement software for such systems using standardized programming languages (IEC 61131-3) and still require substantial manual work. We have executed four case studies on large industrial plants with thousands of sensors and actuators for a rule-based control logic generation approach called CAYENNE to determine its practicability. We found that we can generate more than 70 percent of the required interlocking control logic with code generation rules that are applicable across different plants.”
We published a new journal article in Wiley’s “Software Practice and Experience“. A preprint PDF is available. Here’s the summary: “The vision of plug-and-produce control systems has been pursued for more than 15 years, but existing approaches fell short regarding configuration tasks and vendor-neutrality. This paper introduces the standards-based IoT reference architecture “OpenPnP”, which allows largely automating the configuration and integration tasks of industrial commissioning processes. This paper demonstrates how OpenPnP can reduce configuration and integration efforts up to 90 percent in typical settings, while potentially scaling well up to tens of thousands of communicated signals.”
Today, I gave a keynote at the IoT-ASAP 2018 workshop at ICSA 2018. Here are an abstract and the slides:
Distributed control systems for manufacturing are currently evolving towards Industrial Internet-of-Things (IIoT) systems. Sensors and actuators get equipped with internet connectivity, which allows them to interface with cloud platforms. This potentially enables a number of application cases. However, industrial “things” may be much more complex and more resource-constrained than typical consumer space “things”. This talk provides an overview of Industrial IoT application cases and sketches various challenges for researchers and practitioners using the example of turning a level sensor for industrial tanks into an IoT device.
I had a talk on Hannover Fair 2018 in the Forum “Industrie 4.0 meets the Industrial Internet”. The slides are published on Slideshare:
I gave a guest lecture at University of Heidelberg on “Software Architecture in Process Automation” for Prof. Barbara Paech’s software engineering students:
The Plattform Industrie 4.0 has released a new paper on a standards-based Plug&Produce approach for industrial devices, which was mostly written by me. The paper is a contribution to the current working groups on Industrie 4.0 and focuses on a specific application scenario, where devices connect to each other with limited human interaction. Its purpose is to point to existing standards and reveal standardization gaps. Although a good fundament of standards exists, there is still the need to create more semantically standardized information models to realized this application scenario in a vendor-neutral way.
The annual meeting of the special interest group on “software architecture” of the German Computer Science Society called “Architekturen 2014” was held at ABB Ladenburg. The meeting’s main theme was “Architectures for Industry 4.0“. The fourth industrial revolution is expected from a reorganization of industrial production processes to exploit the capabilities of cyber-physical systems. A dozen of invited talks from researchers and practitioners gave various perspectives on the topic and how it will affect software architectures.
The latest issue of the magazine “IEEE Software” features our article on architecture sustainability: “At ABB, we’re measuring and tracking the architecture sustainability of a large-scale, distributed industrial control system currently under development that’s based on Microsoft technologies and includes a layered architecture. A former version of the system grew to several million LOC and suffered from architecture erosion and high maintenance costs. We adopted a multiperspective approach called Morphosis to avoid such a situation from occurring again. Morphosis focuses on requirements, architecture design, and source code. It includes evolution scenario analysis, scoring of technology choices, architecture compliance checks, and tracking of architecture-level code metrics. This article reports our experiences with tracking selected sustainability measurements over the course of two years.”
A couple of recent studies assessed the state of model-driven engineering (MDE) and the UML in practice. Hutchinson et al. (ICSE2011) noticed for example that a lot of MDE success is actually hidden and that MDE adoption is often rather driven by evangelists than hard business considerations. Petre (ICSE2013) focused on the UML and found for 50 software professionals that 70 percent do not use the UML. Unfortunately, most of the studies known to me have some methodical flaws, such as improper selection of the sample population. Maybe it is time for a systematic review and comparison of all the available empirical studies and approaches in industry?
ABB uses model-driven approaches in various areas, e.g., architecture documentation, code generation for PLC software, simulation, and even testing. Also, ABB Corporate Research has quite some history of experimenting with model-driven techniques:
- platform-independent model and code generation with ArcStyler, based on the MDA initiative (Interactive Objects success story, 2002)
- UML models to describe higher-level design for safety critical embedded systems (Empirical Software Engineering Journal, 2006)
- work on the OPC UA information model (Springer Book, 2009)
- model-based testing of embedded systems (EU-Project D-MINT, 2010)
- program transformation with srcML (ICSM, 2011)
- reliability prediction based on Markov Models (ISSRE, 2010)
- performance prediction for an industrial control system, based on the Eclipse modeling framework (ICSE, EU-Project Q-ImPrESS, 2011)
- DSL for constructing OPC UA Queries and Event Filters (ECMFA, 2012)
- model transformations for analytical purposes (MASCOTS 2012, ICPE 2013)
- model-based design space exploration for distributed systems (ICPE, 2012)