Diagnose S7-400 Event 16#3507 When OB35 Must Run Every 100 ms

Diagnose S7-400 Event 16#3507 When OB35 Must Run Every 100 ms

For an S7-300/400 CPU, Siemens identifies event W#16#3507 as multiple OB request errors that caused an internal buffer overflow; it is handled by OB 80. That event ID does not identify a specific CFC block or prove that a 100 ms OB35 interval is itself the root cause. Use the complete diagnostic-buffer entry and OB 80 information to identify which priority-class OB requests overflowed before deciding whether execution load, other interrupt OBs, or a particular block requires attention.

Table of Contents

What event 16#3507 means

The source fragment says it was split from a thread about event ID 16#3507, an OB35 interval of 100 ms, and distributing a block among OBs. Siemens' S7-300/400 system software reference lists W#16#3507 as “Multiple OB request errors caused internal buffer overflow” and associates it with OB 80. This identifies an OB-request-buffer overflow condition; it does not name a block or say that OB35 alone generated all pending requests.

Do not confuse the event ID W#16#3507 with OB 80's local error code B#16#07. Siemens' OB80 documentation describes B#16#07 as overflow of the request buffer for the current priority class. The full diagnostic record and CPU-specific OB80 information are needed to determine which class and OB requests were involved.

Can one CFC block cause it?

The available source does not identify the block, its execution time, the CPU model, or other interrupt OBs, so it cannot establish that one block caused the overflow. A block executing in OB35 contributes to OB35's execution demand, but repeated buffer overflow is a system-level symptom involving OB requests. Other OBs with the same or higher interrupt priority and additional event sources may also contribute. Verify the active/requested OB and priority-class information before changing block assignment.

Diagnostic method

  1. Capture the complete CPU diagnostic-buffer entry for W#16#3507, including the event class, incoming/outgoing state, timestamp, causing/requested OB information, and any associated OB80 local data available in the installed CPU/STEP 7 version.
  2. Confirm the CPU model and firmware and consult the matching CPU reference. The cited event mapping applies to S7-300/400; the source does not identify the precise CPU or firmware.
  3. If OB 80 is configured to record its temporary values, inspect the OB80 error code and associated event/priority/OB numbers. In Siemens' S7-300/400 OB80 documentation, error code B#16#07 denotes overflow of the request buffer for the current priority class; its related values help identify the error event and OB context. Do not rely only on the summary 16#3507 when the full record is available.
  4. Measure or inspect the execution time and call frequency of OB35 and the other interrupt OBs in the affected priority classes using the supported tools for the installed STEP 7/CPU version. Compare worst-case execution time and the OB35 interval; a nominal 100 ms interval alone does not reveal actual load.
  5. Check the CFC charts and block calls executed in the implicated OB. Compare a controlled configuration with the suspected block enabled/disabled only in an approved simulation or test environment. Do not move or disable production logic based solely on correlation.
  6. Change one justified factor at a time, then review the diagnostic buffer and timing data under the same operating conditions.

Keeping an OB35 interval of 100 ms

A 100 ms OB35 requirement is an application constraint, not proof that the CPU has capacity for the configured task set. If OB35 must remain at 100 ms, first determine its measured worst-case runtime and the buffer/priority information for event 16#3507. If the evidence points to OB35 execution demand, reduce or restructure work only under the application's functional and timing requirements; distribute work across OBs only when those OBs and their priorities are appropriate and the resulting data-update timing is acceptable. The missing source context does not support prescribing a specific block split, CPU setting, or replacement interval.

When to escalate

Escalate with the full diagnostic-buffer record, CPU model/firmware, OB80 local data, OB35 period and measured runtime, other interrupt OB configuration, and the CFC blocks assigned to those OBs. The thread was a duplicate of an older discussion, and its omitted original posts contained the countermeasure proposals; without them, the exact rejected alternatives and symptom sequence cannot be reconstructed. A block-specific fix therefore remains unresolved.

Verification

After any approved test or project change, confirm that event W#16#3507 and associated OB80 overflow indications no longer recur under representative load, and verify that the required 100 ms task still meets its application timing. Review the diagnostic buffer over a period that includes the conditions that previously produced the error. Absence of the event in a short test does not establish that the issue is eliminated.

Limitations and Operational Precautions

The ticket fragment omits the CPU model, firmware, full diagnostic record, block identity, execution times, other OB configuration, and the original thread's countermeasure proposals. The Siemens event reference establishes the meaning of W#16#3507, but not the source-specific root cause or a particular cure. Keep the 100 ms requirement only if it is an approved application requirement and validate the full task set against the actual CPU. Changes to interrupt OB assignment, code, or timing can alter process behavior and require site change control and a suitable test/rollback plan.

Engineer FAQ

Does event W#16#3507 mean one CFC block is too slow? No. Siemens maps it to multiple OB request errors causing internal buffer overflow; the event ID alone does not identify a block.

Which OB handles the event? Siemens' S7-300/400 event table associates W#16#3507 with OB 80.

Can OB35 remain at 100 ms? The event ID alone cannot answer that. Review measured OB35 execution time, other OB load, and the OB80 priority/OB details against the application requirement and actual CPU.

Technical References

  • Siemens, System Software for S7-300/400 System and Standard Functions, Volume 2/2, Reference Manual, 05/2010, A5E02790053-01, §35.4 “Event Class 3 – Asynchronous Errors,” p. 769: W#16#3507 is “Multiple OB request errors caused internal buffer overflow” and maps to OB 80. Official PDF opened and searched: https://cache.industry.siemens.com/dl/files/604/44240604/att_67003/v1/s7sfc_en-EN.pdf
  • Siemens, Time error OB (OB 80) (S7-300, S7-400), STEP 7 V21 documentation, entry for error code B#16#07: overflow of the request buffer for the current priority class, with associated OB/event information. This later CPU documentation is cited for the meaning of that OB80 code; verify applicability against the installed CPU/firmware: https://docs.tia.siemens.cloud/r/en-us/v21/organization-blocks-s7-300-s7-400/time-error-ob-ob-80-s7-300-s7-400

Related Articles

Related Tags

PCS 7, OB35, OB80, S7-400, cycle timing

20 respuestas