Software Construction Guidelines

Although there are guidelines for many programming languages, these are nearly non-existent for the important area of industrial control, e.g. IEC 61131-3 and its PLCopen extensions.
Nevertheless, the software in the industrial environment becomes more and more important, the software projects are larger, and the costs of errors increase. Software nowadays absorbs half of the initial project costs and between 40 and 80% deals with maintenance over the life cycle costs of the software. In order to deal with the complexity of larger programs one needs modern software development processes supporting a structured approach. Also, we need to increase the efficiency in coding via re-use of pre-defined functionalities and to help to better understand the program over the life cycle.
PLCopen contributes to this goal with their Software Construction Guidelines. The key topic is the definition of Rules, Coding Patterns and Guidance, and how to use them in Industrial Automation. Nowadays large automation companies have their own rules but many mid-size companies or IEC 61131-3 beginners are very interested in using PLCopen guidelines. Such guidelines also have a great impact in expanding IEC 61131-3 further in the world.
The documents are based on the IEC 61131-3 1st and 2nd edition, but should be easily extensible to the 3rd and 4th edition of the standard.
So far six documents have been published:
- PLCopen Coding Guidelines (including naming conventions and rules)
Defines a set of rules and provides a PLCopen proposal how these rules can be used. The rules are very useful to train users and can be a good basis for universities to help them teach IEC 61131-3 programming more efficiently. This document was released in 2016.
- Creating PLCopen Compliant Libraries
One of the best outcomes of the PLCopen specifications for Motion Control, Safety and Communication is the definition provided for function block input and outputs. This provides a clear and concise shell as a starting point when considering the type of application level function to be created. For this two main function block categories are specified: the Execute and the Enable model. The goal of this document is to extend these to fit other application areas, and helping users to specify and implement consistent sets of FB libraries for their own usage. The document was released in 2017.
- PLCopen Structuring with SFC do’s and don’ts
This document explains the advantages of Sequential Function Chart, SFC. This is a very expressive graphic formalism of the IEC 61131-3 standard. It is not considered a programming language as it needs other languages to express transition conditions and actions. The document is available since 2018.
- PLCopen Guidelines for Object Oriented Programming
The 3rd edition of the IEC 61131-3 standard enables the usage of Object Oriented Programming. Parallel to this, PLCopen has defined the concept of function block libraries including object orientation, as well as sets of function blocks for Motion Control, Safety and Communication. The document was released in 2021.
- PLCopen Application Examples for Motion Control - Porting "Function blocks for motion control" into OOP
This document presents an object-oriented implementation of the PLCopen Motion Control specification, which can be combined with the set of procedural standard Function Blocks (FBs). Published in 2022.
- PLCopen Guideline on Software Quality Metrics
PLCopen recognizes the ever-increasing importance of software in industrial automation and control. In order to evaluate the quality of software and to be able to improve the efficiency of this during the standard workflow, this document was developed and published in 2023.
Read more on
Creating PLCopen Compliant Libraries
PLCopen Structuring with SFC do's and don'ts, and
PLCopen Object Oriented Programming
You can download the PLCopen Software Construction Guidelines as pdf. We would appreciate your comments and ideas on it, especially on the usability for you.
Download the PLCopen Software Construction Guidelines