PLC Simulator
Contacts (inputs)

XICExamine If Closed

XIC (Examine If Closed) is the normally-open contact instruction in ladder logic: it passes logical continuity to the rest of the rung when the bit it examines is 1 (ON), and blocks it when the bit is 0.

Join 1900+ learners practicing PLC programming

How it works

What XIC does during the scan

XIC is the single most used instruction in any ladder program, and the name explains the logic better than the symbol does. The instruction examines a bit and asks: is the (imaginary) contact closed? If the referenced bit is 1, the answer is yes — the contact conducts and rung continuity continues to the next element. If the bit is 0, the contact is open and everything to its right on that path stays false. The ] [ symbol mimics the normally-open contact of a hardwired relay, which is exactly what it replaced.

Where the bit comes from matters for timing. During the input-scan phase of the PLC scan cycle, the controller copies the physical input terminals into the input image table. When the program scan then evaluates your XIC, it reads that frozen image — not the live terminal. A sensor that flickers ON and OFF within one scan can therefore be missed entirely, and every XIC addressing the same input is guaranteed to see the same value within a single scan. That consistency is a feature: your rung logic can never see an input change mid-rung.

An XIC is not tied to physical inputs. It can examine an internal bit, a timer done bit (Timer1.DN), a counter done bit (Counter1.DN), or an output bit — examining an output with an XIC is exactly how the classic seal-in (latching start/stop) circuit works. The instruction never writes anything; it only reads. Any number of XIC instructions in any number of rungs can examine the same bit.

The classic beginner trap: XIC does not mean "normally open push-button". It means "true when the bit is 1". If a normally-closed physical switch is wired to the input, the bit is 1 while the switch is untouched — and an XIC examining it is true even though nobody pressed anything. Program against the bit state, not against the physical device you imagine on the other end of the wire.

XIC examine-if-closed instruction highlighted on a ladder rung — a Start push-button XIC contact in series with a Stop XIO contact driving a Motor output coil between the L1 and L2 power railsA ladder rung between two power rails. The first element is the highlighted XIC (normally open) contact tagged Start, followed by an XIO (normally closed) contact tagged Stop, ending in an OTE output coil tagged Motor. The XIC passes logical continuity when its bit is 1.L1L2StartXICStopXIOMotorOTEtrue when bit = 1
The XIC contact (highlighted) examines the Start bit: when Start = 1 the contact conducts and — with the Stop XIO also true — the Motor coil energizes.

Across vendors

XIC in Allen-Bradley, Siemens, IEC 61131-3 and Mitsubishi

PlatformName / syntaxNotes
Allen-Bradley (Studio 5000 / RSLogix)XICInstruction mnemonic XIC tag — e.g. XIC Start_PB. Drawn as ] [ on the rung.
IEC 61131-3 (CODESYS, OpenPLC)NO contactNo mnemonic — the graphical normally-open contact -| |- in LD. In Structured Text it is simply IF Start_PB THEN …, and in Instruction List LD Start_PB.
Siemens (TIA Portal)NO contactThe -| |- element in LAD; in STL the A (AND) / O (OR) bit-logic instructions read the bit, e.g. A "Start_PB".
Mitsubishi (GX Works)LD / AND / ORLD X0 loads a normally-open contact on X0; AND / OR extend the rung in series/parallel.

XIC is Allen-Bradley vocabulary. Everyone else just calls it a normally-open (NO) contact — the symbol and the bit-equals-1 evaluation rule are identical across every IEC 61131-3 ladder editor.

In practice

Worked XIC examples

Example 1 — direct sensor to output

| Photo_Eye                            Green_Lamp |
|----] [--------------------------------( )-------|

The simplest possible rung: an XIC examining the Photo_Eye input bit drives an OTE coil. Every scan, the PLC reads the input image — if the photo-eye sees a part (bit = 1), the XIC is true and the lamp bit is written to 1; if not, the OTE writes 0. The lamp tracks the sensor with a delay of at most one scan time.

Example 2 — seal-in (start/stop) circuit

| Start_PB    Stop_PB                      Motor |
|----] [--------]/[------------+------------( )--|
| Motor                        |                 |
|----] [-----------------------+                 |

The XIC examining the Motor output bit — in parallel with the Start_PB contact — is what makes this circuit latch. On the scan where Start_PB is pressed, the rung goes true and Motor is written to 1. On the next scan, the XIC Motor branch is now true, so the rung stays true even after the operator releases the button. Pressing Stop_PB breaks continuity and the seal collapses.

This example shows XIC examining two different kinds of bits in one circuit: a physical input (Start_PB) and the output bit itself (Motor). It is the standard motor-starter pattern and the first circuit worth memorizing.

Gotchas

Common XIC mistakes

  • Assuming XIC means "a normally-open button is wired here"

    XIC is true when the bit is 1 — full stop. Safety devices (E-stops, guard switches) are wired normally closed, so their healthy state reads 1 and an XIC on them is true with nobody touching anything. Reading the electrical drawing and the ladder together is the only way to get this right.

  • Expecting an XIC to catch a pulse shorter than the scan time

    The XIC reads the input image captured once per scan. A 2 ms pulse from a high-speed sensor on a 10 ms scan will often be missed. Use a latching input, a high-speed counter card, or an event task instead.

  • Duplicating a tag on XIC and OTE in ways that fight each other

    Any number of XICs may examine a bit, but if two OTE rungs write the bit the last rung scanned wins. When a seal-in circuit "randomly" drops out, search the program for a second OTE on the same tag.

  • Using XIC where an edge is needed

    An XIC is level-triggered: it stays true as long as the bit is 1. Feeding a counter or a toggle from a plain XIC means the action repeats every scan while the input is held. Put an ONS after the XIC when the logic must fire once per press.

Run XIC live — no install

Drop the instruction on a rung in the browser simulator, toggle the inputs, and watch the rung state, accumulator values and outputs update scan by scan.

Questions

XIC — frequently asked

What does XIC mean in PLC programming?

XIC stands for Examine If Closed. It is the Allen-Bradley name for the normally-open contact instruction in ladder logic: the instruction is true (passes rung continuity) when the bit it examines is 1, and false when the bit is 0. It reads the bit — it never changes it.

What is the XIC symbol in ladder logic?

The XIC symbol is two parallel vertical bars on the rung — ] [ — the same symbol as a normally-open relay contact, with the tag name written above it. The normally-closed counterpart (XIO) adds a diagonal slash: ]/[.

What is the difference between XIC and XIO?

They are exact opposites. XIC (Examine If Closed) is true when the examined bit is 1; XIO (Examine If Open) is true when the bit is 0. For any bit, exactly one of the two evaluates true on a given scan. XIC maps to the IEC normally-open contact, XIO to the normally-closed contact.

Can an XIC examine an output or internal bit, not just an input?

Yes. XIC works on any BOOL: physical inputs, internal memory bits, timer and counter done bits, and output bits. Examining an output bit with an XIC is exactly how a seal-in circuit holds a motor running after the start button is released.