What Is IEC 61131-3?

IEC 61131-3 is the third part of the IEC 61131 standard for programmable controllers, published by the International Electrotechnical Commission. It defines five programming languages for PLCs (Programmable Logic Controllers) and DCS (Distributed Control Systems), along with a programming model (programs, function blocks, tasks, and resources) designed to promote portability between different vendors' systems.

Before IEC 61131-3, every PLC manufacturer had a proprietary programming language and IDE. A programmer who knew Allen-Bradley ladder logic could not easily work on a Siemens or Omron PLC. IEC 61131-3 created a common vocabulary and language framework, though implementation varies between vendors.

Language 1: Ladder Diagram (LD)

Ladder Diagram is the most widely used PLC language, especially in North America. It uses a graphical representation inspired by relay logic — horizontal "rungs" on vertical power rails, with contacts (inputs) on the left and coils (outputs) on the right. If all contacts on a rung are "energized" (their conditions met), the coil on the right activates.

Ladder is intuitive for electricians and technicians familiar with relay panel wiring. It excels at discrete (on/off) logic, interlock programming, and safety logic. Most machine builders in North America use ladder as their primary language.

Language 2: Structured Text (ST)

Structured Text is a high-level text-based language similar in syntax to Pascal or C. It supports IF-THEN-ELSE, WHILE, FOR, CASE statements, and complex mathematical expressions. This makes it ideal for PID calculations, recipe management, complex data transformations, and any logic that would require dozens of rungs to express in ladder.

ST is increasingly popular among engineers with software backgrounds and is the preferred language for complex computational tasks in both PLC and DCS environments. It is also the primary language in IEC 61131-3 compliant motion control systems.

Language 3: Function Block Diagram (FBD)

FBD is a graphical dataflow language where function blocks (rectangular boxes with inputs on the left and outputs on the right) are connected by signal lines. Data flows from left to right through the network of blocks. Standard function blocks include AND, OR, NOT, timers, counters, PID controllers, and custom user-defined blocks.

FBD is especially popular in process control and DCS environments where the control philosophy maps naturally to a dataflow representation. PID loops, signal conditioning chains, and cascade control schemes are all natural fits for FBD.

Language 4: Instruction List (IL)

Instruction List is a low-level, assembly-like text language. It operates on an accumulator register with instructions like LD (load), AND, OR, ST (store), and ADD. IL is rarely used for new development today — it was primarily used by early PLC programmers from an assembly language background. IEC 61131-3 Edition 3 (2013) deprecated IL, though it remains in many legacy programs.

Language 5: Sequential Function Chart (SFC)

SFC is a graphical language that describes a control process as a state machine — a sequence of steps connected by transitions. Each step contains actions (written in LD, ST, or FBD); each transition has a condition that must be true to advance to the next step. SFC is ideal for batch processes, machine sequences, and any control logic that follows a defined procedural order (fill the tank, heat it, agitate, drain, rinse).

Choosing the Right Language

Most modern PLC IDEs support all five languages and allow mixing within a project. Ladder for interlocks and safety; ST for math and data processing; FBD for PID loops; SFC for batch sequences. Use the language that best expresses the control philosophy for each part of the program — the goal is readable, maintainable code, not adherence to one language.