Allen-Bradley ladder logic explained: XIC, XIO, OTE, OTL/OTU, ONS, TON and CTU in Rockwell terms, mapped to IEC 61131-3 — for Studio 5000 and RSLogix users.
Allen-Bradley ladder logic is its own dialect. The logic is the same relay-style thinking every PLC uses, but Rockwell names its instructions differently — XIC, XIO, OTE instead of the IEC's contacts and coils — and a few behaviours differ in ways that bite people moving between platforms. Since Allen-Bradley dominates North American plants while most training material (and most simulators) speak IEC, this post is the translation layer: every core Rockwell instruction, what it really does, and its exact IEC equivalent.
XIC, XIO, OTE: The Three Instructions That Are 90% of Every Program
XIC — eXamine If Closed — -| |-. True when the bit is 1. The IEC normally-open contact. Think "examine ON."
XIO — eXamine If Open — -|/|-. True when the bit is 0. The IEC normally-closed contact. Think "examine OFF."
OTE — OuTput Energize — -( )-. Writes the rung's result to the bit: 1 if the rung is true, 0 if not — every scan, both directions. The IEC coil.
The names trip beginners because they describe the examined state, not a physical switch. The classic case: a real stop pushbutton is wired normally-closed for fail-safety, so its input bit is 1 while the machine is healthy — which means the stop button appears in the program as an XIC, not an XIO. "Stop button = XIC" feels backwards exactly once, then becomes the first thing you check in anyone else's program. (The same wiring logic from the IEC side is in Ladder Logic for Beginners.)
The seal-in in Rockwell vocabulary: XIC Start paralleled with XIC Motor, in series with XIC StopOK, feeding OTE Motor. Identical structure, identical ST equivalent:
Motor := (Start OR Motor) AND StopOK;
OTL and OTU: The Latch Pair (and Their Danger)
OTL (Output Latch) sets the bit when the rung is true and leaves it set. OTU (Output Unlatch) clears it. They always come as a pair on separate rungs — and they are the exception to OTE's every-scan behaviour: an OTL rung going false does nothing; only an OTU clears the bit.
Two cautions. First, a latched bit survives power cycling on most Logix controllers (it lives in retentive memory) — a machine that resumes motion after power restoration because of a forgotten OTL is a genuinely dangerous bug, which is why many plant standards ban OTL/OTU for motion outputs and allow them only for status/alarm flags. Second, OTL/OTU scattered across a program is last-write-wins logic that's hard to trace; the IEC SR/RS blocks (one block, both inputs visible, dominance explicit) are the cleaner statement of the same intent.
ONS: Rockwell's One-Shot
ONS passes rung power for exactly one scan per false→true transition, using a storage bit you assign. It's Rockwell's R_TRIG — the edge-detector you put in front of a counter or an add instruction so a held button acts once, not once per scan. The 400-counts-per-press trap it prevents is dissected in PLC Counters Explained. (OSR/OSF are the older PLC-5/SLC-era variants you'll still meet in legacy code.)
TON, TOF, RTO: Timers, Rockwell Style
Rockwell's TON and TOF match their IEC namesakes in behaviour; the differences are structural:
- A Rockwell timer is a tag of type TIMER with members
.PRE(preset),.ACC(accumulated),.EN,.TT,.DN— where IEC uses pinsPT,ET,Q. The done bit.DN≈Q; "TimerName.DN as an XIC on the next rung" is the Rockwell idiom for "wire from Q." - Presets are typically in milliseconds as a plain number (PRE = 5000 for 5 s), not
T#5s. .TT(timer timing) has no standard IEC pin — it's true while the timer is actively timing, and handy for "in progress" lamps.- RTO (Retentive Timer On) keeps
.ACCwhen the rung drops and needs an explicit RES (reset) instruction — IEC has no direct standard twin; the closest is a TON you manage yourself.
The frozen-timer rule is identical in both worlds: a timer only advances on rungs that execute.
CTU, CTD and RES: Counters
Rockwell CTU/CTD count on the rung's false→true transition (edge detection is built into the instruction itself — one honest difference from naive IEC usage), with .ACC, .PRE, .DN members, and a shared RES instruction to zero .ACC. The discipline doesn't change: one counter tag per job, and anything you build that increments on an input still needs an ONS.
The Quick Translation Table
| Rockwell | IEC 61131-3 | Notes |
|---|---|---|
| XIC | NO contact -| |- |
Examine bit = 1 |
| XIO | NC contact -|/|- |
Examine bit = 0 |
| OTE | Coil -( )- |
Written every scan |
| OTL / OTU | SR / RS (or SET/RESET coils) | Rockwell latch is retentive — beware on power-up |
| ONS | R_TRIG | OSR/OSF in legacy code |
| TON / TOF | TON / TOF | .PRE/.ACC/.DN vs PT/ET/Q; ms vs T# literals |
| RTO + RES | (no standard twin) | Retentive accumulation |
| CTU/CTD + RES | CTU/CTD | Edge-detect built in; RESET pin vs RES instruction |
| MOV, ADD, GRT, EQU, LIM | MOVE, ADD, GT, EQ, (GE+LE) | Same ideas, 3-letter spellings |
Why Learn Both Dialects
Because careers cross the boundary constantly: training materials and European machines speak IEC, half the plants that will employ you speak Rockwell, and the underlying logic — scan cycle, seal-ins, edges, one-rung-per-output — is identical. Practice is the translation layer: build the seal-in, the one-shot counter and a timer cascade in the free simulator using IEC notation, and the mapping table above turns Studio 5000 from a foreign language into an accent. For which graphical language fits which job once you're fluent in both, see FBD vs Ladder Logic.