What is IEC 61131?

IEC 61131 is the international series of standards from the International Electrotechnical Commission (IEC) for programmable controllers, defining the hardware requirements, programming languages, software model and communication of PLCs. Its best-known part is IEC 61131-3, which defines the programming languages in which almost all PLC software in the world is written, from a conveyor in a distribution centre to the pump control of a sewage pumping station. The standard is therefore the technical foundation of industrial automation in manufacturing, energy, water and building automation.

Before IEC 61131, every vendor had its own language and programming style. The standard introduced uniform languages, standardised data types and modular building blocks, making it far easier for engineers to reuse and maintain knowledge and code. That also makes IEC 61131 a key standard for the convergence of IT and OT.


🧠 Which parts make up IEC 61131?

The series has ten parts. For engineers’ day-to-day work, part 3 is by far the most important; part 9 is better known as IO-Link.

Part Subject Explanation
IEC 61131-1 General information Definitions and functional characteristics of a PLC
IEC 61131-2 Equipment requirements and tests Electrical, mechanical and climatic requirements for PLC hardware and O
IEC 61131-3 Programming languages Languages, data types, program organisation units and software model
IEC 61131-4 User guidelines Technical report on selection and application
IEC 61131-5 Communications Communication functions between PLCs and other systems
IEC 61131-6 Functional safety Requirements for PLCs that form part of a safety function
IEC 61131-7 Fuzzy control programming Language elements for fuzzy logic
IEC 61131-8 Guidelines for applying the languages Technical report explaining part 3
IEC 61131-9 Single-drop digital communication interface (SDCI) Point-to-point link to sensors and actuators, known as IO-Link
IEC 61131-10 PLCopen XML exchange format Exchange of projects between engineering tools

🕰️ How has IEC 61131-3 evolved?

The standard was originally published as IEC 1131; when IEC standards were renumbered it gained the prefix 6. Part 3 has since been released in four editions:

Year Event
1992 Founding of PLCopen, an independent association headquartered in the Netherlands that promotes and extends the standard
1993 First edition of IEC 61131-3 (December) with five languages: LD, FBD, ST, IL and SFC
2003 Second edition with refinements and additional data types
2013 Third edition: object-oriented extensions (classes, methods, interfaces), namespaces and references; Instruction List is deprecated
2019 The PLCopen XML format becomes an international standard as IEC 61131-10
2025 Fourth edition (May): Instruction List is removed and UTF-8 text (USTRING and UCHAR) is supported

Annex B of the 2025 edition lists every feature that was added, removed or deprecated compared with the 2013 edition.


🔧 Which programming languages does IEC 61131-3 define?

Since the 2025 edition, IEC 61131-3 defines four languages: three graphical and one textual. Engineers often combine them in a single project, for example SFC for the step sequence, LD for interlocks and ST for calculations.

Language Form Strong at Typical application
Ladder Diagram (LD) Graphical, based on relay logic Discrete signals, familiar to electrical engineers Motor control, interlocks, start/stop logic
Function Block Diagram (FBD) Graphical, blocks connected by signal flows Continuous processes and control engineering PID control, HVAC, water treatment
Structured Text (ST) Textual, related to Pascal Calculations, loops, data structures, scalability Motion control, recipes, data handling
Sequential Function Chart (SFC) Graphical, steps and transitions Sequences and parallel branches Batch processes following ISA-88, CIP cleaning, packaging lines
Instruction List (IL) Textual, assembler-like Compact code on old hardware Deprecated since 2013, removed in 2025

Strictly speaking, the standard describes SFC as a set of elements for structuring programs and function blocks; the actions and transitions inside an SFC are themselves written in one of the other languages. A simple example in Structured Text:

IF Temperature > 80.0 THEN
    Alarm := TRUE;
END_IF;

Many vendors still support IL for existing projects, but for new code ST is the logical replacement.


🏭 How is the IEC 61131-3 software model structured?

Beyond the languages, IEC 61131-3 defines the software architecture: how programs are organised and executed on a controller.

