FAILURE MAP
← Case archive

FA-91990 / PLC ladder logic scan cycles / Member archive

One-shot storage bit only updates when a pulse is produced · case 05

After one pulse the instruction never fires again because its storage bit is never refreshed to the input.

Member previewVariant 5 · 3 implementations · 8 checks per implementation

Case contract

One-shot rising (OSR) and one-shot falling (OSF) instructions executed in program order each scan; instrs is a list of [kind, input_tag, storage_tag] and scans a list of {tag: bool} (missing tags are false). Prescan initializes each OSR storage bit true and each OSF storage bit false (later instructions overwrite shared storage), so nothing pulses on the first scan merely because an input is already in its steady state. OSR pulses when input is true and storage false; OSF pulses when storage is true and input false; the storage bit is then set to the input. Instructions that share a storage tag share its state. Return the pulse list per scan.

Why this case matters

Ladder programs are executed as repeated scans; each defect here changes what a rung, timer, counter or data-table instruction reports on a particular scan, which is how commissioning and field faults are actually observed.

One recorded failure

Sample boundary fixture

This sample comes from the broken implementation of a controlled reproducer.

Boundary fixtureActualExpectedOutcome
regression: scenario 2[[false, false, false, false], [false, false, false, false], [false, false, false, false], [false, false, false, false], [false, false, false, false], [false, false, false, false], [false, false, false, false], [false, false, false, false], [false, false, false, false], [false, false, false, false]][[false, false, false, false], [true, false, false, false], [false, false, false, false], [false, false, false, false], [false, true, false, false], [false, false, false, false], [false, true, false, false], [true, false, false, false], [false, true, false, false], [false, false, false, false]]Failed

MEMBER ARCHIVE

The complete case is available to members.

This record includes three runnable implementations, regression fixtures, execution results, and source hashes.

Member access is invitation-based. Sign in with your invited account to inspect the sources.

Sign in to the archive ↗