PLC Simulator
PLC field notesdialects

IEC 61131-3 IL vs Siemens STL: When to Use Each

Comparing IEC 61131-3 Instruction List (IL) and Siemens Statement List (STL/AWL) — syntax, use cases, compatibility, and whether either is still worth learning in 2026.

PLC Simulation Software9 min read

Instruction List (IL) and Siemens Statement List (STL, or AWL in German) are two text-based PLC programming languages that look nearly identical at first glance but come from different worlds. One is an open standard; the other is a vendor-specific format with decades of installed base.

In 2026, both are considered legacy languages — IEC 61131-3 edition 3 deprecated IL entirely, and Siemens recommends migrating away from STL in TIA Portal. But millions of programs written in both formats are still running in production, and understanding them is a real professional skill.

IEC 61131-3 IL vs Siemens STL text-based PLC programming languages compared

What Is IEC 61131-3 IL?

IL (Instruction List) is one of the five languages defined in the IEC 61131-3 standard for PLC programming. It is an assembly-like, line-by-line language where each instruction operates on an implicit accumulator register.

(* IEC IL — Motor Start/Stop *)
LD  Start_PB    (* Load Start_PB into accumulator *)
ANDN Stop_PB    (* AND NOT Stop_PB *)
OR  Motor_Run   (* OR with Motor_Run (seal-in) *)
ST  Motor_Run   (* Store result to Motor_Run *)

Each line: an operator, an optional modifier (N for NOT, conditional modifiers for structured IL), and an operand.

Key IL operators:

Reference tableSwipe
OperatorMeaning
LDLoad — set accumulator from operand
LDNLoad NOT
STStore accumulator to operand
AND, ANDNLogical AND, AND NOT
OR, ORNLogical OR, OR NOT
XORExclusive OR
JMP, CAL, RETJump, call function, return

What Is Siemens STL (AWL)?

STL (Statement List, Anweisungsliste in German) is Siemens's native text language for STEP 7 Classic (S7-300/400) and is still supported (though discouraged) in TIA Portal for S7-1200/1500. It resembles IEC IL but has important differences in operators, conditional execution, and data access.

// Siemens STL — Motor Start/Stop
NETWORK 1
A  "Start_PB"   // AND — check Start_PB
AN "Stop_PB"    // AND NOT — check Stop_PB
O  "Motor_Run"  // OR — seal-in
=  "Motor_Run"  // Assignment (equivalent to ST or OTE)

Key differences from IEC IL:

  • A instead of AND / LD (A = Abfrage, "query")
  • AN instead of ANDN
  • O instead of OR
  • = instead of ST
  • NETWORK blocks separate sections (similar to rungs)
  • System function calls use different syntax: CALL FC1 vs IEC's CAL

The quickest way to read either language is to memorize how the mnemonics line up — IEC's LD/AND/ST against Siemens's A/AN/=.

Mnemonic mapping table of IEC IL operators LD AND ST to Siemens STL operators A AN equals

Side-by-Side: Same Program, Two Languages

