Resolving S7-1515F Fault 0x0D75D1 When Monitoring Safety FBs

David Krause16 min read
Safety SystemsSiemensTroubleshooting
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

1. Problem Overview

The SIMATIC S7-1515F CPU 6ES7 515-2FM00-0AB0 running firmware V1.7.0 enters a fatal safety STOP the instant the engineer activates the Monitor on / off button on any fail-safe (F-) function block, function, or instance DB. The fault occurs on every F-block — even a brand-new project containing a single-input / single-output F-FB produces the same crash. Both TIA Portal V16 and TIA Portal V17 trigger the fault, so the engineering software is not the cause. Re-loading the project, resetting the CPU to factory defaults, and reformatting the SIMATIC Memory Card do not resolve the issue. The CPU logs two linked diagnostic events that point directly at the F-runtime group execution path.

This is a documented F-monitoring bug fixed in a later firmware release. The information below isolates the exact event-ID pair, names the firmware where the bug was first observed, walks through the firmware-update recovery, and lists the acceptance-test, diagnostic-buffer, and prevention steps an integrator must complete to bring the safety program back into a verified state.

Stop the line and capture the diagnostic buffer before any recovery action. Event entries older than the current power-cycle are lost when the CPU is reset to factory settings or when the memory card is reformatted. Always export the buffer to a service file first.

2. Affected Hardware, Firmware, and Engineering Software

Component Value Notes
CPU order number (MLFB) 6ES7 515-2FM00-0AB0 S7-1515F, work memory 450 KB code / 1.5 MB data
CPU firmware (defective) V1.7.0 Confirmed crash on F-block online monitor
Engineering software TIA Portal V16 Update 7 / V17 Both versions reproduce the fault — not a TIA bug
SIMATIC Safety optional package V16 / V17 (matching TIA) Used to compile and download F-blocks
SIMATIC Memory Card ≥ 4 GB, Siemens type Firmware update requires a card ≥ 32 MB free
F-runtime group affected F-runtime group 1 (default) OB 123 execution context

3. Decoding the Diagnostic Event IDs

S7-1500F CPUs format diagnostic events as 16# EE:NNNN, where EE is the event category and NNNN the event number inside that category. Decoding the two events reported during the crash gives a precise picture of what the firmware is doing wrong.

3.1 Event 16#02:2505 — Temporary CPU error: User-programmed STOP in FB 32772 affecting OB 123

Field Value Meaning
Category 0x02 CPU error / STOP request
Number 0x2505 STOP request raised from inside the safety runtime
Source block FB 32772 System-internal F-runtime manager (F-FB skeleton)
Affects OB 123 F-runtime group OB (default F-OB)
Internal address Caddr = 16#00000117 Code address where the abnormal return was raised

3.2 Event 16#0D:75D1 — Safety program: Internal CPU error, F-runtime group 1

Field Value Meaning
Category 0x0D Safety runtime (always STOP-relevant)
Number 0x75D1 Internal CPU error inside the F-program
F-runtime group 1 Default group configured in TIA
Internal error info 1 2 Sub-code: F-monitoring / observation hook
Internal error info 2 0 No additional sub-code returned

The combination is the diagnostic fingerprint of the F-monitoring bug: the safety firmware raises 0x75D1 with sub-code 2 (observation hook) the instant TIA's Monitor on/off request lands inside the F-runtime. The safety kernel then asks the cyclic OB to stop, generating 0x2505. Both events are correlated in the diagnostic buffer — they appear consecutively when the buffer is filtered by "Safety".

4. Root Cause

The S7-1500F firmware versions in the V1.7.x line for the original 6ES7 515-2FM00-0AB0 contain a defect in the F-observation hook. When TIA Portal requests Monitor on on a fail-safe block, the F-runtime attempts to install breakpoint / observation code in the safety OB. The install path dereferences a context structure that the V1.7.0 image initializes late, and the resulting null/invalid pointer is treated as an internal F-error. The F-kernel's fail-safe reaction is mandatory: it can never continue on an internal safety error, so it forces the CPU into STOP with the events above.

