As always:
When you have a fault in an S7 PLC, you must investigate the diagnostics buffer. The diagnostics buffer will tell you why the PLC has faulted, and what error OBs that was attempted to call in order to avoid the CPU going into STOP.
A tip: In stead of just mindlessly copying an empty OBxx into the program, add some alarm code to the error OB to warn the operator that something is wrong.