(* IEC IL — Timer example: motor runs 5 seconds after start *)
LD  Start_PB
ANDN Stop_PB
CAL TON_0(IN:=%LD0, PT:=T#5S)
LD  TON_0.Q
ST  Motor_Run
// Siemens STL — Same logic
A   "Start_PB"
AN  "Stop_PB"
L   S5T#5S
SD  T1          // Start timer T1, on-delay
A   T1          // Load timer contact
=   "Motor_Run"

The Siemens timer instruction (SD T1) works differently from IEC's CAL TON_0(...) — it is tied to a timer device number (T1–T255 in S7-300) rather than a function block instance. This is the same device-based approach used in Mitsubishi.

Step back and the two languages share an accumulator-style execution model but diverge on standards, vendor lock-in and how timers are addressed.

Comparison of IEC Instruction List and Siemens STL similarities and differences

The differences run deeper than the operators — they extend to the result register, the time format, and how each language structures its sections.

Comparison table of IEC IL and Siemens STL data access operators and timer models

When Each Is Appropriate

Use IEC IL when:

  1. You are maintaining existing IL code in a CODESYS, Beckhoff, or older IEC-compliant PLC. New code in these environments should use Structured Text (ST), but understanding IL is necessary for reading existing programs.

  2. The PLC hardware only supports text-based IEC languages — some embedded controllers and compact PLCs do not support Ladder or FBD; IL was the standard text option.

  3. You are studying the IEC 61131-3 standard academically — understanding all five languages gives you a full picture of the standard.

Use Siemens STL when:

  1. You are maintaining S7-300/400 programs written in STL. This is the most common real-world use case — legacy programs that will not be ported.

  2. You need to access features not exposed in Ladder or FBD in STEP 7 Classic — some indirect addressing and bit operations are easier in STL.

  3. You are debugging someone else's STL program in a production environment.

If you ever have to port logic between the two, a handful of mismatches catch people out every time.

Checklist of gotchas when migrating between IEC IL and Siemens STL

What to learn instead for new projects:

  • Structured Text (ST) replaces IL for text-based programming in IEC 61131-3 and TIA Portal. It is a proper high-level language (similar to Pascal syntax) and is infinitely more readable than IL.
  • TIA Portal LAD (Ladder) replaces STL for most Siemens applications and is the recommended first language for new TIA Portal projects.

If you are not sure where to start, let your situation decide it for you.

Flowchart for choosing which PLC text language to learn — IEC IL, Siemens STL, Structured Text or Ladder

IL and STL in the Simulator

The simulator supports Siemens STL rendering as part of the Siemens dialect. If you load any scenario and switch the dialect selector to Siemens, the program is rendered in STL notation.

IEC IL is available as part of the IEC 61131-3 dialect support — but note that the simulator's IEC exercises primarily use Structured Text and Ladder, following the IEC's own recommendation to use ST over IL for new programs. The dialect comparison page shows how the same program looks in all 9 dialects simultaneously.

The Bigger Picture

IL is just one of the five languages the IEC 61131-3 standard defines, and Siemens STL is its vendor cousin sitting just outside that family.

Architecture diagram of the five IEC 61131-3 languages with IL and Siemens STL highlighted

Whether you are reading STL or IEC IL, the same logic runs on the PLC. If you understand:

  • The accumulator-based execution model (each instruction modifies a running result)
  • The scan-cycle execution order (see the scan cycle explained)
  • Which operators perform which Boolean operations

...you can read and modify programs in either language. The tools are different; the underlying PLC behavior is identical.


Practice Siemens STL and IEC IL in the simulator. Switch between all 9 dialects with one click — no separate software needed.

Try the dialect comparison →

ShareX / TwitterLinkedIn

From reading to running logic

Practice this yourself in the simulator

Start with guided PLC practice in your browser. No install and no credit card required.

Start practising free

Continue learning

Related field notes

All articles
dialects
mitsubishi

Mitsubishi vs Allen-Bradley Ladder Logic: A Side-by-Side Guide

Comparing Mitsubishi GX Works and Allen-Bradley Studio 5000 ladder logic syntax, addressing schemes, and programming conventions. Which dialect should you learn first?

9 min read
dialects
comparison

9 PLC Dialects Compared: IEC, AB, Siemens, Mitsubishi, Omron, KEYENCE, Schneider, Delta & IL

Compare the 9 runnable PLC learning dialects in our simulator using one tested motor seal-in program. See syntax, addressing, transfer rules, and which track to learn first.

14 min read
tutorial
structured text

Structured Text Programming: Syntax and Examples (IEC 61131-3)

A practical structured text programming tutorial. IF, CASE, FOR, WHILE and timers in ST with copy-paste examples, the IEC 61131-3 data types, and how to practice in a browser PLC simulator.

9 min read

Software evaluation field guide

IEC Instruction List versus Siemens STL: evaluation checklist

Direct answer

The reader can identify the language and target family, explain accumulator and logic-result behavior and plan a behavior-preserving migration.

Written for pLC maintainers and learners distinguishing IEC 61131-3 Instruction List from Siemens Statement List or STL across S7 generations.

an automation engineer correlating ladder logic, scan timing, PLC I/O and a controlled test result at a debug bench while studying legacy textual PLC language identification and migration
System map / 02

NODE 01observable

Requirement

Source controller, engineering tool, file type, language name, instruction set, accumulators, status bits, data blocks, calls and destination.

NODE 02observable

Test job

Each statement through logic result, accumulator, address or data access, jump or call and resulting output or state.

NODE 03observable

Baseline result

One Boolean network, numeric expression and routine call traced in source execution order.

NODE 04observable

Stress case

Implicit accumulator state, parentheses, jumps, indirect addressing, status-word dependence, block interface and restart.

NODE 05observable

Failure handling

A source-identity, mnemonic, operand, type, execution-order, control-flow, state or target-support mismatch.

NODE 06observable

Decision record

Behavioral tests retained while code is recreated and reviewed in the supported destination language.

Answer surface / 07

Is Siemens STL the same as IEC Instruction List?

No. They are related textual PLC styles, but Siemens STL has platform-specific instructions, accumulators and block behavior that are not guaranteed by IEC IL.

Why was IEC Instruction List deprecated?

IEC 61131-3 third edition deprecated IL; maintainers should preserve behavior with tests and migrate toward a supported language appropriate to the target platform.