Because the bug is inside the F-kernel image, neither the user program, the project, nor the engineering software is the cause. The only way to clear the fault path is to load firmware that contains the corrected observation-hook code. Re-formatting the memory card or resetting to factory defaults does not change the firmware image; it only wipes the user project.

5. Pre-Update Triage Checklist

Run the following steps before touching the firmware. They confirm the event pair and rule out a real safety-program bug that would re-appear after the update.

  1. Connect the engineering station to the CPU and go online. The CPU is in STOP, but the diagnostic buffer remains accessible.
  2. Open Online & diagnostics > Diagnostics > Diagnostic buffer and filter by Safety. Confirm that the only matching events are 16#02:2505 and 16#0D:75D1, with the 0x75D1 timestamped within one second of the 0x2505 entry.
  3. Check the F-program CRC displayed in Online & diagnostics > Safety > F-program information. Record the value — you will need it after the update to verify the F-program was not silently re-compiled.
  4. Capture a screenshot of Online & diagnostics > Diagnostics > Cycle time for the F-runtime group. A cycle time near the configured F-monitoring time can produce similar symptoms; if the F-cycle time is below 50 % of the F-monitoring time, the firmware bug is the more likely root cause.
  5. Export the full diagnostic buffer: Online & diagnostics > Diagnostics > Diagnostic buffer > "Save as service data (ZIP)". Keep the ZIP — Siemens Support will request it if the firmware update does not resolve the fault.
  6. Verify the SIMATIC Memory Card capacity and free space. A firmware update needs ≥ 32 MB free for the temporary load image.
  7. Make a backup of the current project and a copy of the existing memory-card image (read the card with a Siemens card reader or use Online > Backup).
Stop the safety acceptance log. Any F-program change made after the failed monitor will require a partial re-acceptance. If the only change was a monitor session, the safety signature and acceptance test remain valid; document the incident in the change log so the next audit is traceable.

6. Resolution: Update the CPU Firmware

The defect is corrected in later firmware deliveries for the 6ES7 515-2FM00-0AB0. The standard recovery is to flash the latest released firmware for the order number. Siemens provides two supported update paths: from TIA Portal (card update or online update) or from the SIMATIC Automation Tool (multi-CPU shop-floor rollouts).

6.1 Selecting the correct firmware file

Locate the firmware update package in the Siemens support portal under entry ID 109751706 (SIMATIC S7-1500 CPU firmware update V3.x) or the CPU-specific firmware download. The 6ES7 515-2FM00-0AB0 has a single firmware track (it is not a T2/T4 split device). Confirm the file name pattern:

  • SIMATIC_S7-1500_CPU_1515F_2FM00-0AB0_Vxx.y.z.upd

Do not flash firmware from a different MLFB (for example 6ES7 515-2FM02-0AB0) — the bootloader rejects it, but in some configurations it can leave the CPU in an unrecoverable state that requires a card-image recovery.

6.2 Step-by-step firmware update via TIA Portal (recommended for a single CPU)

  1. Connect the engineering station to the CPU's PROFINET interface X1. Use a direct patch cable — do not update the firmware through a managed switch.
  2. Open the project. The CPU must show Online: STOP. If it is in RUN, force it to STOP via Online > Stop CPU and acknowledge the prompt.
  3. Open Online & diagnostics and select Update firmware. TIA Portal scans the connected CPU and displays the current firmware version.
  4. Browse to the downloaded .upd file. TIA Portal verifies the file's signature and the MLFB match.
  5. Click Execute update. The CPU copies the firmware into the update partition on the memory card, reboots into the update partition, and flashes the active partition.
  6. Wait for the CPU to come back online. The CPU runs an extended self-test during the first power-up after a firmware change. This can take 30–60 seconds.
  7. Read the new firmware version in Online & diagnostics > Diagnostics > General and confirm it matches the target version.

