Resolving F-DQ Output Activation Failures in TIA Portal V15.1

David Krause19 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

Engineers commissioning the SIMATIC ET 200SP fail-safe digital output (F-DQ) module frequently encounter a deceptive symptom: the F-output tag in the TIA Portal watch table transitions cleanly to TRUE, the safety program compiles without diagnostics, the F-CPU remains in RUN, yet the channel LED on the F-DQ does not illuminate and the field-side 24 VDC load is never energized. The process image appears to update, but the physical output never closes.

This article documents the root cause of that symptom on the SIMATIC ET 200SP F-DQ 4×24VDC/2A module, Siemens part number 6ES7 136-6DC00-0CA0, when configured in TIA Portal V15.1 (Update 4 or later recommended), and provides a complete diagnostic and remediation procedure. The same root cause applies to the related F-DQ variants 6ES7 136-6DB00-0CA0 (4×24VDC/0.5A), the relay variant 6ES7 136-6RA00-0CA0, and the F-DI counterpart 6ES7 136-6CB00-0CA0, because all F-I/O in the ET 200SP family is bound by the same fail-safe runtime contract.

Two related symptoms appear in the source case:

  1. The HMI operator panel (SIMATIC TP1200 Comfort) drives the output with a SetBit operation, but the output never energizes.
  2. When the F-program is configured to consume the output and the HMI is wired to the F-tag, the F-CPU transitions to STOP with the diagnostic event "Data corruption in the safety program".
  3. The auto-generated block Main_Safety_RTG1 prompts for a password that was never set by the current engineer.

All three are symptoms of the same architectural rule: F-I/O is exclusively owned by the F-runtime group.

Important: F-modules in the SIMATIC family are governed by IEC 61508, IEC 62061, and ISO 13849-1 SIL/PL logic. Any workaround that bypasses the F-runtime group must be reviewed against the machine's risk assessment before deployment. Section 9 covers safety design considerations.

2. Affected Hardware and Software

Component Identification Role
F-DQ module 6ES7 136-6DC00-0CA0 ET 200SP F-DQ 4×24VDC/2A, P-type, channel diagnostics, push-in or screw
F-CPU SIMATIC S7-1500F (e.g., CPU 1515F-2 PN) or ET 200SP F-CPU Executes the safety program and the F-runtime group
Engineering TIA Portal V15.1, Update 4 or later Configuration, F-program editor, F-runtime group administration
HMI SIMATIC TP1200 Comfort / Unified Comfort Panel Operator panel referenced in the source symptom
Head module IM 155-6 PN ST / PN HS / PN HF PROFINET interface for the ET 200SP station
BaseUnit BU15-P16+A0+2B (push-in) or BU15-P16+A0+2D (screw) Termination base for the F-DQ slot
PROFIsafe profile PROFIsafe V2.6.1 / V2.4 (legacy) Black-channel safety protocol over PROFINET

Verify the exact module variant against the Siemens catalog entry for the ET 200SP F-I/O family before applying the procedure below. Firmware revisions from V1.0.x through V2.x behave identically with respect to the F-runtime group contract; the differences are limited to the diagnostic message catalog and the supported PROFIsafe profile revision.

3. Root Cause Analysis

3.1 The F-Runtime Group Contract

Unlike standard I/O, every F-I/O address in the ET 200SP family is owned by the safety program. The F-CPU will not write a fail-safe output to the physical module unless three conditions are simultaneously satisfied:

  1. An F-runtime group exists in the safety administration editor and is bound to an F-OB (OB123 "Failsafe_OB" on the S7-1500F generation, or a cyclic interrupt OB such as OB35 on the S7-300F/400F generation).
  2. The F-program inside that runtime group actually references the fail-safe output tag, or a derived tag that feeds the output via the F-channel driver (F_DQ_BO instance for boolean outputs) or an F-DB assignment.
  3. The F-runtime group is in a clean state, with no passivation pending, no signature mismatch, and no "Data corruption in the safety program" diagnostic.

When a user forces a fail-safe tag to TRUE in the watch table, the value is written into the process image. The watch-table cell shows TRUE because the image contains the value. However, no consumer ever pushes that value to the module. The F-DQ therefore remains in its safe state with all channels de-energized. The F-channel driver's ACK_NEC (acknowledge necessary) flag stays cleared because no F-cycle completed.

3.2 Process Image and F-Output Behavior

