PLC Simulator
dialects
allen bradley
siemens
iec
fundamentals

PLC Dialects Compared: IEC 61131-3 vs Allen-Bradley vs Siemens

By PLC Simulation Software10 min read

PLC Dialects Compared: IEC 61131-3 vs Allen-Bradley vs Siemens

One of the most confusing aspects of entering the PLC world is discovering that the same concept — a timer, a contact, an output coil — is named, addressed, and structured differently depending on which vendor's platform you are using.

IEC 61131-3 is the international standard, but Allen-Bradley (Rockwell Automation) and Siemens have their own syntactic dialects that extend or diverge from it. Understanding the mapping between them lets you transfer knowledge across platforms and read job postings that ask for "RSLogix" or "TIA Portal" experience without starting from zero.

PLC dialects compared — IEC 61131-3 vs Allen-Bradley vs Siemens naming, addressing and syntax

Here is how the three dialects line up across the things you actually touch every day — instructions, addressing, software and the tag model.

Comparison table of IEC 61131-3, Allen-Bradley and Siemens across instructions, addressing, software and tag model

The Standard: IEC 61131-3

Published by the International Electrotechnical Commission, IEC 61131-3 defines:

  • Five programming languages: Ladder Diagram (LD), Structured Text (ST), Function Block Diagram (FBD), Instruction List (IL, deprecated), Sequential Function Chart (SFC).
  • Standard data types: BOOL, INT, UINT, DINT, REAL, LREAL, TIME, STRING, ARRAY, STRUCT, ENUM.
  • Standard function blocks: TON, TOF, TP (timers), CTU, CTD, CTUD (counters), SR, RS (flip-flops), R_TRIG, F_TRIG (edge detectors).
  • Program Organisation Units (POUs): PROGRAM, FUNCTION_BLOCK, FUNCTION.

Platforms that closely follow IEC 61131-3 include: Codesys (used by hundreds of vendors), OpenPLC, Beckhoff TwinCAT, Wago, ABB Automation Builder, and the simulator you are reading this on.

Allen-Bradley / Rockwell Automation

Rockwell's RSLogix 5000 and its successor Studio 5000 Logix Designer target the ControlLogix, CompactLogix, and Micro800 families.

Tag-Based Addressing

AB uses tag-based addressing. You create named tags (MotorRun, Conveyor1Speed, Timer1) rather than absolute memory addresses. Tags have types and can be organised into User-Defined Types (UDTs) — similar to structs.

Timer Syntax (AB)

TON
Timer: Motor_Timer
Preset: 5000    ; 5 seconds in ms
Accum: <live>
  • The timer is a tag of type TIMER with fields .PRE, .ACC, .DN, .EN, .TT.
  • Motor_Timer.DN is the done bit (equivalent to IEC TON.Q).
  • Motor_Timer.EN is the enable bit.

IEC equivalent:

