PLC Simulator
dialects
siemens
iec
structured text
instruction list

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

By PLC Simulation Software9 min read

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

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: | Operator | Meaning | |---|---| | LD | Load — set accumulator from operand | | LDN | Load NOT | | ST | Store accumulator to operand | | AND, ANDN | Logical AND, AND NOT | | OR, ORN | Logical OR, OR NOT | | XOR | Exclusive OR | | JMP, CAL, RET | Jump, 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 memorise 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 8 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 behaviour is identical.


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

Try the dialect comparison →

Share:X / TwitterLinkedIn

Practice this yourself in the simulator

3 scenarios free — no install, no credit card. Write real ladder logic against a live machine model.

Try the simulator free →

Related articles

plc programming
encoder

PLC Encoder Programming Examples: Delta, Siemens, Allen-Bradley, Mitsubishi

Practical PLC encoder programming examples for Delta, Siemens S7-1200, Allen-Bradley CompactLogix, and Mitsubishi FX. Covers high-speed counter setup, quadrature mode, homing, and position-based output control in each dialect.

June 12, 2026 · 12 min read
hmi
siemens

WinCC Tutorial: The Confusing Siemens HMI Family Explained Clearly

WinCC Classic, WinCC Unified, WinCC OA, and WinCC TIA-integrated — which one should you care about? This honest guide untangles the Siemens HMI family and shows how to learn the transferable skills free.

June 11, 2026 · 10 min read
siemens
allen bradley

Siemens vs Allen-Bradley PLC: Which Should You Learn?

Siemens and Allen-Bradley are both industry-standard PLC platforms. Compare software, hardware, cost and job market to decide which one to learn first.

June 7, 2026 · 9 min read