The Siemens Knowledge Base article "Why does the status of fail-safe inputs and outputs not change in the watch table" (entry ID 109778637) explicitly states: "For a status change of fail-safe inputs and outputs in the watch table, at least one channel of the corresponding module must be read or written." In the F-DQ case, that "write" only occurs when the safety program emits a passivation token followed by a normal-mode update for that channel. Without a participating F-runtime group, no write to the physical output is ever issued, regardless of what the watch table reports.

3.3 The "Data Corruption in the Safety Program" Error

The second symptom in the source case — "Data corruption in the safety program" — appears when an HMI tag (or any standard tag) is wired into the F-program and the runtime detects a non-safety-grade read or write from standard user code. The F-system enforces a strict data isolation boundary: standard code, HMI, and web server variables can read F-DB fragments only through the F-shared-DB interface, and writing into an F-tag from an HMI SetBit operation is treated as a violation. The CPU responds by transitioning to STOP and reporting the diagnostic, exactly as observed.

The fix is structural, not procedural: the F-program must derive its inputs from F-grade sources (F-DI modules, F-shared DBs with proper acknowledgment, or internally computed safety values) and the HMI must read a mirrored standard tag, never the F-tag itself.

3.4 The Main_Safety_RTG1 Password

Main_Safety_RTG1 is auto-generated the first time the safety administration is created in a TIA Portal project. It is the F-runtime group container and is protected by an F-runtime group password. This password is not a Siemens default and is always user-defined the first time the project is compiled and downloaded. If a freshly opened project prompts for this password, one of the following is true:

  • The project was created by a different engineer or integrator and downloaded to the CPU with that engineer's F-password.
  • The CPU was previously programmed by an integrator and the original project file is lost.
  • The PLC was shipped with a preloaded safety project (rare, but possible on demonstration units and engineering samples).

There is no factory-default or master password that unlocks an F-runtime group. Recovery requires either the original project file or a complete reformat of the safety administration via a new project.

4. F-Runtime Group Architecture

The F-runtime group is the scheduling unit that ties the F-program to a guaranteed execution window. The structure is:

F-CPU (S7-1500F) Failsafe_OB (OB123) Main_Safety_RTG1 F-FB (e.g., FB1000) F-DI 6ES7136-6CB00 F-DQ 6ES7136-6DC00 Standard DB for HMI F-cycle guarantees the DQ channel is driven; the standard DB carries the mirrored state to the HMI.

The F-runtime group also enforces the F-monitoring time. This is the maximum interval allowed between two consecutive F-cycles before the F-module is treated as failed and passivated. Typical values range from 1 ms to 10 s. If the standard program overruns and the F-OB cannot be called in time, the F-modules drop to their safe state (de-energized) and the CPU logs a "F-monitoring time exceeded" diagnostic.

Passivation is channel-level on the ET 200SP F-DQ: a single faulty channel does not passivate the whole module, but the F-DB exposes the per-channel QBAD and VALUE flags so that the F-program can react. The reaction to fault is documented in the SIMATIC ET 200Eco PN F-I/O manual collection, which states: "The fail-safe concept depends on the identification of a safe state for all process variables." For an F-DQ channel, the safe state is the de-energized state; the dark/light test pulse must be considered part of the normal operating cycle, not a fault.

5. Diagnostic Procedure

Use this sequence to confirm the root cause before changing any project structure:

  1. Open the device configuration of the ET 200SP station and confirm that the F-DQ slot shows green (no diagnostic) and that the slot is assigned to the F-CPU's safety administration. A grey slot with a yellow triangle indicates the safety administration is missing.
  2. In Project tree > Safety Administration, verify that a runtime group exists and that the F-OB (typically OB123 for the S7-1500F Failsafe_OB) is present in the program blocks. The runtime group must show "Activated" in the editor.
  3. Open the F-program, locate the channel driver for the F-DQ output (an instance of F_DQ_BO for boolean outputs, or the F-DB-tag mapping for SIL 3 applications), and check that the input logic driving that block is permanently TRUE or follows the expected process condition. A common defect is leaving the input tied to a default FALSE constant.
  4. Go online with the F-CPU, open the watch table, and force the F-output tag to TRUE. If the LED still does not light, the F-runtime group is not consuming the tag. The QBAD flag in the F-DB will also remain TRUE while the F-DQ is passivated.
  5. Open Online & diagnostics > Diagnostic buffer on the F-CPU. Look for entries such as Data corruption in the safety program, Discrepancy error, F-signature mismatch, Passivation of F-module, or F-monitoring time exceeded. Each of these must be cleared before the output will update.
  6. On the F-DQ itself, use the channel-level diagnostics in TIA Portal (Online & diagnostics > Channel diagnostics) to confirm channel passivation status. A passivated channel shows the value 0 in the PA (passivated) flag regardless of the process image.
  7. Measure the 24 V supply at the BaseUnit terminals 24V and M with a calibrated multimeter. Expect 19.2 V to 28.8 V. A missing supply will leave the F-DQ in startup test indefinitely, and the SF LED on the module will be lit red.

