A normal behavior of of human when they see a button… be it a mobile phone button or a physical push button on a panel…. is to push it and release it within 100msec to 500msec. Sometimes this short duration of push button does not gets registered on the program or PLC logic. That is when we need to introduce some intelligence in the PLC forefront to sustain the user action so that when it comes time to process the user action, it is register and processed accordingly.
Why would someone want to do adopt this since PLC execution cycle is in milliseconds? This is handy when it comes resetting a PLC panel. After a shutdown has occurred, the PLC panel will need to be reset, which essentially resets (energize and latch) all the field IO (alarm and shutdown). Sometimes, the user push button action/duration might not be long enough to register and reset all the alarming IO points. That is when this logic comes in handy.
In the world of PLC logic, there are several ways to do it but this is how I would do it.
The TOF instruction has been adopted in my example, which is essentially a none retentive timer that accumulates time when the instruction is enabled.
What it means is that when the “Alarm_Reset” shunt is activated (for example user presses a reset button), rung 4 (n the snippet above) will get activated, enabling the TOF instruction and starting the TOF timer (Accum is initialized to zero). The HOLD_RESET_CMD_TMR.TT is enabled for the duration of 30000msec which energized rung 5 and the “ResetCmd” coil for the same duration. Upon expiration of 30000msec, rung 5 will be de-energized.
I hope it helps our fellow PLC programmers.