Motor_Timer(IN := Enable, PT := T#5s);
IF Motor_Timer.Q THEN ... END_IF;

Coil Naming (AB)

| AB Instruction | IEC Equivalent | Description | |---|---|---| | XIC | NO Contact [ ] | Examine If Closed | | XIO | NC Contact [/] | Examine If Open | | OTE | Output Coil ( ) | Output Energise | | OTL | Set Coil (S) | Output Latch | | OTU | Reset Coil (R) | Output Unlatch | | ONS | One-Shot (OSR) | One-shot on rising edge |

Counter Syntax (AB)

AB counters use .PRE, .ACC, .DN, .OV, .UN fields on a COUNTER typed tag. The CTU instruction examines the count input and increments .ACC.

Key Differences from IEC

  • Proprietary timer/counter types instead of IEC standard function blocks.
  • Array indexing uses [n] notation (same as IEC).
  • AOI (Add-On Instructions) are AB's equivalent of IEC Function Blocks — reusable encapsulated logic.
  • Motion and axis objects are proprietary; no direct IEC equivalent.

Siemens TIA Portal (S7-1200 / S7-1500)

Siemens' TIA Portal supports all IEC 61131-3 languages with Siemens-specific extensions and naming conventions.

Data Blocks and Variable Types

Siemens organises data into:

  • %I (Input) — physical inputs: %I0.0, %I0.1
  • %Q (Output) — physical outputs: %Q0.0
  • %M (Merker/Flag) — internal memory bits: %M10.0
  • %DB (Data Block) — structured data storage: "DB1".MotorRun
  • PLC tags — symbolic names mapped to absolute addresses.

IEC 61131-3 uses symbolic variables directly; Siemens adds the absolute address layer.

The same physical input or output therefore looks different in each dialect — IEC keeps it symbolic, Allen-Bradley wraps it in a named tag, and Siemens exposes the absolute address alongside the tag.

PLC addressing styles compared — inputs, outputs, memory bits and data in IEC, Allen-Bradley and Siemens

Timer Syntax (Siemens)

In TIA Portal for S7-1200/S7-1500, the IEC timer function blocks are used:

#Motor_Timer(IN := #Enable,
             PT := T#5s);
IF #Motor_Timer.Q THEN
    #Output := TRUE;
END_IF;

Older S7-300/S7-400 code used proprietary S_ODT (on-delay timer), S_OFFDT (off-delay timer), which have a different calling convention. Modern S7-1200/S7-1500 code can use IEC-standard timers.

Coil Naming (Siemens)

Siemens ladder uses the same contact/coil graphical symbols as IEC LD, but with Siemens-specific function block names for older platforms. TIA Portal's S7-1200/S7-1500 ladder is close to IEC standard.

| IEC | Siemens (TIA S7-1200+) | Siemens (Classic S7-300) | |---|---|---| | NO Contact | Standard | Standard | | NC Contact | Standard | Standard | | TON | IEC TON | S_ODT | | TOF | IEC TOF | S_OFFDT | | CTU | IEC CTU | S_CU (count up) | | SET coil | S coil | S coil | | RESET coil | R coil | R coil |

Organised Block Types

Siemens organises code into:

  • OB (Organisation Block) — called by the operating system (OB1 = main cyclic, OB30 = time-based interrupt).
  • FC (Function) — stateless subroutine (IEC: FUNCTION).
  • FB (Function Block) — stateful block with instance data block (IEC: FUNCTION_BLOCK).
  • DB (Data Block) — data-only (global or instance).

IEC 61131-3 uses PROGRAM, FUNCTION_BLOCK, and FUNCTION without the OB/FC/FB naming.

Side-by-Side: Motor Start/Stop Rung

IEC 61131-3 Structured Text

IF (StartPB OR MotorRun) AND NOT StopPB AND NOT Overload THEN
    MotorRun := TRUE;
ELSE
    MotorRun := FALSE;
END_IF;

Allen-Bradley (RSLogix/Studio 5000 Ladder)

|--[StartPB]--+--[/StopPB]--[/Overload]--( MotorRun )--|
              |
              +--[MotorRun]--+

(Tags: StartPB: BOOL, StopPB: BOOL, Overload: BOOL, MotorRun: BOOL)

In Allen-Bradley the contacts and coil carry named tags and XIC/XIO/OTE instruction labels rather than addresses.

Allen-Bradley motor start/stop ladder rung with named tags and XIC, XIO and OTE instructions

Siemens TIA Portal Structured Text

IF (#StartPB OR #MotorRun) AND NOT #StopPB AND NOT #Overload THEN
    #MotorRun := TRUE;
ELSE
    #MotorRun := FALSE;
END_IF;

Siemens uses # prefix for local variables inside a block (FC/FB). Global tags use the tag name directly or "tagname" notation in some contexts.

The exact same logic in Siemens ladder uses absolute %I and %Q addresses on the contacts and coil — the rung structure is identical, only the labels change.

Siemens motor start/stop ladder rung using absolute %I and %Q addressing

It is worth pausing on what those two rungs share: the structure — a start contact, normally-closed stop and overload contacts, and the output coil — is byte-for-byte the same logic. Only the addressing and instruction labels differ.

Portable IEC 61131-3 fundamentals versus vendor-specific PLC features

Which Dialect to Learn for Work

| Region / Industry | Most Common Dialect | |---|---| | North America, automotive, food & bev | Allen-Bradley | | Europe, machine building | Siemens | | Australia, industrial OEM | Mix of AB and Siemens | | Academic / open-source | IEC 61131-3 (Codesys, OpenPLC) | | Process industries globally | Mix; Siemens strong in petrochemical |

The most transferable investment is IEC 61131-3 fundamentals. Once you understand TON, CTU, ladder contacts and coils in the IEC context, translating to AB or Siemens is a naming exercise, not a conceptual one.

These are the concepts that survive the move from one vendor to another unchanged.

Checklist of PLC knowledge that transfers between IEC, Allen-Bradley and Siemens dialects

If you are deciding where to start, let your target region or employer drive the choice — and default to IEC fundamentals when you have no target yet.

Flowchart for choosing which PLC dialect to learn first — IEC, Allen-Bradley or Siemens

See How to Become a PLC Programmer: A Self-Teaching Roadmap for a structured learning path, and try the Allen-Bradley simulator dialect or the Siemens simulator dialect to practice vendor-specific syntax.


Practice this yourself in the simulator — 3 scenarios free. No install. No credit card. Switch between IEC, Allen-Bradley, and Siemens dialects on any scenario.

Try the simulator free →

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

ladder logic
function block

Ladder Logic vs Function Block Diagram: When to Use Each

Ladder logic suits discrete interlocks and relay replacement; function block diagram suits analog, PID, and reusable logic. Compare LD vs FBD and pick the right one.

June 7, 2026 · 8 min read
ladder logic
examples

PLC Programming Examples and Solutions (with Ladder Logic)

Eight classic PLC programming examples with full ladder logic solutions and explanations — motor seal-in, timers, counters, traffic lights, tank control and star-delta.

June 7, 2026 · 10 min read
fundamentals
career

PLC Programming vs Traditional Programming: Python, Arduino & C

How PLC programming differs from Python, C and Arduino: the scan cycle, ladder vs relay logic, determinism, and whether a software dev can make the switch.

June 7, 2026 · 9 min read