6. Resolution Paths

6.1 Path A — Implement a Proper F-Program (Correct Resolution)

This is the correct resolution when the application actually requires a safety-rated output:

  1. Add a new F-Function Block, for example FB1000 "SafetyLogic", and declare an input iEnable : Bool and an output qDqChannel : Bool. Mark both as F-tag-compatible in the block interface.
  2. Inside the F-FB, assign qDqChannel to the F-DQ channel tag using the channel driver wizard or a manual F-DB mapping. The wizard will instantiate the F-channel driver block (for example FB1131 "F_DQ_BO") and bind it to the slot and channel.
  3. Drive qDqChannel from iEnable through any required safety logic (AND with a healthy state, ESTOP1 cascade, two-hand control, guard-door evaluation). For an SIL 3 / Cat. 4 PL e output, use a 1oo2 or 2oo2 evaluation, with discrepancy monitoring on the F-DI input pair.
  4. Insert the F-FB call into the F-runtime group (the Main_Safety_RTG1 block) so that the runtime group actually consumes the F-DQ output on every F-cycle.
  5. Compile the safety program. TIA Portal will prompt you to assign or re-enter the F-runtime group password; use a strong password of at least 16 characters and store it in the project archive.
  6. Download the entire project to the F-CPU. The F-CPU will run a startup test of all F-channels (typically 1 to 5 seconds depending on the module count) and then release the outputs.

To expose the safety output to the HMI, use a standard DB (e.g., DB100 "HmiInterface") into which the F-program copies a non-safety status bit using the F-shared-DB mechanism. The HMI reads the standard DB; the F-program retains exclusive write authority over the F-tag.

6.2 Path B — Migrate to a Standard DQ Module

If the application does not require SIL/PL-rated behavior, replace the F-DQ with a standard ET 200SP DQ module. Suitable substitutes include:

  • 6ES7 132-6BF00-0BA0 — DQ 8×24VDC/0.5A, basic
  • 6ES7 132-6BH00-0BA0 — DQ 8×24VDC/2A, high feature
  • 6ES7 132-6BD20-0BA0 — DQ 4×24VDC/2A, with diagnostics

Standard DQ modules:

  • Read and write from the standard process image with no F-runtime group overhead.
  • Accept HMI SetBit operations directly without generating safety violations.
  • Eliminate the need for a Main_Safety_RTG1 container and its password.
  • Do not provide SIL/PL-rated diagnostic coverage, discrepancy monitoring, or internal dark/light test pulses.

To migrate, delete the F-DQ from the device configuration, insert the standard DQ at the same slot, copy the existing wiring from the F-DQ's channel tags to the standard DQ's tags (TIA Portal offers tag-rename refactoring across the whole project), recompile, and download.

6.3 Path C — Recover the Locked F-Password

When you have lost the F-password but need to keep the F-program structure:

  1. Connect to the F-CPU online and read the existing program blocks.
  2. Export the standard program blocks (OB1, OB100, FCs, FBs, DBs) to a temporary location. Do not export the F-runtime group or any F-block.
  3. Create a new TIA Portal project, add the same F-CPU, and re-import the standard blocks.
  4. Re-create the safety administration with a new F-password. Re-enter your safety logic.
  5. Download the project. The F-CPU will report a "different safety program" diagnostic on the first cycle; acknowledge the new safety program in the safety administration editor. This step is required by TIA Portal to confirm that the engineer is aware the safety program has been replaced.

7. Verification Procedure

