← SCADA Studio
Engineering·8 min read·May 25, 2025

💻 IEC 61131-3: The Five PLC Programming Languages Explained

A practical guide to IEC 61131-3 — the international standard that defines the five PLC programming languages: Ladder Diagram, Structured Text, Function Block Diagram, Instruction List, and Sequential Function Chart.

📖PLC Programming, Wiring, Process Control & Instrumentation — Illustrated Guide (Full Access)
View →

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.

Topics covered

IEC 61131-3PLC programmingladder logicstructured textfunction block diagramSCADA programming
Share

🛠️ Related Tools

📚 Continue in the SCADA Studio

📝

SCADA/ICS System Architecture — Practice Exam 2

✨ Premium Content

Go beyond the free practice questions with a full-length paid exam bank.

🎓

Industrial Controls Project — Start to Finish (Full Access)

✨ Premium Content

A structured, paid professional training program for this discipline.

📖

PLC Programming, Wiring, Process Control & Instrumentation — Illustrated Guide (Full Access)

✨ Premium Content

A zoomable interactive reader — free preview, then unlock the full set.

🧮

Hot Standby vs. Cold Standby

✨ Premium Content

A paid interactive calculator or 3D simulator for this discipline — part of the All-Access Pass.

⚙️

Also explore the Industrial & Systems Engineering Studio

A related engineering discipline with its own tools, calculators, and articles.

Related Articles

📬 Get new engineering guides in your inbox

New calculators, interactive readers, and reference guides — no spam, unsubscribe anytime.

Put this knowledge to work on your iPhone

Browse our full catalog of professional iOS apps — from electrical code tools to AI builders.

Browse All 95+ Apps