PLCcheck

IEC 61131-3: The PLC Programming Languages Explained

Overview of the IEC 61131-3 standard and its programming languages: Ladder Diagram (LD), Function Block Diagram (FBD), Structured Text (ST), Sequential Function Chart (SFC), and the deprecated Instruction List (IL). With Siemens equivalents.

·10 min read
IEC 61131-3programming languagesLDFBDSTSFCILLadder DiagramStructured TextPLCSCLAWL

Diesen Artikel auf Deutsch lesen

IEC 61131-3: The PLC Programming Languages Explained

IEC 61131-3 is the international standard that defines programming languages for programmable controllers. First published in December 1993, it was updated to its fourth edition in May 2025. The standard defines four active programming languages — three graphical and one textual — plus a fifth (Instruction List) that was deprecated in 2013 and formally removed in the 2025 edition.

The Five Languages at a Glance

LanguageTypeIEC NameSiemens NameBest For
LDGraphicalLadder DiagramKOP (Kontaktplan) / LADBoolean logic, discrete control
FBDGraphicalFunction Block DiagramFUP (Funktionsplan) / FBDContinuous process control, analog
STTextualStructured TextSCL (Structured Control Language)Calculations, data processing, algorithms
SFCGraphicalSequential Function ChartGRAPH (S7-Graph)Step sequences, batch processes
ILTextualInstruction ListAWL (Anweisungsliste) / STLDeprecated. Legacy compatibility only

Ladder Diagram (LD / KOP / LAD)

LD traces its history back over 100 years to relay ladder logic. It was designed to look like electrical schematics so that electricians and maintenance technicians could read and modify PLC programs without learning a "programming language."

Strengths: Intuitive for anyone with electrical background. Excellent for debugging — you can see the power flow visually. Ideal for complex Boolean logic with many interlocks.

Weaknesses: Becomes unwieldy for calculations, string handling, loops, and data processing. A simple IF temperature > 50.0 THEN alarm := TRUE requires multiple elements in LD but one line in ST.

When to use: Discrete manufacturing, machine interlocks, simple conveyor control, any application where maintenance electricians need to troubleshoot the program.

Function Block Diagram (FBD / FUP)

FBD represents logic as interconnected function blocks — similar to circuit diagrams in electronics. Inputs on the left, processing in the middle, outputs on the right.

Strengths: Natural representation for analog processing (PID loops, scaling, signal conditioning). Good for visualizing data flow. Reusable blocks reduce duplication.

Weaknesses: Can become complex when mixing Boolean and analog logic. Less compact than ST for mathematical operations.

When to use: Process control (chemical, pharmaceutical, food & beverage), PID regulation, analog signal processing, and any application involving pre-built function blocks.

Structured Text (ST / SCL)

ST is a high-level textual language based on Pascal. It is the most powerful and flexible IEC 61131-3 language, supporting all standard programming constructs: IF/THEN/ELSE, CASE, FOR, WHILE, REPEAT, arrays, structures, and user-defined types.

Strengths: Compact and readable for calculations. Supports complex data structures, loops, and algorithms. Easiest language for IT/software engineers to learn. No performance disadvantage on modern PLCs (S7-1500 executes native SCL).

Weaknesses: Harder to debug visually than LD — you cannot "see" the power flow. Requires programming knowledge that electricians may not have.

When to use: Mathematical calculations, recipe management, data processing, communication handling, any application where LD/FBD would be excessively complex. Siemens recommends SCL as the preferred language for all new standard blocks on S7-1500.

Sequential Function Chart (SFC / GRAPH)

SFC is a graphical language for modeling sequential processes as a series of steps and transitions. Each step activates specific actions; transitions define the conditions for moving to the next step.

Strengths: Ideal for batch processes, machine sequences, and any process that follows a defined order of operations. The visual representation makes process flow immediately obvious.

Weaknesses: Not suitable for continuous control or Boolean logic. Requires a step-based process model — not every application fits this pattern.

When to use: Batch control (ISA-88/S88), packaging machines with sequential operations, CNC machine tool cycles, wash/clean/fill sequences.

Instruction List (IL / AWL / STL) — Deprecated

IL is a low-level textual language similar to assembly language. It operates on an accumulator model: load a value, perform an operation, store the result.

Status: Deprecated in IEC 61131-3:2013 (3rd edition). Formally removed in IEC 61131-3:2025 (4th edition). Siemens supports IL/AWL/STL on S7-300/400 natively and on S7-1500 in emulation mode only. S7-1200 does not support IL in main OBs.

Why it was removed: IL offered no advantage over ST for new development but was harder to read, maintain, and debug. It was a product of the era when PLCs had limited memory and processing power.

What to do with existing IL code: See our AWL to SCL conversion guide.

Siemens Names vs. IEC Names

IEC NameSiemens GermanSiemens InternationalAllen-Bradley
LDKOP (Kontaktplan)LAD (Ladder)Ladder Logic
FBDFUP (Funktionsplan)FBDFunction Block Diagram
STSCL (Structured Control Language)SCLStructured Text
SFCGRAPH (S7-Graph)GRAPHSequential Function Chart
ILAWL (Anweisungsliste)STL (Statement List)— (not supported)

Mixing Languages in One Project

IEC 61131-3 explicitly allows mixing languages within a single project. Each block (FB, FC, OB) can be written in a different language. This is not a workaround — it is the intended use:

The Siemens Programming Guideline recommends this mixed approach: "Use a programming language suitable for the programming task."

How PLCcheck Pro Relates to IEC 61131-3

PLCcheck Pro reads code in IL/AWL/STL and SCL — the two textual languages. It generates documentation that is language-independent and can suggest conversion from the deprecated IL to the recommended ST/SCL.

Analyze your PLC code →

Frequently Asked Questions

Which language should I learn first?

If you are an electrician or maintenance technician: start with LD (Ladder Diagram). If you are a software engineer or have programming experience: start with ST (Structured Text). Both are essential — learn the other one second.

Is Instruction List really dead?

For new development, yes. IEC formally removed it in 2025. Siemens runs it in emulation mode on S7-1500 (slower). But billions of lines of existing IL/AWL code exist in running plants and will need maintenance for decades. Understanding IL remains a valuable skill for migration and maintenance work.

Can I write a complete program in one language?

Technically yes. Practically no — each language has strengths and weaknesses. A program written entirely in LD becomes unmanageable for calculations. A program entirely in ST is hard to debug for simple Boolean logic. Use the right tool for each task.


Part of the IEC 61131-3 Reference. Maintained by PLCcheck.ai. Not affiliated with Siemens AG or IEC.

Related Articles

Analyze your PLC code with AI

PLCcheck Pro explains, documents, optimizes, and migrates PLC code — automatically.

Try PLCcheck Pro →
← Back to Blog

Not affiliated with Siemens AG. S5, S7, STEP 5, STEP 7, and TIA Portal are trademarks of Siemens AG.