The UAO technology starts with the IEC 61499 standard which is a system-level design language for distributed information and control systems. It is not a programming language and defines how to design a distributed control system and the separation between automation application and hardware which is the base for portable automation applications.
The shared runtime execution engine is based on the IEC 61499 standard
UniversalAutomation.org provides a ready-to-go solution that enables flexible Industry 4.0 automation architectures and drastically improves return on investment thanks to the reusability and portability of automation applications.
The IEC 61499 standard
The IEC 61499 standard is not a programing language but a system-level design language for distributed information and control systems.
Here some documents about the IEC 61499 standard:
- IEC 61499 – Wikipedia
- IEC 61499 Standard for distributed Automation
- IEC 61499 Tutorial for Industrial Automation – video by John Conway
- Introduction to IEC 61499 – video by Valeriy Vyatkin
Some basics to this standard
1. Event-driven Function Block (FB)
It starts with event-driven function blocks to compose your application.
Those function blocks can be compared with software components in the IT sense, so that it makes it easier for engineers from both the automation and IT world to understand them.
The behavior of a basic function block is defined as an event-driven state machine known as the Execution Control Chart.
The define state could encapsulate an algorithm written in any language as the standard does not define any. You can then build a so-called composite function block which consists of multiple function blocks put together.
Another point is that events and data are linked with a “WITH constructs” which make it easy to link event-driven messaging with IT systems reinforcing the convergence of IT & OT systems. It enables automation systems to leverage IT technologies (artificial intelligence, machine learning, digital twins…) in a seamless manner.
For Automation Engineers, events driven function blocks offer:
- Graphical programming
- Precise control of execution order and data flow
For Software Engineer, functions blocks offer:
- Black box to encapsulate my IP
- Software components that I can reuse from others through libraries or create my own that someone else could use
2. Software-Hardware Decoupling
Then applications can be built by networking hardware-independent graphical software components together as defined by the application model.
The application which is built can be distributed across multiple devices or systems. This is what we call the interoperability at application level.
The application model is independent from the underlying hardware devices and compute resources that will execute the application. Those hardware devices and compute resources are defined by the device model and could be classical automation controllers like DCS/PLC’s, smart field devices (actuators…) or edge computing devices.
The split of an application and its deployment to targeted hardware/resource is defined by the system model.
In a summary,
the decoupling of the hardware and software is clearly defined by the IEC 61499 standard and allows multiple benefits for automation users:
- More cost-effectiveness: write your application once and re-use regardless of the hardware vendor
- More reliability & safer thanks to proven-in-use, reusable software libraries
- Automation software applications can now be incrementally improved over the lifecycle of the machines or processes
- Your automation solution becomes end-of-life proof since you can re-use your software application, even when automation hardware is obsolete
- Get the ability to embed & reuse IP to protect competitive edge or to get better return on investment on increasing software investment
The underlying building block is the event-driven Function Block (FB) consisting of a graphical wrapper with event in/data in pins, event out/data out pins, an internal state machine (known as the Execution Control Chart) and algorithms that are executed in the different states.
When an event input is activated, an algorithm is triggered that takes data from the input pins, and writes the results to the output pins.
It should be noted that:
- The standard does not define the programming language but does recommend the use of the IEC 61131-3 languages.
- The FB acts on local variables only. In this sense it is an independent and self-contained software component in the IT-sense.
- The graphical nature of the FB application is familiar to automation engineers and lends itself to debugging/commissioning.
Hardware independent components
The IEC 61499 standard defines a world of hardware-independent software components that can be “plugged” together to build applications, and distributed to the hardware architecture of choice, as defined by the user. Proven-in-use know-how (intellectual property) can be encapsulated into black boxes enabling new business models for automation.
However, delivering the promise of the IEC 61499 standard requires a widespread adoption. UniversalAutomation.org has been created for this purpose.
Developments managed by the association
The ongoing development of the runtime execution engine is managed by the members following shared source principles. Members act collectively, sharing technology development, insights, and information to create a common runtime execution engine. This lays the foundations for a market of “plug and produce” automation solutions.
The IEC 61499 standard will help industry have a common platform for different types of software functionalities in automation, allowing organisations to achieve a certain level of reliability and predictability, as well as increasing flexibility of production plants.
Valeriy Vyatkin Professor of Electrical Engineering at Aalto University