Skip to content

OTE — Output Energize

Category
Bit
Type
Output
Availability
All platforms

OTE instruction block showing the coil symbol


OTE (Output Energize) sets a bit to 1 (true) when the rung conditions are true, and clears it to 0 (false) when the rung conditions are false. Use OTE as the output instruction on every rung—it is the most fundamental way to control a digital output, a memory flag, or any writable bit. OTE is not latching; the output follows the rung conditions in real time every scan. Do not use OTE to pulse an output momentarily; use ONS (one-shot) before OTE, or use a timer/counter for timed pulses.


Operand Type Format Valid Range Required Description
Address BOOL or bit member Tag name or Tag.bit Any writable BOOL tag or INT/DINT bit member Yes The tag or bit to set. OTE sets this to 1 when the rung is true, and clears it to 0 when the rung is false. If the address is a pin, the firmware writes the logic level to the hardware pin.

OTE has no persistent state. On the transition to run mode, OTE initializes the bit to its force value (or 0 if not forced).

If the rung conditions to the left of OTE evaluate to false (no power flow), OTE clears the bit to 0. The output is de-energized.

If the rung conditions to the left of OTE evaluate to true (power flows), OTE sets the bit to 1. The output is energized.

OTE has no special postscan behavior. The final logic state is written to the output on the last scan.


Scenario: A start button (XIC StartBtn) gates a motor output. When the button is pressed, the motor runs; when released, it stops immediately.

Initial state:

  • StartBtn = 0 (button not pressed)
  • MotorRun = 0 (motor off)

Rung logic:

—|XIC StartBtn|———(OTE MotorRun)———

Scan 1 — Button not pressed:

  • Rung-in: StartBtn is 0
  • OTE result: Bit is cleared to 0 (output de-energized)
  • Output: MotorRun = 0 (motor stays off)

OTE example: StartBtn = 0 (not pressed), rung false, OTE clears MotorRun to 0

Values: StartBtn = 0, MotorRun = 0 (grayed out, de-energized)

Scan 2 — User presses the button:

  • Rung-in: StartBtn becomes 1 (XIC conducts)
  • OTE result: Bit is set to 1 (output energized, highlighted in orange)
  • Output: MotorRun = 1 (motor turns on)

OTE example: StartBtn = 1 (pressed), rung true, OTE sets MotorRun to 1 (orange)

Values: StartBtn = 1, MotorRun = 1 (orange highlight, energized)

Scan 3 — User releases the button:

  • Rung-in: StartBtn returns to 0 (XIC does not conduct)
  • OTE result: Bit is cleared to 0 (output de-energized)
  • Output: MotorRun = 0 (motor stops immediately)

OTE is non-latching: the output follows the rung conditions every scan. Release the button and the motor stops on the next scan with no delay.


  • XIC — Examine If Closed (gates the rung conditions)
  • XIO — Examine If Open (inverted condition)
  • OTL / OTU — Output Latch / Output Unlatch (memory outputs that hold state)
  • ONS — One-Shot (pulse the output for one scan)
  • Bit Logic Instructions — Category index

Non-latching behavior: OTE does not hold state. The bit is set only while the rung is true. The instant the rung becomes false, OTE clears the bit. This is different from OTL (Output Latch), which holds state until cleared by an RES instruction.

Output pin writes: When OTE targets a hardware pin (e.g., D13), the firmware writes the logic level to digitalWrite() on that pin every scan. The pin reads as the last value written, whether by OTE or by an input coil.

Bit members: OTE accepts INT and DINT bit members—for example, Flags.3 sets bit 3 of the tag Flags. Both the bit and the base word are updated; you can read the full word to inspect all bit states.

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