Worldwide enquiries welcome. Delivery terms confirmed before ordering.

Skip to content
Guide

IEC 61131-3 PLC programming languages explained

The five IEC 61131-3 PLC languages (ladder, function block, structured text, instruction list and sequential function chart) and when to use each.

  • 5 min read
  • Updated

The languages

  • Ladder Diagram (LD): graphical, resembles relay circuits, familiar to electricians and good for on/off logic.
  • Function Block Diagram (FBD): graphical blocks connected by signals, well suited to analogue and process control.
  • Structured Text (ST): a text language similar to Pascal, good for maths, loops, data handling and complex algorithms.
  • Sequential Function Chart (SFC): steps and transitions for machine sequences and batch processes.
  • Instruction List (IL): a low-level text language, now deprecated in the latest edition of the standard.

Choosing a language

  1. Match the language to the task and to the people who will maintain it.
  2. Use SFC to organise the machine sequence, and LD, FBD or ST inside each step.
  3. Mix languages where your platform allows it, but keep the structure consistent.
  4. Check what your PLC platform actually supports, since support for each language varies.

Frequently asked questions

Which PLC language should a beginner learn?

Ladder Diagram is the usual starting point, because it is visual and close to electrical schematics. Structured Text is useful to learn next.

Do all PLCs support every IEC 61131-3 language?

No. Support varies by manufacturer and model, so check the programming software and controller documentation.

Is Instruction List still used?

It exists in older programs, but it is deprecated in the current edition of the standard and rarely chosen for new work.

This guide is general engineering guidance. Always confirm part-specific details, ratings and compatibility against the manufacturer’s datasheet. We confirm price, stock and specifications for the exact part in a written quotation. See the glossary for the terms used here.