ONS Instruction Not Energizing OTE in Studio 5000 Ladder Logic — figure 1

ONS Instruction Not Energizing OTE in Studio 5000 Ladder Logic

ONS instruction fires but the OTE coil never latches in Studio 5000 because the one-shot is only true for one scan. Use OTL/OTU or seal-in logic instead.

Online monitors sometimes show an ONS storage bit transitioning while the intended OTE never appears to energize a pump starter or solenoid. In Studio 5000 Logix Designer this is usually not a failed output card. The ONS is a rising-edge detector that is true for one routine evaluation only. The OTE writes its rung condition every scan with no internal seal. Pair them directly and you create a one-scan pulse—often 5–20 ms—that contactors, VFDs, and even HMI animations effectively ignore, while the IDE’s slower display rate misses the pulse entirely.

ONS Instruction Not Energizing OTE in Studio 5000 Ladder Logic — figure 1

Relay-logic intuition fails here: a 10 ms Logix write is not the same as a held auxiliary contact.

Scan physics

Scan Input edge ONS out OTE tag
n-1 0 0 0
n 0→1 1 1 (one scan)
n+1 1 0 0
n+2 1 0 0

Real starters often need 50–100 ms of solid command. A solitary ONS→OTE path cannot provide that. Studio 5000’s watch windows sample far slower than the task period, so the probability of catching a 10 ms pulse is low—hence the myth that “the ONS never fired.”

Diagnostic stretches

  • Parallel TOF (1–2 s preset) on the ONS event; watch .TT/.DN in the IDE
  • ADD 1.0 to a REAL counter on each edge; trend the count
  • Studio Trend at ~10 ms sample on the OTE tag to see the true duty cycle
ONS Instruction Not Energizing OTE in Studio 5000 Ladder Logic — figure 2

Seal-in or OTL/OTU patterns convert a one-shot decision into a sustained run command.

Solution A — OTL / OTU

[Pump1_RunCmd_ONS] ----(OTL Pump1_RunCmd)
[Pump1_Stop_PB]    ----(OTU Pump1_RunCmd)
[Pump1_Fault]      ----(OTU Pump1_RunCmd)

Remember latches are retentive across power cycles by default. Add first-scan or maintenance resets for outputs that must not restart a motor after a reboot.

Solution B — seal-in around OTE

|--[Start_ONS]-+----------(OTE RunCmd)--|
|              |                        |
|--[RunCmd]----+                        |
|--[Stop_PB]---/                        |

This is the three-wire starter analogy endorsed throughout Logix programming practice: the ONS provides the start edge; the sealed RunCmd contact sustains the OTE until stop or interlock opens the path.

Solution C — state bit plus command OTE

For sequenced equipment, OTL a Selected step on the edge, drive a Start OTE while Selected and not Running feedback, then OTU Selected on feedback. The HMI still sees a real Start command while the latch owns the step.

Lead/lag context and pitfalls

Runtime-hour pump sequencers commonly misuse ONS on “this pump is now lead” compares. After fixing the edge-to-command structure, add minimum run timers (anti-short-cycle), alternate-lead rotation inhibits, and fault OTU paths. Cross-reference the OTE tag for duplicate coils later in the scan that silently overwrite a sealed 1 with 0. Prefer one coil owner per BOOL.

Also inspect branch topology: a parallel path that bypasses the ONS can leave the OTE false even when the storage bit flickers, and a second routine writing the same BOOL can undo a perfect seal-in one task later. When several consumers need the pulse, drive a single intermediate BOOL from the ONS once, then fan out sealed or latched logic from that bit.

// Temporary stretch — remove before final commissioning
[Pump1_Start_ONS] ---(TOF Stretch_Timer, 2.0 s)
[Stretch_Timer.TT] ---(OTE Diagnostic_Stretch_On)

With the stretch in place, Diagnostic_Stretch_On remains visible in the IDE and on an HMI flash indicator, proving edge rate before you trust production seal-in logic. Delete or inhibit the diagnostic path after FAT so operators do not chase a service lamp forever.

Adopt these ownership rules consistently across PLC and PAC platforms so night-shift edits do not reintroduce naked ONS→OTE rungs on the next package.

About the Author

Mark Townsend | Senior Automation Engineer – Allen-Bradley Systems

Mark Townsend is a senior automation engineer with more than 18 years on Allen-Bradley platforms spanning ControlLogix, CompactLogix, and legacy SLC-500. His day-to-day work is RSLogix / Studio 5000 logic and FactoryTalk View HMI bring-up on aging and mixed fleets.

