One possible cause is that the properties of the CPU were wrongly set. Therefore, you should check in the HW Config under "Properties of the CPU > Tab: Cycle/Clock Memory > parameter "OB85 call upon I/O access error", whether "Only for incoming and outgoing errors" is set and change the setting if necessary.
This is the only way to make sure that the I/O access error (output parameter QPERAF) is evaluated correctly. Furthermore, you save cycle time, because repeated calling of the OB 85 can increase the cycle time.
This setting is absolutely mandatory when using the SIMATIC PCS 7 driver concept! Please also refer to Entry ID: 10331925.
With SIMATIC PCS 7 version V6.0, this is a default setting in the HW Config for all PCS7 projects.