This is a brief tutorial on the differences between different restart types of a PLC. This information is necessary as performing a wrong type of restart in certain situations could be detrimental to the data the PLC is working with.
- A Warm Restart of a plc refers to restarting the CPU (from “Stop” to “Run”), in which program processing/execution is restarted at the beginning* but “Retentive data” is retained. However, all non-retentive bit memory and non-retentive variables are reset to their initial values from load memory.
*Program execution begins at the call of the first startup routine.
Note how the start attribute of the variable ‘VFD’ is set to ‘retain’—assigning it as retentive data—with the current value at ’45.6’. Also, how the start attribute of the variable ‘Flow’ is left blank—assigning it as non-retentive data—with the current value at ’45.7’.
After performing a warm restart on the controller, the value of the variable VFD remained as it was before the restart, while the value of Flow was reset to its initial/default value of ‘0.0’. A Cold Re/Start of a plc involves program execution restarted at the beginning and all data (process image, bit memory, timers, counters, and data blocks) are reset to the initial values stored in the program (load memory), irrespective of whether they were configured as retentive or non-retentive.
In this, note how the value of retentive variable ‘VFD’ has now also been reset to its initial/default value of 0.0 upon remotely performing a cold reset of controller.
The value of the variable ‘START’ has remained ‘true’ so far and persists still even after the cold restart of the system. This is because the ABB Control Builder software has an option to set a variable to retain its data even after a cold restart has been performed. This is done by setting the variable’s start attribute to ‘coldretain’. To perform a restart that resets all variables fully to their initial/default values in this software, you would need to perform an “Initialize” function.
Following the initialize command all data has been reset to their default values regardless of their retentive or non-retentive properties.
A Hot Restart has all program data retain their last valid value and program execution is resumed at the breakpoint. The outputs also do not change their status until the current cycle is completed. During a hot restart in which the user program is continued at the location at which the processing was interrupted; the part of the user program that was no longer processed before the power failure is referred to as the remaining cycle. This usually occurs when there’s a power loss to the CPU when it hasn’t been manually put in STOP mode. The ability to hot restart is not available for all controllers.
Note how in the Siemens TIA portal the option for a hot restart is available for a controller in the S7400 series as opposed to others in both the S7300 and S71200.