ONS Instruction Not Energizing OTE in Studio 5000 Ladder Logic

ONS instruction fires but the OTE coil never latches in Studio 5000 because the one-shot is only true for one scan. Use OTL/OTU or seal-in logic instead.

Online monitors sometimes show an ONS storage bit transitioning while the intended OTE never appears to energize a pump starter or solenoid. In Studio 5000 Logix Designer this is usually not a failed output card. The ONS is a rising-edge detector that is true for one routine evaluation only. The OTE writes its rung condition every scan with no internal seal. Pair them directly and you create a one-scan pulse—often 5–20 ms—that contactors, VFDs, and even HMI animations effectively ignore, while the IDE’s slower display rate misses the pulse entirely.

ONS Instruction Not Energizing OTE in Studio 5000 Ladder Logic — figure 1

Relay-logic intuition fails here: a 10 ms Logix write is not the same as a held auxiliary contact.

Scan physics

Scan Input edge ONS out OTE tag
n-1 0 0 0
n 0→1 1 1 (one scan)
n+1 1 0 0
n+2 1 0 0

Real starters often need 50–100 ms of solid command. A solitary ONS→OTE path cannot provide that. Studio 5000’s watch windows sample far slower than the task period, so the probability of catching a 10 ms pulse is low—hence the myth that “the ONS never fired.”

Diagnostic stretches

  • Parallel TOF (1–2 s preset) on the ONS event; watch .TT/.DN in the IDE
  • ADD 1.0 to a REAL counter on each edge; trend the count
  • Studio Trend at ~10 ms sample on the OTE tag to see the true duty cycle
ONS Instruction Not Energizing OTE in Studio 5000 Ladder Logic — figure 2

Seal-in or OTL/OTU patterns convert a one-shot decision into a sustained run command.

Solution A — OTL / OTU

[Pump1_RunCmd_ONS] ----(OTL Pump1_RunCmd)
[Pump1_Stop_PB]    ----(OTU Pump1_RunCmd)
[Pump1_Fault]      ----(OTU Pump1_RunCmd)

Remember latches are retentive across power cycles by default. Add first-scan or maintenance resets for outputs that must not restart a motor after a reboot.

Solution B — seal-in around OTE

|--[Start_ONS]-+----------(OTE RunCmd)--|
|              |                        |
|--[RunCmd]----+                        |
|--[Stop_PB]---/                        |

This is the three-wire starter analogy endorsed throughout Logix programming practice: the ONS provides the start edge; the sealed RunCmd contact sustains the OTE until stop or interlock opens the path.

Solution C — state bit plus command OTE

For sequenced equipment, OTL a Selected step on the edge, drive a Start OTE while Selected and not Running feedback, then OTU Selected on feedback. The HMI still sees a real Start command while the latch owns the step.

Lead/lag context and pitfalls

Runtime-hour pump sequencers commonly misuse ONS on “this pump is now lead” compares. After fixing the edge-to-command structure, add minimum run timers (anti-short-cycle), alternate-lead rotation inhibits, and fault OTU paths. Cross-reference the OTE tag for duplicate coils later in the scan that silently overwrite a sealed 1 with 0. Prefer one coil owner per BOOL.

Also inspect branch topology: a parallel path that bypasses the ONS can leave the OTE false even when the storage bit flickers, and a second routine writing the same BOOL can undo a perfect seal-in one task later. When several consumers need the pulse, drive a single intermediate BOOL from the ONS once, then fan out sealed or latched logic from that bit.

// Temporary stretch — remove before final commissioning
[Pump1_Start_ONS] ---(TOF Stretch_Timer, 2.0 s)
[Stretch_Timer.TT] ---(OTE Diagnostic_Stretch_On)

With the stretch in place, Diagnostic_Stretch_On remains visible in the IDE and on an HMI flash indicator, proving edge rate before you trust production seal-in logic. Delete or inhibit the diagnostic path after FAT so operators do not chase a service lamp forever.

Adopt these ownership rules consistently across PLC and PAC platforms so night-shift edits do not reintroduce naked ONS→OTE rungs on the next package.

About the Author

Mark Townsend | Senior Automation Engineer – Allen-Bradley Systems

Mark Townsend is a senior automation engineer with more than 18 years on Allen-Bradley platforms spanning ControlLogix, CompactLogix, and legacy SLC-500. His day-to-day work is RSLogix / Studio 5000 logic and FactoryTalk View HMI bring-up on aging and mixed fleets.

Leave a comment

Please note, comments need to be approved before they are published.