The initially published 2005 international IEC 61499 standard has gathered renewed interest lately, giving a boost to the idea of a multivendor converged IT/OT industrial control system based on open standards. Recent developments, including the 4diac open-source IEC 61499 project, could dramatically accelerate industrial digitalization if all the factors are orchestrated successfully. But it still remains to be seen if IEC 61499 will become a mainstream industrial automation programming method.
I have written much about open programming standards for industrial automation and control software and even editorialized that if the industrial automation industry does not solve the application portability issue, a solution will be driven by the information technology (IT) and Internet of Things (IoT) communities. That may be beginning to happen. I had a discussion about these and other aspects of open source industrial systems with Dr. Alois Zoitl, the convenor of IEC TC65B/WG 15. IEC 61499. Zoitl is a professor with Johannes Kepler University in Linz, Austria, and project lead for the Eclipse Foundation 4diac project.
Open standards for industry
The IEC 61499 standard defines a generic model for distributed control systems and builds on the IEC 61131 standard, which defines a generic architecture and presents guidelines for the use of function blocks in distributed Industrial-Process Measurement and Control Systems (IPMCSs).
Part of the renewed interest in IEC 61499 is because of its application in the recent proof of concept pilot project by CPLANE.ai and collaborator ExxonMobil. The pilot project, which focused on creating a multivendor converged IT/OT industrial control system based on open standards, illustrated strengths and weaknesses. The pilot leveraged several standards, including the Open Process Automation Standard (O-PAS), OPC-UA, DMTF Redfish, IEC 61499, and OASIS TOSCA (Topology and Orchestration Specification for Cloud Applications).
Open-Source IEC 61499 project
The Eclipse Foundation 4diac project is focused on creating open-source software for distributed industrial control and automation based on the IEC 61499 standard. The components of Eclipse 4diac are provided under Eclipse Public License, Version 2.0. The 4diac open standard includes these three aspects:
IDE Development Environment. The 4diac IDE is based on the Eclipse open source framework, which allows an easy integration of other plug-ins to the 4diac IDE providing new or extended functionality. The Eclipse IDE is an established platform particularly for java programming. IEC 61499 based systems follow an application centric design, which means that the application of the overall system is created at first. Each application is created by interconnecting the desired function blocks (FB) in terms of a function block network (FBN). As soon as the hardware structure is known, it can be added to a project’s system configuration and the already existing application can be distributed onto the available devices.
4diac FORTE – IEC 61499 Runtime Environment
The 4diac FORTE is a small portable implementation of an IEC 61499 runtime environment targeting small embedded control devices (16/32 Bit), implemented in C++. It supports online-reconfiguration of its applications and the real-time capable execution of all function block types provided by the IEC 61499 standard.
4diac FORTE supports all IEC 61131-3 edition 2 elementary data-types, structures and arrays. It provides a scalable architecture that allows 4diac FORTE to adapt to the needs of your application. Applications can consist of any IEC 61499 element as basic function blocks (BFBs), composite function blocks (CFBs), service interface function blocks (SIFBs), adapters and sub applications.
4diac LIB – IEC 61499 Function Block Library
The 4diac function block library (4diac LIB) contains function blocks (FB) which are available on the 4diac FORTE and can therefore be used to create IEC 61499 compliant control applications.
IEC 61499 factors for success
Achieving success as a mainstream industrial and process control and automation standard IEC 61499 needs to fill in the missing pieces and gain adoption. Broad adoption includes achieving milestones similar those that made industrial communication networks standards successful (i.e. DeviceNet, Profibus, Profinet, EthetNet/IP, EtherCAT, SERCOS, etc.) plus other significant items for IEC 61499 successfully becoming mainstream.
IEC 61499 will require adoption by a large number of suppliers to achieve critical mass for success. The IEC 61499 situation is more complex than the industrial communication network standards.
Gateways are used to bridge between the networks in a system that use multiple industrial communication protocol standards.
In contrast, to be successful, IEC 61499 conformance by all participating vendors is essential to achieve application portability. Vendors need to develop and support IEC 61499 in their programming workbenches and embedded controller runtime engines.
A highly limited number of suppliers of IEC 61499 exist today. In the OPAF testbed, the Schneider Electric nxtControl commercial product and the Lockheed Martin open source implementation of the Eclipse 4diac IEC 61499 IDE and runtime engine were used.
It is important to note that 4diac is not a supported product but is open source—anyone can freely use it in open LINUX distributions. In contrast, the Schneider Electric nxtControl product offering is a supported IEC 61499 IDE and runtime.
User adoption and demand
Today, vendors promise users that they will deliver an easy-to-use control and automation IDE and embedded control runtime engine with guaranteed reliability and performance. When deciding to offer IEC 61499, vendors face some important questions and must wrestle with big investment decisions:
- Is the extra value delivered, particularly application portability, enough for users to demand and “flat specify” IEC 61499 products for purchase?
- Will user adoption and purchase volume of IEC 61499 products justify the development and productization investment?
Industrial control applications are mission-critical so there needs to be an independent conformance and certification group that ensures conformance to the standard—including multi-vendor interoperability. This was an initial problem with industrial communications protocols (i.e., DeviceNet, Profibus, Profinet, EthetNet/IP; SERCOS) when products based using a particular standard did not fully conform to the specifications and were not interoperable. An important part of the process will be plug-fests with multiple vendors to sort out issues to achieve interoperability. Such a group does not exist today.
Control and automation application portability across industrial automation vendor systems is a major goal of the Open Process Automation Forum and many users. Currently IEC 61449-2 defines rules for engineering tools as well as XML interchange format. In addition, IEC 61131-10 specifies an XML-based exchange format for the export and import of IEC 61131-3 projects. The big issue is these are not meaningfully supported and there is no certification to the standards.
In the recent proof of concept pilot project by CPLANE.ai and collaborator ExxonMobil, Schneider Electric nxtCortrol and the open source 4diac, in theory, could run each other’s applications, but as Professor Zoitl noted, “Yes, there are some portability discussions between nxtControl and Eclipse 4diac. But as far as I know, they were mostly resulting in a wrong implementation of the XML parser in 4diac IDE. Unfortunately, this was not well communicated to the Eclipse 4diac team.” These issues can be worked out, but it punctuates the need for a strong certification and compliance organization.
Event-driven execution model
In the abstract, IEC 61499 is deterministic since the execution prioritizing mechanism are event triggers to initiate operations, but this does not address performance and guaranteed response. The IEC 61499 the specification does not address implementation for performance. The event execution model is highly nondeterministic from the standpoint of predictable execution time with multiple event triggers and functions. The most widely used event driven software is Microsoft Windows.
In contrast, PLCs have relied on a fixed execution model reading inputs, resolving logic and writing outputs. This approach provides stable data handling for control. It does, however, have some interesting challenges for some applications. Within IEC 6113 the Sequential Function Chart (SFC) programming model is used to control execution flow based on data and events. This is used to create state engines and sequencing but depending on the target processor control engine have an impact on response and determinism.
Neither IEC 61131 or IEC 61499 has clearly defined mechanisms for control and automation application integration with real-time operating systems.I asked Prof. Zoitl, how the IEC 61499 standard manages this? He said, “As I did my PhD thesis on the real-time execution model of IEC 61499, I must admit this is not as easy to answer as I hoped. There are possibilities in the resource model defined in the standard. We would love to get feedback from end-users on what more is needed.”
Prof. Zoitl added, “The event driven approach is one of the most controversial mechanisms in IEC 61499. However, IEC 61499 is in itself completely deterministic. This is a key property for being able to develop industrial automation solutions. Events are used in IEC 61499 to control the execution flow of your control application. This gives the user a much better control of what should happen at certain points in time. I recently discovered that an IEC 61131-3 program is also filled with events. They are just not called that. They are called ‘edge triggered Boolean.’ But the logical use in your control program is to activate or deactivate things, to inform about state changes, etc. This is exactly what events are in IEC 61499. The only difference is that by having events as first-class citizen in the language in IEC 61499, the development effort can be lower.”
In any programmable system, determinism and performance become an issue, and the answers are not simple.
The IEC 61499 performance may become more predictable with highly distributed control with processors embedded in sensors, actuators, and other field devices with embedded control.
In a highly distributed system, closed-loop control is dependent on network performance: Performance = Function. Distributed control performance is dependent on the function of network determinism, latency, communication reliability, throughput, other communications traffic, number of nodes, etc. I asked Prof. Zoitl how the standard addresses communications? “The standard is communication system agnostic,” he said. “This is a very important feature of IEC 61499. Because it allows to model distributed systems independent from the communication technology used. I have seen mappings to Ethernet (UDP/TCP), MQTT, oneM2M, CoAP, Modbus, OPC DA, OPC/UA (client/server, pub/sub), Profinet, CAN, EtherNet/IP, EthernetPOWERLINK, and others.”
Prof. Zoitl added, “In the 20 years since the first version of IEC 61499, communication in industrial automation systems have changed a lot. Therefore IEC 61499 went the way of compliance profiles defining how different communication protocols may be used. Now, after some time working with IEC 61499, I can say that this was the right way to go.”
Since user involvement is so important to the evolution and adoption of open systems, I asked Prof. Zoitl, how users can get involved. “There are many ways to get involved, and we would be very happy to have more users involved,” he said. “In the nearly 20 years I’m working with IEC 61499, we always made the most progress when we actively collaborated with users.”
The most obvious but also the most elaborate involvement is through the standardization committees (e.g., IEC, OPAF), Prof. Zoitl said. However, users can simply get involved by experimenting with IEC 61499 and evaluating its properties and give feedback.”
“One very low threshold option for that is the open source project Eclipse 4diac which I co-founded and I’m currently leading. Eclipse 4diac provides a tool as well as an run-time environment, which lets users quickly try out IEC 61499. We also have several channels for giving us feedback,” he said.
Thoughts and observations: Unfinished symphony
The 4diac open-source IEC 61499 project is an exciting development that could dramatically accelerate industrial digitalization if it all the factors are orchestrated successfully.
Late last year, I asked a broad base of automation vendors about adopting IEC 61499, and they stated that, unless users demand it, they see no value in adding it to their products.
If IEC 61499 is going to be successful users need to understand the value, what is left to be done to make it a strong standard, and how they can get involved. Ideally users would start to participate supporting IEC 61499 because a majority of vendors will not adopt it unless users demand it.