6.3 Step-by-step firmware update via SIMATIC Automation Tool (SAT)

  1. Install SAT ≥ V4.0 and add the CPU to a network scan.
  2. Right-click the CPU and choose Firmware update > Load firmware from PG/PC.
  3. Select the .upd file and confirm the target MLFB.
  4. Tick Run firmware update and Restart CPU after update. SAT also supports unattended, sequential updates of many CPUs in a machine fleet.
  5. After SAT reports success, re-establish a TIA Portal connection and read the firmware version directly to verify.

6.4 Step-by-step firmware update via the SIMATIC Memory Card

Use this method if the CPU is unreachable over Ethernet (for example, the bug has put the CPU into a tighter STOP than TIA can recover, or the project is missing).

  1. Power down the CPU and remove the SIMATIC Memory Card.
  2. Open the card in a card reader. The card's root must already contain the file SIMATIC.S7S and the directories FWUPDATE.S7S / SIMOTION per the Siemens convention.
  3. Copy the firmware file SIMATIC_S7-1500_CPU_1515F_2FM00-0AB0_Vxx.y.z.upd into the FWUPDATE.S7S directory on the card.
  4. Create (or copy from the firmware zip) a S7FWUPDATE.BIN trigger file at the card root if your firmware version requires it. Newer TIA-portal-generated packages include the trigger automatically.
  5. Insert the card, power the CPU on, and wait for the update process to finish (READY LED flashing, MAINT LED solid, then both off).
  6. Power-cycle the CPU again to finalize the firmware activation.

7. Verification After the Update

After the CPU is back online, run the following checks before returning the machine to production. They confirm that the F-monitoring bug is gone and that the safety program still matches the as-built documentation.

  1. Read the new firmware version: Online & diagnostics > Diagnostics > General. It must match the target version, e.g. V2.0.x or later.
  2. Reload the project. TIA Portal may prompt to re-accept the safety program if the firmware version bump changed the F-runtime signature; confirm and continue if the project CRC matches the pre-update value recorded in step 3 of the triage checklist.
  3. Open any F-FB or F-FC, click Monitor on / off, and verify the safety program continues to execute and the CPU remains in RUN. The diagnostic buffer must not contain a new 16#0D:75D1 entry.
  4. Check the F-runtime group's measured cycle time. It must remain below the F-monitoring time configured in Safety Administration > F-runtime group.
  5. Force a fail-safe signal: energize / de-energize one of the F-DI modules and verify the expected reaction (F-DO drops out, F-runtime group continues, the safety program does not enter STOP).
  6. Re-export the diagnostic buffer and archive it with the change ticket. The post-update buffer should be clean except for the expected "Firmware updated" entry.

8. Safety Acceptance-Test Implications

An F-monitoring bug that forces the CPU into STOP is a "system reaction" failure during commissioning. Treat it as follows when updating the change log:

  • Safety signature: the F-runtime signature changes only if the firmware image changed how F-blocks are compiled. A pure firmware update on the same TIA Portal version typically does not change the F-program CRC. If the F-CRC changes, re-run the full acceptance test on the affected F-runtime group.
  • Operator safety: the F-CPU entering STOP on a monitor click is fail-safe behaviour, so personnel were never exposed. Document the timestamp, the F-program CRC before and after, and the firmware version before and after.
  • Re-validation: the safety-relevant verification of the F-program (sensor / actuator response, discrepancy time, F-monitoring time) is unaffected by the firmware update itself. You must re-verify only if the F-program was re-compiled with a new TIA Portal / Safety optional-package version.
  • Reset of safety log: if your safety management procedure requires a fresh acceptance after a firmware change on a fail-safe CPU, perform a partial acceptance covering at least the F-runtime group and one representative safety function per category (E-Stop, guard door, muting, etc.).

9. Reading the Diagnostic Buffer in TIA Portal