Element Function
Configuration The complete system: resources, global variables and access paths
Resource A processing unit, comparable to a CPU
Task Determines when code runs: cyclically, at a time interval or on an event
Program The application logic assigned to a task
Function Block Reusable building block with its own memory (instance), such as the TON timer or CTU counter
Function Building block without memory, such as ADD or SQRT: the same input always gives the same output

Programs, function blocks and functions are together called program organisation units (POUs). The standard also defines strongly typed data types, from BOOL and INT to REAL, TIME, STRING and user-defined structures and arrays.

A PLC executes its program in a cyclic scan: read inputs, execute logic, write outputs and handle communication and diagnostics. This gives deterministic behaviour within real-time limits. Indicative cycle times:

Application Typical cycle time
Motion control Below 1 ms to a few ms
Machine control 1 to 20 ms
Process automation 50 to 500 ms
Supervisory logic towards SCADA 100 to 1,000 ms

On a Soft PLC or a runtime based on virtualisation under Linux or a hypervisor, latency and jitter become more important, because the operating system shares control of the timing.


🔄 Why does IEC 61131 differ between vendors?

IEC 61131-3 deliberately leaves room for implementation choices. Vendors decide which languages and features they support and add their own extensions:

Vendor Engineering environment
Siemens TIA Portal
Rockwell Automation Studio 5000
Beckhoff TwinCAT 3 (based on CODESYS)
Schneider Electric EcoStruxure Control Expert
Omron Sysmac Studio
Phoenix Contact PLCnext Engineer
CODESYS Group CODESYS, used by hundreds of hardware manufacturers

Differences lie in data type extensions, task scheduling, libraries, debugging features and the integration of motion and safety. Moving a program between platforms therefore almost always requires manual work. PLCopen narrows that gap with its XML exchange format (IEC 61131-10), standardised motion function blocks and tool certification.


🌐 How does an IEC 61131 controller communicate with IT and networks?

The PLC sits at the centre of an installation’s communication network. Common protocols are ProfiNET, IP, EtherCAT and Modbus TCP over industrial Ethernet, with Profibus as an older fieldbus. For links to higher layers such as historians, MES and ERP, OPC UA is increasingly used; PLCopen and the OPC Foundation have jointly mapped the IEC 61131-3 software model onto the OPC UA information model. For Industry 4.0 applications, PLCs also publish data via MQTT to edge and cloud platforms. Every additional connection increases the dependency between IT and OT, and with it the attack surface.


🏗️ Where is IEC 61131 used?

IEC 61131 controllers are found in almost every sector:

  • Manufacturing - conveyors, packaging machines, drives, robot cells and vision inspection, with data increasingly feeding AI applications
  • Water - pumps, valves, level control and chlorine dosing in treatment plants and pumping stations
  • Energy - switchgear, turbine and generator control, and cooling in data centres
  • Buildings - climate systems and energy management, linked to BACnet or KNX

🔐 How do you secure IEC 61131 programs?

IEC 61131 itself contains virtually no cybersecurity mechanisms: the standard dates from a time when control networks were isolated. Stuxnet showed in 2010 what that means: the worm replaced a Siemens Step 7 communication library on the engineering station, injected its own code into the OB1 and OB35 organisation blocks of S7-315 controllers and hid it from the engineer reading out the program.

Typical risks are unauthorised program changes, malware on engineering stations, tampered libraries and older PLCs without authentication, encryption or secure boot. Effective measures:

  • Network segmentation - PLCs and engineering stations in their own zones in line with IEC 62443
  • Access control - RBAC, password protection of projects and CPUs, and secure remote access
  • Code integrity - code signing, version control and whitelisting on engineering stations
  • Operating mode - keep the key switch or software setting in RUN or read-only outside maintenance windows
  • Secure coding - the Top 20 Secure PLC Coding Practices from 2021 describe how you build plausibility checks, cycle time monitoring and validation of HMI input into the PLC code itself
  • Change management - record every download in an audit trail, with offline backups

🛡️ How does IEC 61131 relate to functional safety?

IEC 61131-6 describes the requirements for a PLC that forms part of a safety function and refers to IEC 61508 for this. In practice a safety PLC is programmed with a restricted, certified subset of the languages, usually FBD or LD with certified safety function blocks. Sector standards such as IEC 61511 for the process industry and ISO 13849 and IEC 62061 for machinery add requirements for verification, validation, redundancy, fail-safe behaviour and lifecycle management. See also Functional Safety and Safety for the wider context.