After applying Path A or Path B, verify correct operation with the following sequence. Capture each result in the commissioning report.

  1. Confirm the F-CPU is in RUN with no diagnostic LED on the F-CPU, the IM 155-6 PN, or the F-DQ itself.
  2. Force the HMI-visible enable bit to TRUE from the TP1200 or the watch table.
  3. Confirm the F-DQ channel LED illuminates within one F-cycle. With an F-monitoring time of 10 ms and a 2 ms F-OB cycle, expect the LED to come on within 20 ms.
  4. Measure 24 VDC at the field-side terminal of the active channel with a calibrated multimeter. Expect Vsupply − 0.5 V typical drop across the high-side switch at 2 A load. Open-circuit terminal voltage should be 24 V ± 5%.
  5. Disconnect the safety-relevant sensor. The F-program should drive the output to its safe state within the configured F-monitoring time, the channel LED should extinguish, and the diagnostic buffer should record a passivation event with the channel number.
  6. Reconnect the sensor and acknowledge the passivation (operator reset via the F-FB's ACK input or via the standard acknowledgment tag). The output should re-energize after a successful startup test. The startup test re-energizes the output within 5 ms to 2 s depending on the module's startup behavior setting.
  7. Power-cycle the F-CPU. After the restart, confirm that the F-DQ output is not energized until the F-program has completed its first valid F-cycle and the startup test has passed. This is the default fail-safe behavior.

8. Parameter Reference for F-DQ 6ES7 136-6DC00-0CA0

Parameter Typical Value Notes
Module name F-DQ 4×24VDC/2A ET 200SP F-DQ, P-type sourcing
Number of channels 4 All fail-safe, individually configurable
Rated supply voltage 24 VDC (SELV/PELV) 19.2 V to 28.8 V permitted
Output current per channel 2 A continuous Maximum 6 A aggregate per module
Short-circuit protection Electronic, latching Configurable behavior on trip (latch vs auto-retry)
Dark/light test pulse Configurable 0.4 ms to 4 ms Internal diagnostics; must be considered in load response
SIL (IEC 61508) Up to SIL 3 Depending on F-program structure and channel pairing
PL (ISO 13849-1) Up to Cat. 4 / PL e Depending on F-program structure and channel pairing
Achievable proof test interval 20 years Per Siemens functional safety manual
F-monitoring time 1 ms to 10 s Set in F-administration; shorter times require faster F-OB priority
Channel value update At end of F-cycle Not continuous; HMI values are a snapshot of the last F-cycle
Passivation behavior Channel-level, automatic Passivated channel reads 0 in PA flag and 0 in VALUE field
Module firmware V1.0.0+ (V2.x for latest diagnostic set) Update via TIA Portal in HW catalog, requires firmware file in HSP
Channel value tag %QB<x> in F-DB Directly addressable; do not alias in standard code
Channel quality tag QBAD in F-DB TRUE while passivated
Module replacement PROFIsafe address 1 to 1023 Set on the module via the rotary switch before commissioning

9. Safety Design Considerations

F-modules exist because a standard PLC cannot guarantee safe behavior on its own. The ET 200SP F-DQ implements internal dark/light test pulses that momentarily switch each output off and verify that the channel responds correctly. Loads that do not tolerate those test pulses — for example, fast-actuating pneumatic valves with low holding current, or some solid-state relays — require a suppressor circuit, a hold-current resistor, or a load interface that filters the test pulse. A standard DQ cannot perform this self-test, which is precisely why the F-DQ exists.

If you migrate to a standard DQ (Path B), the safety function that the F-DQ was supposed to perform becomes the responsibility of:

  • The mechanical design (guard rails, two-hand controls, interlocks).
  • The wiring topology (redundant contactors with monitored feedback via a Cat. 4 / PL e contact arrangement).
  • The operator procedure (lock-out/tag-out, key switch, hardwired emergency stop that does not depend on the PLC).

Document this change in the machine's risk assessment file per ISO 12100 and update the safety-related parts of the control system (SRP/CS) per ISO 13849-1. The TIA Portal change log alone does not satisfy the safety file requirement.

Warning: Never rely on a single PLC output to be the sole means of risk reduction for a hazardous function. A standard DQ output with one contactor can fail in the energized state due to a welded contact, shorted output transistor, or a programming error. Pair it with a second hardwired means of energy removal and verify the entire stop function during commissioning and at the prescribed proof-test interval.

When the application is genuinely safety-rated, design the F-program to be self-contained. The HMI should observe but never command. The F-program owns the output; the HMI only acknowledges faults and reads the mirrored status. This separation is what keeps the F-CPU in RUN and prevents the "Data corruption in the safety program" diagnostic.

10. Diagnostic Decision Matrix

Observed Symptom Likely Root Cause Corrective Action
Tag TRUE in watch table, LED off, no 24 VDC on field F-runtime group is empty or does not consume the output Add an F-FB call to Main_Safety_RTG1 and bind a F_DQ_BO instance to the channel
CPU in STOP, "Data corruption in the safety program" diagnostic HMI or standard code is writing into an F-tag Use an F-shared-DB for HMI visibility; remove all direct F-tag writes from HMI
CPU online, "F-signature mismatch" diagnostic Compiled program differs from the downloaded signature Recompile and re-download the safety program; re-enter the F-password
Channel LED off, DIAG LED red on F-DQ Channel passivated, supply missing, or external wiring fault Check 24 V supply at the BaseUnit; check load wiring; clear the passivation in TIA Portal
Main_Safety_RTG1 password prompt with no prior password set Project was created elsewhere, or pre-loaded on the CPU Create a new project, copy standard blocks only, re-enter the safety logic with a new F-password
Output briefly energizes then drops to 0 after 1–4 ms Internal test pulse on a capacitive or high-impedance load Add a 10–100 µF capacitor across the load, or use a relay coil with adequate holding current
Output energizes only when online, fails to persist after restart A watch-table force is being used instead of the F-program Remove the force; route the logic through the F-program and rely on the startup test for cold-start behavior
Output energizes but the HMI shows the previous value HMI is reading the F-tag directly, not the mirrored standard DB Add a standard DB mirror; map the HMI tag to the standard DB
Output passivates during heavy standard-program execution F-monitoring time too short for the standard program length Increase the F-monitoring time, raise the F-OB priority, or shorten the standard OB1 cycle
SF LED on F-DQ is solid red after download PROFIsafe address mismatch between module and project Read the address from the module (rotary switch), match it in the device configuration, recompile

11. Related F-CPU Generations and Compatibility

The 6ES7 136-6DC00-0CA0 F-DQ is supported on both the S7-1500F and the S7-300F/400F generations, but the F-program structure differs between them. The S7-1500F generation uses the OB123 Failsafe_OB and the modern F-runtime group editor in TIA Portal. The S7-300F/400F generation uses a cyclic interrupt OB (typically OB35) and a different block container structure. When you upgrade a project from an S7-300F to an S7-1500F, TIA Portal will auto-migrate the F-program but will require re-entry of the F-password.

For an ET 200SP station with an integrated F-CPU (such as the CPU 1510SP F-1 PN), the F-runtime group is local to the station and does not depend on a central F-CPU. The diagnostics and the F-channel driver interface are identical, but the engineering project structure places the safety administration under the local F-CPU rather than a rack-mounted F-CPU.

12. Frequently Asked Questions

Why does the F-DQ LED stay off even when the tag reads TRUE in the watch table?

The fail-safe output is owned by the F-runtime group. A TRUE value in the watch table only proves that the process image holds the value; the F-runtime group must be present, consume the F-tag via an F-channel driver, and finish its F-cycle for the module to actually drive 24 VDC. Add an F-FB to Main_Safety_RTG1 and confirm the F_DQ_BO channel driver is bound to the slot and channel.

What is the "Data corruption in the safety program" diagnostic and how do I clear it?

It is generated when standard user code, an HMI SetBit, or a non-safety tag tries to write into an F-tag. The CPU stops to protect the safety state. Clear it by removing the offending write, exposing a non-safety mirror of the F-tag through a standard DB, recompiling the safety program, and re-downloading the project.

How do I unlock Main_Safety_RTG1 if I lost the F-password?

There is no master password for an F-runtime group. Create a new TIA Portal project, copy the standard (non-safety) blocks from the existing project, re-create the safety administration with a new password, re-enter the safety logic, and acknowledge the "different safety program" diagnostic on the first download. Always archive the F-password with the project file.

Can I use an F-DQ as a normal output to keep the slot and wiring?

Technically yes, if you wire a minimal F-program that mirrors the process condition into the F-DQ channel. Operationally it adds an F-runtime group, an F-password, and a SIL/PL-rated function the application may not need. If the application is non-safety, replacing the F-DQ with a standard DQ removes the F overhead, the password issue, and the diagnostic false-positives on field wiring faults.

What is the difference between the F-DQ 6ES7136-6DC00-0CA0 and a standard DQ like 6ES7132-6BH00-0BA0?

The F-DQ supports up to SIL 3 / Cat. 4 PL e with internal test pulses, discrepancy monitoring, channel-level passivation, and PROFIsafe communication; it requires an F-CPU and an F-runtime group. The standard DQ reads and writes directly from the standard process image, has no safety functions, and is appropriate for non-safety outputs. The F-DQ is approximately 3x the price of the equivalent standard DQ and consumes a BaseUnit type that supports F-I/O only.

Why does the F-DQ briefly drop the output every few seconds?

The internal dark/light test pulse momentarily switches the output off to verify the channel is functional. The pulse is configurable from 0.4 ms to 4 ms. If your load cannot tolerate the pulse, add a hold-current resistor, a capacitor across the load (10 to 100 µF), or use a relay interface that ignores the pulse. Do not lengthen the test pulse interval to suppress the symptom; the test pulse is part of the safety function.

Back to blog