Engineers frequently misread the diagnostic buffer because the default view shows all events mixed with the F-events. Use the dedicated safety view:

  1. Online & diagnostics > Diagnostics > Diagnostic buffer
  2. Click Filter and tick Safety events only.
  3. Sort by Time descending. The 0x0D:75D1 entry will be the most recent, followed immediately by 0x02:2505.
  4. Right-click the entry and choose Open block on the F-runtime OB (OB 123) to navigate to the safety program root.
  5. Use Save as service data (ZIP) to export the buffer plus the project snapshot. The ZIP is what Siemens Support and engineering leads expect as evidence.

10. F-Runtime Group Configuration Notes

While the firmware bug is the primary root cause, an under-sized or misconfigured F-runtime group can mask itself with similar event IDs. Confirm the following defaults:

Parameter Recommended default Where
F-runtime group name F-runtime group 1 Safety Administration editor
Maximum cycle time of the F-runtime group 50 ms (SIL 3 applications) / 100 ms (typical) F-runtime group properties
F-monitoring time 3 × maximum cycle time, minimum 50 ms F-runtime group properties
F-OB OB 123 (F-runtime group 1) Safety Administration editor
Number of F-runtime groups 1 (default); up to 6 supported on 1515F CPU properties > Safety

To verify the configured F-cycle time, monitor the tag OB123_FCYC in the safety program or read the value F-runtime group cycle time (current) in Online & diagnostics > Safety. The value should remain stable across monitor on / off.

11. F-Block Programming Constraints During Online Monitoring

