Ladder - Two-Hand Press Anti-Tie-Down
Five rungs of two-hand control where both buttons are made inside the 500 ms concurrency window (a TP pulse at 180 ms) and the ram is correctly permitted on rung 4 -- then a maintenance mute rung writes Ram_Solenoid a second time and silently overrides it, the duplicate destination flagged alongside a light-curtain tag examined by a contact that nothing in the program writes.
Make it your own.
title "Two-hand press - anti-tie-down with a duplicate destination"
state: PB_Left, PB_Right, Guard_Closed, E_Stop_OK, Mute_Request=0
rung "Both buttons, the guard and the E-stop permit a stroke"
xic PB_Left
xic PB_Right
xic Guard_Closed
xic E_Stop_OK
ote Stroke_Permit
rung "Anti-tie-down: both buttons must arrive inside 500 ms"
xic PB_Left
xic PB_Right
tp T_Concurrency preset: 500 accum: 180 unit: ms
rung "Light curtain must be clear - and nothing writes this tag"
xio Curtain_Broken
ote Curtain_Clear
rung "Ram solenoid - the intended destination"
xic Stroke_Permit
xic Curtain_Clear
xic T_Concurrency.DN
ote Ram_Solenoid
rung "Maintenance mute writes the same coil again - the last write wins"
xic Mute_Request
ote Ram_Solenoid