🧭 How do you approach an IEC 61131 project in a structured way?

Large installations with hundreds of pumps and valves only stay maintainable with a fixed way of working:

  1. Build a library - standard function blocks per object type (pump, valve, motor, analogue measurement) with fixed interfaces for operation, alarming and diagnostics
  2. Choose the language per problem - SFC for sequences, ST for algorithms, LD or FBD for logic that maintenance technicians must be able to read
  3. Fix naming and structure - a coding guideline, for example derived from the PLCopen guidelines, with agreements on tags, comments and task layout
  4. Manage versions - projects under version control, comparing online and offline code before every download
  5. Test before commissioning - simulation or a soft PLC for unit tests, and a FAT with a process model
  6. Embed security - segmentation, hardening and change management as above, in line with IEC 62443 requirements

For Dutch organisations this is particularly relevant: many installations in critical infrastructure run on IEC 61131 controllers, and demonstrable control of PLC software is part of the duty of care of essential and important entities under the Dutch Cybersecurity Act (Cyberbeveiligingswet), which entered into force on 15 August 2026.


⚠️ What are the limitations of IEC 61131?

  • Limited portability - vendor extensions make moving between platforms laborious
  • Lagging software engineering practice - unit testing, package management and version control are not part of the standard and depend on the tooling
  • No security by design - security has to be added from the outside
  • Central, cyclic model - distributed, event-driven control fits less well; IEC 61499 was designed for that

📚 How does IEC 61131 relate to other standards?

Standard Relationship with IEC 61131
IEC 61499 Distributed, event-driven function blocks; reuses data types and ST from 61131-3
ISA-88 Batch model often implemented with SFC and function blocks
ISA-95 Integration of control with MES and ERP
IEC 62443 Security of the controller and the engineering environment
IEC 61508 Functional safety of programmable systems
OPC UA Standardised information exchange with PLC programs

Together with DCS and SCADA systems, these standards are the building blocks of a modern OT architecture.


❓ Frequently asked questions

What is the difference between IEC 61131 and IEC 61131-3?

IEC 61131 is the complete series of standards for programmable controllers, with ten parts covering hardware, communication and safety among other topics. IEC 61131-3 is the part that defines the programming languages and the software model. When engineers talk about “the standard”, they usually mean IEC 61131-3.

How many programming languages does IEC 61131-3 define?

Since the fourth edition of May 2025, IEC 61131-3 defines four languages: Ladder Diagram, Function Block Diagram, Sequential Function Chart and Structured Text. Instruction List was deprecated in 2013 and removed in 2025. Vendors often still support IL for existing projects.

Is IEC 61131 code portable between PLC brands?

IEC 61131 code is only partly portable, because vendors use their own extensions, libraries and task models. The PLCopen XML format of IEC 61131-10 makes exchanging project structures easier, but manual work is almost always still required. Platforms based on CODESYS are the most interchangeable with each other.

Which IEC 61131 language should you learn?

For new projects, Structured Text is the most versatile IEC 61131-3 language, because it suits calculations, data structures and object-oriented programming. Ladder Diagram remains important for troubleshooting and discrete machine control. In practice most projects combine two or three languages.

What is the difference between IEC 61131 and IEC 61499?

IEC 61131-3 describes cyclically executed programs on a single controller, whereas IEC 61499 describes event-driven function blocks that can be distributed across several devices. IEC 61499 builds on the data types and Structured Text of IEC 61131-3. The two standards coexist and do not replace each other.

Does IEC 61131 contain cybersecurity requirements?

IEC 61131 contains virtually no cybersecurity requirements; those are in IEC 62443. Security of PLC software therefore comes from network segmentation, access control, version control and secure coding. Stuxnet demonstrated in 2010 that manipulating PLC logic via the engineering station is a real risk.


📌 In summary

IEC 61131 is the international series of standards for programmable controllers, and part 3 defines the programming languages and software model used to program almost every PLC. With the fourth edition of 2025, IEC 61131-3 has four languages; because the standard contains no security, PLC software needs additional measures in line with IEC 62443.