Each page takes a single defect that builds without a warning: what it does on the controller, why the compiler can't help, and how to find it in your own project — with or without a tool.
REAL_TO_TIME truncates your setpoint, and the compiler is fine with it An operator sets 2.7 seconds. The PLC runs 2.0. Nothing in the project is marked as wrong: it compiles, downloads and runs. The value was lost in a single line of type conversion. Division by zero in Structured Text: what the controller actually does Everyone guards the divisions they are worried about. The ones that fault a plant are the divisions nobody was worried about — where the divisor is a variable that is only zero in a state the code can reach on a bad day. The task watchdog is off. Here is what you lost A watchdog is one checkbox per task, it is easy to switch off while debugging, and it is almost never switched back on. The project runs identically either way — right up to the cycle that doesn't end.