IEC 61131-3 Standard
This section aims to explain the background of the standard, it's purpose and key elements.
IEC 61131-3 is part of the IEC 61131 series, which is an international standard for programmable logic controllers (PLCs). Specifically, IEC 61131-3 focuses on the programming languages for PLCs, offering a standardized approach to the programming and structuring of control and automation software.
This standardization is crucial for ensuring compatibility, interoperability, and efficiency in the development of industrial automation systems.
INFO
The mutexer platform is aiming to modernise industrial automation but also adheres to the IEC 61131-3 standard in place. The aim is to allow any computer to function like a programmable logic controller (PLC) but without all the cost, complication and vendor lock that is seen today.
INFO
There have been three versions of the IEC 61131-3 Standard. The first was in 1993, the second was in 2003 and the latest was published in 2013. The standard is not publicly available and must be purchased directly from the IEC.
Purpose
The primary purpose of IEC 61131-3 is to provide a clear, consistent framework for the programming of PLCs, which are widely used in industrial applications for control and automation tasks.
By standardizing the programming languages and methodologies, IEC 61131-3 aims to:
Enhance Portability: Facilitate the transfer of programs between different PLCs and systems by standardizing programming languages and constructs.
Improve Interoperability: Enable components and systems from different manufacturers to work together more seamlessly.
Reduce Development Time: Simplify the design, implementation, and maintenance of control programs, thereby reducing development time and costs.
Foster Innovation: Provide a solid foundation upon which new technologies and methodologies can be developed, while still maintaining compatibility with existing systems.
Languages
The standard defines five programming languages, two textual and three graphical, that cater to various programming preferences and application requirements:
TIP
Each languages caters to a different need. For example Ladder and Function Block diagram are for readability and easy troubleshooting while Structured Text is more geared for compactness and execution speed.
Instruction List (IL): A low-level, assembly-like language. (As of the latest versions, IL and ST are often considered together, with ST being more prominently used).
Structured Text (ST): A high-level language similar to Pascal, C, or Ada, suitable for complex algorithms and data processing.
INFO
Currently the mutexer platform supports Structured Text programming language only.
Ladder Diagram (LD): A graphical language that represents circuits and control logic in a form that resembles electrical relay logic.
Function Block Diagram (FBD): A graphical language that uses blocks to represent functions and connections between them, suitable for expressing control logic and data flow.
INFO
Future plans are for the mutexer platform to support both Ladder and Function Block diagram.
Sequential Function Chart (SFC): A graphical language that depicts the sequence of operations in a program, making it ideal for complex control processes and sequential decision making.
Key Information
Further to the languages that are supported the standard covers other key concepts such as supported data types and how programs are organised and run.
Program Organization Units (POUs): It introduces the concept of POUs, which can be programs, functions, or function blocks. This structuring helps in organizing code in a modular and reusable manner.
Variables and Data Types: Standard data types are defined (e.g., INT, REAL, BOOL), along with the notion of derived data types, allowing for complex data structures to be created and manipulated.
Execution Control: It provides mechanisms for controlling the execution of programs, including task management and event-triggered execution.