LADDER SYMBOLS

Ladder Logic Symbols: A Cheat Sheet with Examples

Every common ladder logic symbol with its Rockwell mnemonic, Siemens LAD name and IEC 61131-3 name, why an NC stop button uses an XIC contact, and five rung-by-rung examples: seal-in, interlock, latch, timer and counter.

By EDWartens engineering team 11 October 2026 9 min
Ladder Logic Symbols: A Cheat Sheet with Examples

Ladder logic symbols are the contacts, coils and instruction boxes a PLC rung is built from. The three you use most are the normally open contact -| |-, which passes power when its bit is 1; the normally closed contact -|/|-, which passes power when its bit is 0; and the coil -( )-, which writes the result of the rung to a bit. Set (latch) and reset (unlatch) coils, edge contacts and one-shots, and boxes for timers, counters, comparisons, maths and moves cover almost everything else.

Checked on 11 October 2026 against the Rockwell Automation, Siemens, CODESYS and Phoenix Contact documents listed under this post.

Why do the same symbols have different names?

Ladder diagram is one of the two graphical languages in IEC 61131-3:2025, the fourth edition of the PLC languages standard, published on 22 May 2025. The drawings look almost identical on every platform, but the names do not. Rockwell uses three-letter mnemonics such as XIC and OTE, Siemens uses descriptive names such as "normally open contact", and IEC-style tools such as CODESYS and PLCnext Engineer use the standard's names, such as "positive transition-sensing contact".

