IEC 61131-1 General information
Definitions, scope, classification of PLCs.
IEC 61131 is the international standard for programmable logic controllers. Part 3 standardizes the 5 programming languages used in industrial automation (LD, FBD, SFC, ST, IL), enabling code portability between PLC platforms and a shared vocabulary for automation engineers worldwide.
IEC 61131-1 Definitions, scope, classification of PLCs.
IEC 61131-2 Hardware requirements : environment, EMC, mechanical, electrical safety.
IEC 61131-3 THE famous part. Defines 5 programming languages (Ladder Diagram LD, Function Block Diagram FBD, Sequential Function Chart SFC, Structured Text ST, Instruction List IL — deprecated 2013). Plus data types, POUs (Program Organization Units), tasks.
IEC 61131-4 Selection and application of PLCs (informative).
IEC 61131-5 Cross-PLC messaging concepts (largely superseded by OPC UA in practice).
IEC 61131-6 Safety-related aspects when using PLCs in safety applications (links to IEC 61508).
IEC 61131-7 Niche : fuzzy logic standardization. Rarely used.
IEC 61131-8 Best practices for IEC 61131-3 language usage.
IEC 61131-9 Standardizes IO-Link, the dominant smart sensor / actuator protocol in modern factories.
IEC 61131-10 PLCopenXML : standard XML schema for storing IEC 61131-3 programs. Enables vendor-neutral program exchange.
(POU) Industrial automation in the 1970-80s was a Tower of Babel : every PLC vendor (Modicon, Allen-Bradley, Siemens, Mitsubishi, Omron, Telemecanique…) had their own programming language, their own development environment, their own concept of memory addressing. A trained Siemens engineer could not work on an Allen-Bradley PLC without months of retraining.
IEC 61131-3 (1993, major revision 2013) settled this. The 5 languages it defines are now supported by every major PLC vendor in some form. Engineers can move between platforms with vocabulary intact. Code patterns are portable in principle (in practice, vendor-specific extensions still create lock-in).
Each addresses a different engineering tradition :
Electricians Process engineers Programmers
╲ ╱ ╱
╲ ╱ ╱
╲ ╱ ╱
[LD] relay schematic [FBD] block diagram [ST] Pascal-like
Process engineers
[SFC] state machine
↘ (IL was IL : assembly-like, deprecated 2013)
A modern industrial program typically MIXES :
This multilingual code is normal IEC 61131-3 practice, not a sign of confusion.
Portable : data types, basic algorithms, simple function blocks, standard motion FBs (PLCopen MC).
Not portable :
This means PLCopenXML import/export (Part 10) gives you ~70% of an automation project ; the rest still needs vendor-specific configuration. For a fully vendor-neutral codebase, CODESYS is the practical leader — its runtime is licensed by ~50 PLC manufacturers (Beckhoff, WAGO, Lenze, ABB, etc.) and provides genuine cross-platform portability.
Standard PLCs are NOT safety-rated. For safety functions, you need a safety PLC (Pilz PNOZ, HIMA HIMax, Siemens S7-1500F, Allen-Bradley GuardLogix, Beckhoff TwinSAFE) that combines :
Modern safety PLCs are programmed in IEC 61131-3 with safety extensions, so the engineer’s experience is unified. But the safety code is separately certified at the toolchain level (TÜV / exida certification of the IDE + runtime + hardware platform).
Edition 3 (2013) added object-oriented features : METHODS on Function Blocks, INTERFACES, INHERITANCE. This brought PLC programming closer to modern software engineering practices, but adoption is uneven :
For new projects, using OOP carefully (avoiding inheritance complexity but using methods + interfaces for testability) is now a recognized good practice. Older “all-global-state” PLC code is increasingly viewed as legacy.