Skip to content

XIO — Examine If Open

Category
Bit
Type
Input (condition)
Availability
All platforms

XIO instruction block showing the open contact symbol


XIO (Examine If Open) tests a bit and allows logic continuity to pass downstream when the bit is 0 (false). Use it to gate logic on the opposite condition of XIC—safety shutdowns that must run when a switch is open, alarms that trigger when a sensor is inactive, or inverted logic paths. XIO is the logical inverse of XIC; every rung with XIC can be paired with a corresponding XIO on parallel legs. Do not use XIO to count events or store state; use data-file instructions (timers, counters, shift registers) for stateful behavior.


Operand Type Format Valid Range Required Description
Address BOOL or bit member Tag name or Tag.bit Any declared BOOL tag or INT/DINT bit member Yes The tag or bit to examine. Continuity passes to the downstream rung when the bit is 0 (false). On hardware, an I/O pin defaults to INPUT_PULLUP (active-low) — a switch wired to GND reads as 0, which XIO treats as true and conducts.

XIO has no persistent state. On the transition to run mode, XIO reads the bit and evaluates immediately.

If the rung conditions to the left of XIO evaluate to false (no power flow), XIO does not evaluate. Downstream logic receives no power.

XIO examines the bit value. If the bit is 0 (false), XIO conducts and continuity passes to the right. If the bit is 1 (true), XIO does not conduct and downstream logic receives no power. This is the inverse of XIC.

XIO has no state to update on the final scan. Transition out of run mode has no effect on XIO.


Scenario: A safety stop button wired to pin D3 (tag SafetyStop, BOOL) should block an alarm from sounding. When the safety stop is NOT pressed (bit = 0), the alarm output should be allowed to energize.

Initial state:

  • SafetyStop = 0 (safety stop button not pressed, input pulled high by the pull-up)
  • AlarmActive = 0 (alarm off)

Rung logic:

—|XIO SafetyStop|———(OTE AlarmActive)———

Scan 1 — Safety stop button is NOT pressed:

  • Rung-in: SafetyStop is 0 (pull-up released, no button press)
  • XIO result: Conducts (continuity passes, because XIO conducts when the bit is 0)
  • Output: AlarmActive is energized to 1 (alarm turns on)

XIO example: SafetyStop = 0 (not pressed), XIO conducts, AlarmActive energized and highlighted in orange

Scan 2 — User presses the safety stop button:

  • Rung-in: SafetyStop becomes 1 (button pulled low, read as 1)
  • XIO result: Does not conduct (continuity stops, because XIO only conducts when the bit is 0)
  • Output: AlarmActive is de-energized to 0 (alarm stops)

XIO example: SafetyStop = 1 (pressed), XIO does not conduct, AlarmActive de-energized and grayed out

Scan 3 — User releases the safety stop button:

  • Rung-in: SafetyStop returns to 0 (pull-up releases it)
  • XIO result: Conducts again
  • Output: AlarmActive re-energizes to 1 (alarm restarts)

The XIO condition gates continuity frame-by-frame with inverted logic. The alarm runs only while the safety stop is NOT pressed.


  • XIC — Examine If Closed (normal logic — passes continuity when the bit is 1)
  • OTE — Output Energize (basic output coil — the most common downstream target)
  • OTL / OTU — Output Latch / Output Unlatch (memory outputs that hold their state)
  • Bit Logic Instructions — Category index
  • Hardware Compatibility — Pin configuration, pull-up behavior, input wiring

Inverted logic: XIO is XIC inverted. Where XIC conducts when the bit is 1, XIO conducts when the bit is 0. Both use the same underlying bit value; the difference is purely in the condition evaluation.

Pull-up behavior: Input pins are configured as INPUT_PULLUP (active-low). A switch wired to GND pulls the pin to 0. For XIO: a pressed button (bit = 1) does NOT conduct; a released button (bit = 0) DOES conduct. The logic is backwards from a user expectation—use XIC with a normally-open switch for “start” logic, XIO with the same switch for “stop” logic.

Bit members: XIO accepts INT and DINT bit members—for example, Flags.3 examines bit 3 of the tag Flags. The bit resolves at runtime; there is no separate tag for the member.

Applies to LadderIDE >=1.2.2 · Last reviewed 2026-09-08 · Screenshots verified 2026-09-08