September/October 2012
System Integration

IEC 61131-3 industrial control programming standard advancements

The IEC 61131-3, along with PLCopen extensions, continues to advance industrial automation software standardization

Fast Forward

  • Programming standards enable automation systems to be more reliable and maintainable.
  • Quality, efficiency, and increased automation are the driving forces behind the adoption of software standards.
  • The value of standards is worth the time and yields benefits for years.
By Bill Lydon

IEC1The IEC 61131-3 industrial programming standard, along with PLCopen extensions, continues to advance industrial programming, adding new functions to support the digital factory. Industrial controllers are at the heart of every application, and programming control systems consume more non-recurring engineering hours than almost any other task. Quality, efficiency, and the need to achieve higher levels of automation are the driving forces behind the adoption of software standards in all areas of computing, including industrial automation. In the early 1990s, the International Electrotechnical Commission (IEC) ( began developing the IEC 61131 standard for programmable logic controllers (PLCs) that today consists of eight parts, encompassing everything from hardware and test protocol to communications. In particular, IEC 61131-3 defines a modular PLC programming environment with key features of flexibility and reusability. Widely available engineering software based on the IEC 61131-3 standard provides an integrated design environment for engineers to simulate, program, debug, and develop human-machine-interface screens in a single software platform with the program and documentation automatically generated in the process. This dramatically increases applications development productivity and lowers maintenance cost. The IEC 61131-3 standard continues to be refined and improved with PLCopen extensions based on industry needs.


IEC 61131-3 defines the syntax of a programming language. IEC 61131-3 specifies the logical structure of a programming language, including naming conventions (I/O, variable, data types), defined data types, task structure, task scheduling, task execution control, five programming languages, and execution flow control, including program execution, triggers, and scheduling. The standard defines five programming languages: function block, instruction list, ladder diagram, sequential flowchart, and structured text. Users can easily extend the language by building their own functions or function blocks, using the IEC 61131-3 languages. More flexibility is provided by many vendors that provide information and utilities for user to create functions written in C code that conform to IEC 61131-3 standards. This flexibility is a big advantage since all of these programming tools can be used in a single application program to solve application challenges. Functions that are part of the standard include:

  • Digital - Gates, Flip-Flops, Bit Manipulations
  • Analog - Filters, Scaling, Analog Gates, Max/Min
  • Math - Integer/Floating Point, SIN, COS, Log
  • Process Control - PID, TOD
  • Ladder Logic - Contacts, Coils, Timers
  • Flow Chart - Process, Decision, Synchronize
  • Data - Arrays, Case Statements, Defined Data Types, Bit/Byte/Word Manipulation

Controls that conform to the IEC 61131-3 and PLCopen extensions provide a common look and structure for programs to improve efficiency and provide consistent documentation. The new XML interchange standard (described later in this article) enables application portability between control brands and advanced software modeling and simulation tools.


The PLCopen is a not-for-profit, vendor- and product-independent worldwide trade organization founded in 1992 to extend the IEC 61131-3 standard, provide certifications and benchmarking tools, and define training requirements, guidelines, and other functions. PLCopen is headquartered in The Netherlands with supporting offices in the U.S., Japan, and China. The core activities of PLCopen are focused around IEC 61131-3, the only global standard for industrial control programming. It harmonizes the way people design and operate industrial controls by standardizing the programming interface, allowing people with different backgrounds and skills to create different elements of a program during the software lifecycle, including specification, design, implementation, testing, installation, and maintenance.

PLCopen is working with the automation community to define extensions to the IEC 61331-3 standard. Technical committees accomplish this with participation by suppliers, users, and educational institutes. There have been a number of functions added as a result of these activities, including the Motion Control Library, Safety, XML interchange, Reusability Level, and Conformity Level. The following are notable PLCopen standards.


Motion control

PLCopen, working with member vendors and users, has defined motion function blocks that provide standards to reduce cost, simplify training, and lower engineering costs. This standardization makes programming motion control applications less hardware-dependent and enables application logic to be reused for greater efficiency. There are currently six parts to the motion standard defining standard function blocks for use in a wide range of applications, including machine control, process automation, and off-road equipment controls. The motion control standard includes:

  • Part 1 - PLCopen Function Blocks for Motion Control
  • Part 2 - PLCopen Motion Control - Extensions, which is merged with Part 1 in the new release 2.0
  • Part 3 - PLCopen Motion Control - User Guidelines
  • Part 4 - PLCopen Motion Control - Coordinated Motion
  • Part 5 - PLCopen Motion Control - Homing Extensions
  • Part 6 - PLCopen Motion Control - Fluid Power Extensions

Fluid power is a more recent addition that allows nonprogrammers with fluid power and hydraulic backgrounds to program control with familiar symbols and concepts.



PLCopen, together with its members and external safety-related organizations, has defined safety functions within the IEC 61131-3 framework. This combination helps developers integrate safety-related functionality using structured design methods into their systems from the beginning of the development cycle. Also, it contributes to the overall understanding of safety, as well as certification and approval from independent safety-related organizations. This simplifies project development to conform to safety-related standards and supports the trend away from hardwired safety systems to integrated systems, using safety-approved digital communication buses. PLCopen incorporates new data types to support safety, including SAFEBOOL and SAFExx variables.



PLCopen has jointly developed the PLCopen - OPC UA function block with the OPC Foundation that includes data models to simplify the interface between controllers and business enterprise systems.

OPC UA is emerging as a fundamental technology for implementing digital factory concepts to increase production efficiency. This was reinforced at a half day session during the 16th Annual ARC World Industry Forum Conference in February 2012, organized by ARC and Tom Burke, president of the OPC Foundation ( The session, "Transforming Manufacturing with OPC UA: From Embedded to the Enterprise," featured a number of presentations reinforcing the value of OPC UA. OPC UA technology provides an efficient and secure infrastructure for communications from sensor to business enterprise computing for all automation systems in manufacturing and process control. OPC UA is leveraging accepted international computing standards, putting automation systems on a level playing field with the general computing industry. OPC UA employs a common computing industry standard, Web Services, which are the preferred method for system communications and interaction for all networked devices. The World Wide Web Consortium (W3C, defines a web service as "a software system designed to support interoperable machine-to-machine interaction over a network." The first demonstration was at the 2010 Hannover Fair, where SAP Corporation demonstrated the use of the standard in a multivendor demonstration with connections to controllers and SCADA systems.

Using the PLCopen OPC UA object control engineers specify data required, and the function block communicates information between the control level, MES systems, and enterprise systems using the OPC UA standard. This provides an easy way to take advantage of the new OPC UA/ISA95 Companion Specification, which is being developed based on the B2MML interface standards, enabling real-time access to critical data that serves as a bridge between the slow speed and occasional access requirements of corporate systems and high-speed requirements of Manufacturing Operations Management systems. B2MML is an XML implementation of the ANSI/ISA95 series of standards, known internationally as IEC/ISO 62264. B2MML consists of a set of XML schemas, written using the World Wide Web Consortium's XML Schema language, that implement the data models in the ISA95 standard ( This is envisioned as a way to drive integration costs down and improve production operations in a much more efficient manner.


XML interchange

The PLCopen XML standard provides an open, non-proprietary, software interface for the interchange of industrial and process control programs between controls, Product Life Cycle Management, machine & process simulation software, CAD, documentation software, and other systems. In the past, this has been accomplished with proprietary interchange protocols. The PLCopen XML standard enables portability of programs created for one vendor's controls and using them on another vendor's control. There is also a growing trend to design and simulate controls in software and then automatically generate the controller code. In both cases, this is accomplished using the PLCopen XML standard interchange to create the code for target controllers. The PLCopen XML schemas and documentation, as well as an introduction, are available free at The downloadable files include a 156-page explanation of the PLCopen XMLSchema, a 58-page document on XML Formats for IEC 61131-3, and XML Schema files. The PLCopen XML standard has also gained acceptance by the AutomationML organization


PLCopen provides training requirements and material for developing training. The objectives of the training guidelines are to educate engineers who create programs according to IEC 61131-3 and help them understand the practical advantages of the standard (i.e., documentation and program structure). Information is available on the PLCopen website.

Use cases

IEC 61131-3 with PLCopen extensions are the building blocks to develop application standards built around use cases to increase automation productivity and efficiency. A use case defines interactions between equipment, control, automation, and users to achieve a goal. The software industry has learned the value of employing use cases and structured design to significantly improve application reliability, modifiability, reusability, and maintainability. Studies of software maintainers have shown approximately 50% of their time is spent in the process of understanding the code that they are to maintain. Currently, the best industry use-case example involves the packaging machine standards from the Packaging Workgroup, part of OMAC ( These types of standards follow the principles of structured design methods to improve quality and lower labor hours required for programming, configuration, commissioning, startup, interface cost, and maintenance. This standard draws on ISA88 and other standards rather than reinventing redundant logic, framework, and concepts.

The complexity of control, automation, and interaction with enterprise systems, including quality, production, asset management, and logistics, is requiring much more sophistication of systems and dramatically increased interaction. This has created the need in many companies to have a great deal of custom control, automation, and business software to make systems work together. These custom approaches are expensive to create and maintain. Standardization is also important for ease of maintenance, even for people that wrote the application, since their own code can look unfamiliar to them in a few months.

There are many details that should be understood and handled in a good functional design and questions that need to be considered, such as:

  • What is the input data?
  • What data is valid, and what data is invalid?
  • What error detection and error messages are required?
  • What assumptions are possible?
  • What is the form of the output(s)?
  • What documentation is necessary?
  • Examine Fail-Safe Logic (May be more labor than the core application)
  • Extensive testing of the logic

IEC 61131-3 and PLCopen standards make it easy to handle all these questions and encapsulate solutions, making them easy to broadly apply.

The OMAC packaging standards have taken time to develop. Creating a standard for batch management that led to the development of ISA88 was an earlier application of this thinking that has become common. There are certainly other areas where this level of standardization can be applied and is far superior to everyone "reinventing" the same basic solution over and over again.

Standards typically take a long time to evolve and be accepted. The value of standards is worth the time and yields benefits for years. What industry has ever embraced standards and later gone back to closed architecture?


Bill Lydon, chief editor of InTech and, has a wide range of control and automation experience including design engineering, application engineering, and business. Lydon is North American representative of PLCopen and a member of the OMAC PackSoft subcommittee.