Fail-safe blocks carry extra restrictions that do not apply to standard blocks. Knowing them up front saves hours of re-work when the monitor button is the trigger of the fault.

  • Only F-blocks in the F-program can be monitored. The F-CPU rejects a monitor request that points at a block outside the F-program, and the older firmwares raised 0x75D1 instead of a clean error message.
  • Modifying a tag of an F-DB on a live monitor is not allowed; doing so causes a similar fault path. Use a non-safety test program if you need to drive F-tag values for commissioning.
  • Adding or removing F-block instances in RUN is impossible — the F-program is re-compiled only in STOP, which is the normal safety programming model.
  • Watch tables inside the safety program are not supported; the standard Monitor / Control table can read standard tags but not F-tags in the F-runtime group.
  • Cross-reference jumps from the safety program to standard blocks are not allowed and will raise a different safety event (typically 16#0D:75C0 series) if attempted.

For a full reference on the F-block types and their monitoring rules, see the SIMATIC Safety — Fail-Safe Blocks documentation.

12. Related Safety Fault Codes and Their Meanings

Event ID Category Meaning Typical cause
16#02:2505 CPU error STOP request from inside F-runtime Triggered by 0x75D1, observer hook crash
16#0D:75D1 Safety Internal CPU error in F-program F-monitoring bug, sub-code 2 (observer)
16#0D:75C0 Safety F-block type / signature mismatch Wrong F-runtime optional package
16#0D:75C1 Safety F-block in wrong runtime context F-Call outside OB 123
16#0D:75C2 Safety F-monitoring time exceeded F-cycle > F-monitoring time
16#0D:75D0 Safety Generic internal F error Memory or firmware corruption
16#0D:75E0 Safety F-I/O module error Channel discrepancy > configured window
16#0D:75F0 Safety F-signature change detected Re-compile after a stop

13. Prevention and Best Practices

  1. Keep a written inventory of every fail-safe CPU in the fleet, listing MLFB, current firmware, latest available firmware, and the date the firmware was last verified. The S7-1515F 6ES7 515-2FM00-0AB0 has been superseded by 6ES7 515-2FM02-0AB0 in new projects — confirm that the spare-parts stock matches the installed base.
  2. Subscribe to the Siemens Product Safety and Security Advisories RSS feed. Firmware-driven safety faults (the V1.7.0 0x75D1 issue is one) are documented there before they appear in the next TIA Portal update.
  3. Apply firmware updates on a non-production bench before rolling them to a running line. Use SAT to script the update for the whole fleet once the bench test passes.
  4. Lock the F-program CRC and the safety signature in the change-management system. Reject any change request that modifies the F-program without a matching acceptance-test record.
  5. Document the firmware-version dependency of every F-function in the safety manual. A field engineer who knows the CPU must be on V2.0.x to monitor the F-block safely will not re-introduce the bug by downgrading.
  6. For vendor-supplied safety blocks (for example, certified function blocks from third parties such as SICK Safe Entry Exit F-block for S7-1500F), keep the vendor's approved firmware list in the project folder. A vendor F-block may add new observation-hook code paths that re-trigger the V1.7.0 bug.

14. Field-Proven Diagnostic Flow (Decision Matrix)

Symptom Likely root cause First action
STOP on Monitor on/off, 0x75D1 sub-code 2 Firmware bug (V1.7.x) Update firmware to the latest certified version
STOP on Monitor on/off, F-cycle time near max F-cycle overflow during observe Reduce F-program size or raise F-monitoring time
STOP on download of F-program, 0x75C0 Optional-package mismatch Match TIA Portal and SIMATIC Safety versions
STOP on F-DI discrepancy, 0x75E0 Sensor wiring or window too tight Check discrepancy time and sensor health
STOP on signature change, 0x75F0 User edited F-program Re-run acceptance test, log change
STOP immediately at power-up, 0x75D0 Firmware corruption Re-flash firmware from memory card

15. Quick Recovery Procedure (TL;DR)

  1. Export the diagnostic buffer ZIP.
  2. Record the F-program CRC and the current firmware version.
  3. Download the latest firmware for 6ES7 515-2FM00-0AB0 from the Siemens support site.
  4. Update the firmware via TIA Portal Online & diagnostics > Update firmware.
  5. Power-cycle the CPU. Confirm the new firmware version is active.
  6. Reload the project. Verify the F-program CRC is unchanged.
  7. Open any F-FB and click Monitor on / off. The CPU must stay in RUN.
  8. Archive the post-update diagnostic buffer and the change ticket.

For a deeper reference on F-block programming rules and the runtime group model, see the official SIMATIC Safety — Fail-Safe Blocks documentation. The SICK Safe Entry Exit function block for Siemens S7-1500F is a useful worked example of vendor F-block integration against the S7-1500F runtime.

Why does my S7-1515F go into STOP the moment I press Monitor on/off on a safety block?

On the S7-1515F (6ES7 515-2FM00-0AB0) running firmware V1.7.0, the F-monitoring observation hook contains a defect. Activating Monitor on/off installs observation code in the F-runtime group, the hook fails with internal event 16#0D:75D1 (sub-code 2), and the safety kernel forces a STOP with the linked event 16#02:2505. The fault appears on every F-block, even an empty project with a 1-input / 1-output F-FB.

What is the fastest way to recover the CPU?

Update the firmware to the latest certified release for the 6ES7 515-2FM00-0AB0. The cleanest path is TIA Portal > Online & diagnostics > Update firmware, using a Siemens-downloaded .upd file. After the CPU reboots, reload the project and confirm the F-program CRC is unchanged. Monitor on/off then works without entering STOP.

Do I have to re-run the safety acceptance test after the firmware update?

Not if the F-program CRC and the F-runtime signature are identical before and after. A pure firmware update on the same TIA Portal / SIMATIC Safety version does not change the F-CRC. If the F-CRC changed, perform a partial acceptance on the affected F-runtime group and document it in the change log.

Can the same crash happen on a newer S7-1500F with a different order number?

The specific V1.7.0 0x75D1 observer-hook bug is in the firmware of the original 6ES7 515-2FM00-0AB0. Newer MLFBs (for example 6ES7 515-2FM02-0AB0) ship on later firmware and are not affected. Always confirm the firmware history of the installed base before reusing a TIA Portal project.

How do I capture the diagnostic buffer so Siemens Support can read it?

In TIA Portal, go to Online & diagnostics > Diagnostics > Diagnostic buffer, filter on Safety events, and click "Save as service data (ZIP)". The ZIP includes the buffer, the project snapshot, and the CPU identification. Save it to the change ticket before any reset or memory-card reformat.

Back to blog