S7-1500 OB122 I/O access error (16#42) in RUN, what to check?
I'm getting an OB122 I/O access error (16#42) on my S7-1500 CPU, but the CPU stays in RUN. It's a read error, and I suspect it's related to direct I/O access. What should I check first?
An OB122 I/O access error on a Siemens S7-1500 CPU indicates a problem during direct access to I/O data, such as reading from an input module. The CPU will remain in RUN and log a diagnostics buffer entry. A 16#42 fault ID specifically points to a read error. This typically occurs when the program attempts to access an I/O module that is unavailable or incorrectly configured.
Likely causes and checks
1Module or station not available
- Points to it
- The program is attempting direct access to an I/O module or an entire station that is not currently available or online.
- Check
- Check the status of the module or station in 'Online & diagnostics' in the programming software. Look for accompanying OB83 or OB86 events in the diagnostics buffer, as these often point to hardware availability issues.
2Direct access to an unconfigured address
- Points to it
- The program is trying to directly read or write to an I/O address for which no module is configured in the hardware setup.
- Check
- Compare the I/O address specified in the program (e.g., %IW…:P) with the actual hardware configuration to ensure a module is assigned to that address. If the error repeats every cycle at the same address, this is a strong indicator.
Next check: After checking module availability and configuration, review the program logic to understand how it handles failed I/O access, especially for read errors (16#42), as the program did not receive a valid input value.
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.