In plain text, contacts are often written with square brackets, ] [ and ]/[, which is how Rockwell's own SLC 500 manual prints XIC and XIO. The tables below use that form.

“PLC Instructions are not Normally Open and Normally Closed!” by Tim Wilborne, 7 min. Played from the creator's own YouTube channel; the video belongs to them.

In this video, Tim Wilborne explains why PLC instructions are not really "normally open" and "normally closed", a frequent source of confusion with these symbols. It is one of the lessons in our free Allen-Bradley RSLogix 500 and MicroLogix course, and it is worth watching before the stop-button section below.

Ladder logic symbols cheat sheet: contacts and coils

SymbolIEC 61131-3 nameRockwell LogixSiemens LADWhat it does
] [Normally open contactXIC, Examine If ClosedNormally open contactPasses power when the bit is 1
]/[Normally closed contactXIO, Examine If OpenNormally closed contactPasses power when the bit is 0
( )CoilOTE, Output EnergizeOutput coilBit is 1 while the rung is true, 0 when it is false
(/)Negated coilNo Logix bit instructionInverted output coilBit is 0 while the rung is true, 1 when it is false
(S) or (L)Set coilOTL, Output LatchS (set) coilSets the bit to 1 and leaves it there
(R) or (U)Reset coilOTU, Output UnlatchR (reset) coilClears the bit to 0 and leaves it there
]P[Positive transition-sensing contactONS, One Shot (acts on the rung)P contactTrue for one scan when the signal goes from 0 to 1
]N[Negative transition-sensing contactNone as a contactN contactTrue for one scan when the signal goes from 1 to 0
(P)Positive transition-sensing coilOSR, One Shot RisingP coilWrites 1 for one scan when the rung goes true
(N)Negative transition-sensing coilOSF, One Shot FallingN coilWrites 1 for one scan when the rung goes false

The Rockwell definitions come from the Logix 5000 General Instructions reference (September 2025), the Siemens names from the S7-1200 system manual, and the IEC names from the PLCnext Engineer and CODESYS help. Siemens also has a NOT contact, which simply inverts the power flow passing through it.

Three rules make any rung readable:

  • Series means AND, parallel means OR. Contacts in series must all pass power; in parallel, any one branch is enough.
  • Coils go on the right. CODESYS adds that several coils in one network can only be arranged in parallel.
  • The PLC reads rungs in order, every scan. A rung near the top acts on values that rungs further down have not updated yet. Our PLC scan cycle guide explains why that matters.
Ladder symbols: Rockwell and Siemens names
Ladder symbols: Rockwell and Siemens names

What do the box symbols mean?

BoxRockwell LogixSiemens LADKey detail
On-delay timerTONTONLogix PRE and ACC are in milliseconds; done bit .DN. Siemens uses PT, ET and output Q
Off-delay timerTOFTOFTimes while the rung is false, then switches the output off
Count upCTUCTUAdds 1 on each false-to-true transition of the rung
Count downCTDCTDSubtracts 1 on each false-to-true transition
ResetRESR input on CTU and CTUDClears the accumulated value and status bits
CompareEQ, GT, LT and othersCompare contact (==, >, < and others)Siemens draws comparisons as contacts
AddADDADDAdds source A to source B
MoveMOVEMOVECopies a value to another tag or address

One change catches out people who learnt on older Rockwell software: in Logix Designer version 36, several mnemonics were renamed. EQU became EQ, GRT became GT, LES became LT, NEQ became NE and MOV became MOVE. Rockwell's timer time base is always 1 ms, so a 2-second TON has a preset of 2000. For the timer family in depth, see our guide to TON, TOF and TP timers, and for counters, CTU, CTD and CTUD.

Why is a stop button programmed with a normally open contact?

Because an examine-if-closed contact (XIC) tests a bit, not a device. It is true when its bit is 1, whatever is wired to the input. The Rockwell reference says exactly that: XIC and XIO examine the data bit to set or clear the rung condition.

Stop buttons are usually wired with normally closed contacts, so a broken wire or a lost supply looks the same as a press and stops the machine. With an NC stop button, the input bit is 1 when nobody is touching it:

Stop button (wired NC)Input bitXIC Stop_PBXIO Stop_PB
Not pressed1True: the motor may runFalse: the motor cannot start
Pressed0False: the motor stopsTrue: the motor could start
Wire broken0False: the motor stopsTrue

So the correct instruction for an NC stop button is XIC, the symbol that looks "normally open". Use XIO and the machine will only run while the stop button is held in. Rockwell's SLC 500 manual gives a matching example for XIO: a normally closed motor overload contact wired to an input. XIO on that input is true only when the overload has opened. Pick the contact by the state of the bit you want to test, never by the symbol on the wiring diagram. Emergency stops belong in a hard-wired or safety-rated circuit, not only in standard PLC logic.

Five ladder logic examples, rung by rung

The tag names below are examples. Start_PB is a normally open push button, and Stop_PB is a normally closed one.

1. Start/stop with a seal-in

PositionInstructionTagWhy
Branch AXICStart_PBPressing start powers the rung
Branch B, parallel to AXICMotor_RunThe motor's own bit holds the rung on after start is released
In seriesXICStop_PBNC button: opens the rung when pressed
OutputOTEMotor_RunRuns the motor

In Siemens LAD the same rung uses two normally open contacts in parallel, a normally open contact for the stop input and an output coil. Our start/stop ladder logic walkthrough builds it step by step.

Build a start/stop seal-in rung
Build a start/stop seal-in rung

2. Forward/reverse interlock

Rung 1 is a seal-in for Fwd_Run with an extra XIO Rev_Run in series. Rung 2 is its mirror: a seal-in for Rev_Run with XIO Fwd_Run in series. Each direction can only start while the other is off. Add an electrical interlock on the contactors as well, because the program cannot stop a welded contactor.

3. Latch and unlatch

Rung 1: XIC Start_PB, then OTL Pump. Rung 2: XIO Stop_PB, then OTU Pump. Rung 3: XIC Low_Level, then OTU Pump. The pump stays on after start is released because OTL only ever sets the bit; it never clears it when the rung goes false. Note the difference after a mode change: the Logix reference says an OTE bit is cleared during prescan, while OTL does nothing on prescan, so a latched bit keeps its last value. Use latches deliberately and always pair them with an unlatch.

4. Delayed start with a timer

Rung 1: XIC Run_Request, then TON Horn_Delay with a preset of 5000 (5 seconds in Logix). Rung 2: XIC Run_Request, XIO Horn_Delay.DN, then OTE Warning_Horn. Rung 3: XIC Horn_Delay.DN, then OTE Conveyor. The horn sounds for five seconds, then the conveyor starts. In TIA Portal, set PT to T#5S and use the timer's Q output instead of .DN.

5. Counting cartons

Rung 1: XIC Box_Sensor, then CTU Box_Count with a preset of 12. Rung 2: XIC Box_Count.DN, then OTE Carton_Full. Rung 3: XIC Reset_PB, then RES Box_Count. CTU counts each false-to-true transition, so a sensor held on counts once. The sensor pulse must last longer than one scan, or the PLC may never see it.

Good ladder logic habits
Good ladder logic habits

Where to practise

Rockwell users can try these rungs in the free Allen-Bradley Studio 5000 course, and Siemens users in Siemens TIA Portal. CODESYS and IEC 61131-3 Programming uses the IEC names on a free soft PLC. To see where ladder fits among the other languages, read our guide to the top PLC programming languages.

All the learning is free. The optional EDWartens Certificate of Completion is a one-off US$8.99; it is our own certificate, not a Rockwell, Siemens or CODESYS credential, it is not accredited, and anyone can check it at edwartens.com/verification.

Take the free course

Questions

What are the basic ladder logic symbols?

The basic symbols are the normally open contact (-| |-), true when its bit is 1; the normally closed contact (-|/|-), true when its bit is 0; and the coil (-( )-), which writes the rung result to a bit. Most programs also use set and reset coils, one-shots, and boxes for timers, counters, comparisons, maths and moves.

What is the difference between XIC and XIO?

XIC (Examine If Closed) is true when its bit is 1, and XIO (Examine If Open) is true when its bit is 0. Both test a bit in the controller's memory, not the physical contact wired to the input. They are Rockwell's names for the normally open and normally closed contacts.

Why is a normally closed stop button programmed with a normally open contact?

A normally closed stop button keeps its input bit at 1 until it is pressed, so the rung needs an XIC (normally open) contact that is true while the bit is 1. Pressing the button, or a broken wire, drops the bit to 0 and opens the rung. Using XIO instead would let the machine run only while the stop button is held in.

What is the difference between OTE and OTL?

OTE (Output Energize) sets its bit to 1 while the rung is true and clears it to 0 when the rung is false. OTL (Output Latch) sets the bit to 1 when the rung is true and leaves it there when the rung goes false, until an OTU (Output Unlatch) clears it. Siemens calls the latching pair the S and R coils.

What does ONS mean in ladder logic?

ONS is Rockwell's One Shot instruction. It makes the rest of the rung true for one scan each time the conditions before it change from false to true, using a storage bit to remember the previous state. Siemens uses a P contact for the same job, and IEC tools call it a positive transition-sensing contact.

Are ladder logic symbols the same in Siemens and Allen-Bradley?

The drawings are almost the same, but the names differ. Rockwell uses mnemonics such as XIC, XIO, OTE, OTL and OTU, while Siemens TIA Portal uses descriptive names such as normally open contact, output coil and set or reset coil. Siemens also draws comparisons as contacts, while Rockwell uses compare instructions such as EQ and GT.

Sources

Written by the EDWartens engineering team for general education. Product names are trademarks of their owners; mentioning them does not imply endorsement. Prices and terms of other providers were checked on the date shown and can change.