XIO — Examine If Open

Description
Section titled “Description”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.
Operands
Section titled “Operands”| 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. |
Scan Behavior
Section titled “Scan Behavior”Prescan
Section titled “Prescan”XIO has no persistent state. On the transition to run mode, XIO reads the bit and evaluates immediately.
Rung-condition-in is false
Section titled “Rung-condition-in is false”If the rung conditions to the left of XIO evaluate to false (no power flow), XIO does not evaluate. Downstream logic receives no power.
Rung-condition-in is true
Section titled “Rung-condition-in is true”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.
Postscan
Section titled “Postscan”XIO has no state to update on the final scan. Transition out of run mode has no effect on XIO.
Example
Section titled “Example”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:
SafetyStopis 0 (pull-up released, no button press) - XIO result: Conducts (continuity passes, because XIO conducts when the bit is 0)
- Output:
AlarmActiveis energized to 1 (alarm turns on)

Scan 2 — User presses the safety stop button:
- Rung-in:
SafetyStopbecomes 1 (button pulled low, read as 1) - XIO result: Does not conduct (continuity stops, because XIO only conducts when the bit is 0)
- Output:
AlarmActiveis de-energized to 0 (alarm stops)

Scan 3 — User releases the safety stop button:
- Rung-in:
SafetyStopreturns to 0 (pull-up releases it) - XIO result: Conducts again
- Output:
AlarmActivere-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.
See Also
Section titled “See Also”- 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