Siemens SIMATIC S7-1500 warning OB122: I/O access error
The operating system calls OB122 when an error occurs during direct access to I/O data while an instruction executes, for example a read error on direct access to an input module, provided the block does not use GET_ERROR or GET_ERR_ID. Fault_ID 16#42 is a read error, 16#43 a write error. On the S7-1500 the CPU always stays in RUN on an I/O access error and writes a diagnostics buffer entry, even without OB122; on S7-300/400 a missing OB122 puts the CPU in STOP.
Diagnose this with AI
Try Free PLC Fault Diagnostic Upload a keypad photo, the fault history or a parameter export from your Siemens SIMATIC S7-1500. InduQT compares the evidence and suggests the next useful checks.
When it happens
- RUN, when the program directly reads or writes I/O (e.g. %IW…:P) of a module that is not available
Likely causes and checks
1Module or station not available at the time of direct access
- Points to it
- OB122 together with OB83 or OB86 events for the same hardware.
- Check
- Check the module or station status in Online & diagnostics.
2Direct access to an address with no configured module
- Points to it
- Error repeats every cycle at the same address.
- Check
- Compare the address in the program with the hardware configuration.
Telling it apart
- An I/O access error on the S7-1500 never stops the CPU on its own; if the CPU stopped, look for OB121 or OB80 entries instead.
- A read error (16#42) means the program did not get a valid value for that input; check what the logic does when the access fails.
Evidence to collect
- Diagnostics buffer export
- OB122 start information (BlockNr, Fault_ID, Area, Width), if logged
- Address accessed and the hardware configuration
- Module or station status at the time
Work on fuel trains, burners, pressure vessels and electrical equipment must be done by qualified personnel following the manufacturer’s documentation and local codes. Never bypass a safety device or interlock.