S7-1500 CPU in STOP with OB121, Fault_ID 16#3A after partial download, what to check?
My S7-1500 CPU went into STOP mode and called OB121 with Fault_ID 16#3A. This happened right after I did a partial download to the controller. What should I check first to get it running again?
An S7-1500 CPU in STOP mode with OB121 and Fault_ID 16#3A indicates a programming error, specifically an attempt to access a data block (DB), function (FC), or function block (FB) that is either not loaded or does not exist. This often occurs after a partial download or if a block was recently deleted. The CPU stops because neither OB121 nor local error handling caught the error.
Likely causes and checks
1Access to a missing or unloaded block
- Points to it
- The CPU attempted to access a DB, FC, or FB that was not present or fully loaded in its memory. This is a common consequence of partial downloads or when a block has been deleted from the project but is still referenced in the program.
- Check
- Perform an online/offline comparison of the blocks in the CPU with your project. Identify any missing blocks and download them to the CPU.
2Area or length error from indirect addressing
- Points to it
- An indirect address or array access attempted to read or write data outside its defined memory area or with an incorrect length. This is indicated by Fault_ID 16#22–16#25.
- Check
- Examine the diagnostics buffer to pinpoint the block and the specific access causing the error. Read the value of the index or pointer at the time of the error and compare it against the valid range of the addressed area.
3Block call nesting or local data exceeded
- Points to it
- The program exceeded the maximum allowed block call nesting depth or the allocated local data memory. This is indicated by Fault_ID 16#00/16#75 for nesting depth or 16#76 for local data.
- Check
- Review the call depth and any recursion within the block identified in the diagnostics buffer (BlockNr) to ensure it does not exceed the controller's limits.
Next check: Given the Fault_ID 16#3A and the context of a partial download, the most immediate step is to perform an online/offline comparison of the blocks in the CPU with your project and download any missing blocks.
Related questions
Describe the fault or upload a photo, and InduQT checks it against the manufacturer manuals. Share the result here when it helps someone else.