Summary
At the 28th annual ARC Industry Leadership Forum in Orlando, Control Software Standards proved to be an important piece of the discussion, particularly IEC 61131 and IEC 61499.
At the 28th annual ARC Industry Leadership Forum in Orlando, Control Software Standards proved to be an important piece of the discussion, particularly IEC 61131 and IEC 61499, which are part of the IEC (International Electrotechnical Commission) TC65 Industrial-process measurement, control and automation standards.
IEC TC65 international standards for systems and elements used for industrial process measurement, control and automation standardization activities include integration of components and functions into industrial systems such as safety and cybersecurity. The developing process automation O-PAS™ Standard, part of The Open Group, has specified IEC 61131 and IEC 61499.
Architecture
Architecture
IEC standards have enabled the use of standard industrial computers and embedded CPUs to implement control and automation with standard IEC languages. The basic architecture consists of a control and automation Integrated Design Environment (IDE), runtime control engine, I/O drivers and communications drivers. Users create an application in the IDE, and in a most platforms perform basic simulation functions, automatic program documenting and online debug functions.
The program created is downloaded to a target control execution engine code in an edge platform that runs the user created program. Traditionally, the edge platform has been proprietary PLCs (Programmable Logic Controllers) and proprietary DCS (Distributed Control System) controllers. Today, a wide range of options are available, including industrial computers, Systems on a Chip (Soc) and embedded processors.
IEC 61131
The IEC 61131 was first published in 1993, and the current version was published in 2013. IEC 61131 has been widely adopted throughout the world, as illustrated by the number of certified vendors listed on the PLCopen website. The IEC 61131-3 standard defines five programming languages for control & automation programming: Ladder diagram (LD): A graphical language that represents electrical relay logic, functions (i.e. Timers, counters, PID controllers, communications and analytics.
- Function block diagram (FBD): Visual drag and drop programming.
- Structured text (ST): A high-level language structured and syntactically similar to other computer programming languages. Functions include IF-THEN-ELSE, mathematical (I.E. square root, transcendental) case statements, array, structures and data transformation functions.
- Sequential function chart (SFC): Program flow control (i.e. machine control, packaging machines, batch process control – ISA88 A common language for PLC programmers.
- Instruction list (IL): lightweight programming language for applications with limited CPU and memory.
Important features
Functions including user defined have inputs and outputs with strong data types. IEC 61131 data type syntax includes Boolean, integer, real, string, array, structures and user-defined functions.
OPC UA data mapping and function blocks.
The user can create functions and function blocks using Ladder diagram (LD), Structured text (ST), Instruction list (IL), and in many implementations using standard programming languages (i.e. C/C+, Python)
Most IDE implementations include engineering tools that allow users to connect field control engines for online debugging including breakpoints, watch windows, strip chart recorders, trend graphs and integrated HMI.
Embedded applications
Embedded applications
IEC 61131 is enabling Industry 4.0 & Industrial Internet of Things with the application of embedded processors inside of motor drives, vision cameras, packaging machines, weigh scales and other industrial end devices. The functions previously performed in a PLC or DCS controller are done within industrial end devices. Suppliers of software for these implementations include: Straton, CODESYS GmbH , GEB Automation; and Phoenix Contact.
PLCopen
PLCopen
The PLCopen organization supports the IEC 61131 standard and extends it with certified functions created by the control & automation community with members representing various industries. PLCopen, founded in 1992 and headquartered in The Netherlands with supporting offices in the USA, Japan and China, is an independent worldwide organization advancing efficiency in industrial automation based on the needs of users.PLCopen and its members concentrate on technical specifications around the IEC 61131-3 standard to reduce costs in industrial engineering. Results include standardized libraries and certifications for different application fields; harmonized language conformity levels; engineering interfaces for exchange; and transparent communication.
Experts of the PLCopen members are organized into various technical committees, and together with end users, they define such open standards. OPC UA and XML program interchange formats supporting IEC development are important activities. Users are synchronizing and managing distributed IEC 61131 applications by using OPC UA controller to controller communications. Applications are designed so that they are not tightly integrated and independent of system network performance. More recently, The OPC foundation demonstrated controller to controller communications between 20 vendors using the OPC UA FX (Field eXchange) standard.
IEC 61499
The international standard IEC 61499 was initially published by the International Electrotechnical Commission (IEC) in 2005. The specification of IEC 61499 defines a generic model for distributed control systems and is based on the IEC 61131 standard. In IEC 61499, the cyclic execution model of IEC 61131 is replaced by an event driven execution model. IEC 61499 enables an application-centric design, in which one or more applications, defined by networks of interconnected function blocks, are created for the whole system and subsequently distributed to the available devices. All devices within a system are described within a device model. The topology of the system is reflected by the system model. The distribution of an application is described within the mapping model. Therefore, applications of a system are distributed but maintained together.
Like IEC 61131-3 function blocks, IEC 61499 function block types specify both an interface and an implementation. In contrast to IEC 61131-3, an IEC 61499 interface contains event inputs and outputs in addition to data inputs and outputs. IEC 61499 defines several function block types, all of which can contain a behavior description in terms of service sequences.
Execution Models IEC 61131 and IEC 61499
Execution Models IEC 61131 and IEC 61499
The IEC 61131 program execution model is deterministic, and IEC 61499 has an event driven execution model that is defined by the user as a build program. IEC61131 deterministic cycle reads inputs, resolves program logic defined by the user, and writes outputs. IEC 61499 has an event driven execution model where users writing program logic explicitly defined execution sequence. The event driven IEC 61499 execution model creates a level of complexity that needs to be managed as applications become larger. The current O-PAS testbeds are relatively lightweight applications and have been using both IEC 61131 and IEC 61499 successfully.
IEC 61499 Distributed Model
IEC 61499 Distributed Model
IEC 61499 models a distributed control system allowing automation applications to run across networks independent of the underlying hardware. This can be an advantage but is more complicated because the network bandwidth, quality of service (QoS) and reliability become important considerations for control availability, reliability and automation performance. Communication between nodes of control is a point of weakness I noticed in early IEC 61499 implementations.
IEC 61499 is not deterministic because the execution prioritizing mechanisms are event triggers to initiate operations, but this does not address performance and guaranteed response. The IEC 61499 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.
Processors and networking technologies have advanced significantly allowing selection of higher power computing platforms and network technologies.
Performance
Performance
Industrial controller performance is not a simple issue in a closed proprietary PLC or DCS controller; it’s even more complicated when using open platforms. Closed PLC and DCS controllers use real-time operating systems to achieve responsiveness and reliability. The hardware and firmware designs are optimized to meet performance requirements. Open industrial computer platforms and operating system software come in a variety of configurations and performance that need to be matched to the control and automation application performance requirements.
Using open software solution for the IEC 61131 or IEC 61499 runtime engine requires it to be targeted to specific real-time operating system. This is common for all computer programming languages to run on various operating system platforms (i.e. Microsoft Windows, Chrome, Linux, Android and Raspberry Pi).
Eclipse 4DIAC
Eclipse 4DIAC
The Eclipse Foundation 4diac project created an open-source IEC 61499 software provided under Eclipse Public License, Version 2.0. The 4diac open standard includes these three aspects:
1. 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 for general computer 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.
2. 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++. Supported operating systems include: eCos, NET+OS 7, Posix: Cygwin, Linux (i386, PPC, ARM), rcX, VxWorks, PikeOS, Windows and freeRTOS.
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.
3. 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.
UniversalAutomation.org
UniversalAutomation.org
Announced November 2021, UniversalAutomation.org organization was formed and has a bold strategy to achieve multivendor industrial program portability and interoperability with a single IEC 61499 runtime code available to members in good standing. UniversalAutomation.org is an independent, not-for-profit association managing the implementation of an industrial automation shared source runtime, based on the IEC61499 interoperability standard. To help launch the organization, Schneider Electric donated the nxtControl IEC 61499 runtime engine code. The goal is to achieve industrial application program portability and interoperability between controllers.
Runtime engine code
Runtime engine code
Portability and interoperability are accomplished by members all using the UniversalAutomation Organization IEC 61499 runtime code under strict configuration control. This code is shared-source rather than open-source with strict configuration control achieve by members agreeing to the UniversalAutomation Shared Source licensing agreement that unlike open-source software, prohibits members from making changes independently. Governance of proposed changes and additions to the UniversalAutomation.com IEC 614 99 runtime code will be made by the organization’s voting members. The initial UniversalAutomation.org runtime engine is the Schneider Electric has licensed the nxtControl IEC 61499 Runtime Engine Code royalty free to the organization.
UniversalAutomation.org members are licensed to use the organization’s proprietary IEC 61499 runtime code in products as long they maintain with annual monetary contribution to the organization.
For more details, see the following related article on Automation.com: UniversalAutomation.org Launched to Achieve Multivendor Industrial Control Program Portability:
IEC 61499 Editor
IEC 61499 Editor
Deploying systems requires UnvisersalAutomation.org members to independently develop an IEC 61499 Editor supporting the UniversalAutomation.org runtime engine. The organization does not intend to create an IEC 61499 editor or compiler. The organization plans to define a set of rules and syntax that designers at member companies will use to create compilers compliant with the UniversalAutomation.org IEC 61499 runtime engine code.
John Conway, UniversalAutomation.org’s president, said that today, the quickest way to have an IEC 61499 editor that works with the UniversalAutomation.org runtime engine code is to license Schneider Electric’s EcoStruxure Automation Expert editor software.
Realtime Linux
Realtime Linux
At ARC, I heard a great deal of discussion about running control on the real-time Linux platform, which is a bit of a misnomer. During ARC, Schneider Electric, Intel and Red Hat published a joint press release announcing a Distributed Control Node (DCN) software framework, “Aligned with the goals of the Open Process Automation Forum (OPAF).”
Based on my experience with real-time operating systems for control, I had some questions. Red Hat’s Francis Chow VP/GM clarified this for me, explaining that real-time is a relative term. In a blog post, he noted, “Please note that I avoid the term ‘real time,’ which requires specialized Real Time Operating Systems (RTOS). Instead, the best term to use is ‘predictable latency.’”
This is an age-old problem, and an open platform still must be carefully managed. Running multiple LINUX containers on the DCN with control, analytics, optimization, short-term time series historic database, and other applications could create serious performance issues. Using the term “predictable latency” another concern is properly servicing industrial I/O network communications deterministically with high quality of service.
Benchmarking
Benchmarking
I support open system initiatives, but there is a lot of work to do to achieve performance and reliability offered by today’s proprietary systems. Predictable performance of real-time controllers is complex impacted by many factors including:
- Operating System communications and timely servicing real-time event interrupts with minimum context switch time. Context switch time is the time spent between two processes in a real-time operating system (RTOS). It’s an important metric that affects system determinism and performance. Context Switching involves storing the context or state of a process so that it can be reloaded when required and execution can be resumed from the same point as earlier. This is a feature of a multitasking operating system and allows a single CPU to be shared by multiple processes.
- Communications interfaces. Today’s communications chips provide a great deal of functions that offload many tasks that had been performed by CPUs in the past creating more responsive systems.
- Industrial control & automation applications performance are impacted by many factors such as process dynamics, disturbances, process uncertainties.
Big questions
Big questions
- The O-PAS test beds are important to test and validate concepts, hardware, software and system integration. When will detailed results and findings be shared and published publicly?
- The case study O-PAS vs. traditional DCS presented at the ARC 2024 Orlando conference reported significant 52% savings in hardware and software cost for a 14,000 I/O point DCS application. The big is open question: does this design meet the performance requirements of a real-world application?
- When will there be O-PAS DCN tools for control & automation examples for benchmarking configurations before field deployment?
- When will systems based on the Open Process Automation Forum standard be a sensible investment for mainstream applications in process companies? It is hard to tell how close or far away O-PAS is from the tipping point for success or failure.
About The Author
Bill Lydon is a Digital Manufacturing Transformation Industry 4.0 Consultant available for consulting and advisory projects. See his website for more information. Lydon has 35 years of experience designing and applying technology in the automation and controls industry. He started his career as a designer of computer-based machine tool controls; in other positions, he applied programmable logic controllers (PLCs) and process control technology.
Working at a large company, Lydon served a two-year stint as part of a five-person task group that designed a new generation building automation system including controllers, networking and supervisory & control software. He also designed software for chiller and boiler plant optimization. Bill was product manager for a multimillion-dollar controls and automation product line and later cofounder and president of an industrial control software company.
Did you enjoy this great article?
Check out our free e-newsletters to read more great articles..