Overview
The QBAD output of a Siemens PCS 7 CFC channel driver block indicates that the quality code returned for the associated process value is bad. When QBAD equals 1, the operator station (OS) renders the faceplate tag greyed out, displays a yellow maintenance hand icon, and freezes any derived control values. This behavior is mandated by the IEC 62443 / NAMUR NE 107 quality model used throughout PCS 7 AS-OS communication and is the same flag carried inside the S7-1500 / S7-400 user data word for analog, digital, and driver blocks in the Advanced Process Library (APL).
QBAD=1 is not a fault of the controller, the field wiring, or the I/O module by itself — it is a status bit set by the CFC runtime when the driver cannot guarantee a valid process value. The most frequent observed causes in operating plants are:
- The MODE parameter of the channel driver block is incorrect for the connected signal type (e.g., left at default while the field device is 4-wire 4–20 mA).
- Module drivers (CH_DRV) have not been generated or were generated against a hardware configuration that no longer matches the rack.
- The instance DB of the channel driver was edited manually, or the OS compilation has not been performed after a CFC change.
- The block is held in simulation mode (yellow hand) by an active
SIM_ONinterconnect with no valid substitute value source. - The S7 connection between the AS and the affected OS partner is degraded (SIMATIC NET / S7-1200 OPC routing broken).
This guide provides a deterministic, engineering-grade procedure for isolating the offending block, validating MODE, regenerating module drivers, recompiling the OS, and clearing the QBAD=1 latched condition.
Understanding the QBAD Status Bit
Every APL channel driver block (e.g., CH_AI, CH_AO, CH_DI, CH_DO, P_IN, P_OUT) exposes the following standard outputs:
| Output | Type | Meaning |
|---|---|---|
QBAD |
BOOL | 1 = quality of the process value is BAD (no usable reading) |
QSIM |
BOOL | 1 = block is in simulation mode (yellow hand) |
QC_SUM |
BOOL | 1 = any of the configured quality flags is active |
SUBS_ON |
BOOL | 1 = substitute value is being driven onto the output |
PV |
REAL / BOOL | Process value displayed in the faceplate |
When QBAD = 1, the OS graphic logic masks the PV (renders grey) and forces QC_SUM = 1 downstream. Interlocks and block icons downstream of a QBAD=1 source must be reviewed for fail-safe direction; by default PCS 7 driver blocks route SUBS_V (substitute value) to the PV output when QBAD rises, but only if SUBS_ON is enabled by the application.
Channel Driver Block Architecture
PCS 7 uses two cooperating block layers:
- CH_DRV (Channel Driver Generator instances) – automatically created when module drivers are generated. Each physical channel has a CH_DRV instance that knows the slot, channel number, and signal type from HW Config.
- CH_AI / CH_AO / CH_DI / CH_DO (Application Channel Drivers) – placed manually in the CFC and connected to one CH_DRV. These blocks are what the OS faceplates reference.
The MODE parameter lives on the application channel driver (CH_AI / CH_AO / CH_DI / CH_DO). The CH_DRV receives its configuration from the hardware, and the runtime hand-shake between CH_DRV and CH_AI is what produces the QBAD bit.
MODE Parameter Structure and Encoding
MODE is a DWORD whose bit fields specify the signal type, scaling, simulation permission, and substitute-value behavior. The exact encoding is documented in the APL online help for each driver block; the most commonly referenced values are:
| Signal Type | Typical MODE (hex) | Notes |
|---|---|---|
| 4–20 mA, 2-wire, single-ended | 16#80000203 |
High bit (sim permission) + standard AI encoding |
| 0–10 V voltage input | 16#80000204 |
Use when the channel card is configured as U |
| PT100 / RTD (4-wire) | 16#80000008 |
Linearization handled in the AI module |
| Thermocouple type K | 16#80000010 |
Cold-junction compensation required at the module |
| Digital 24 V input | 16#00000001 |
No high-bit set → no simulation allowed by default |
| Digital output with readback | 16#00000002 |
CH_DO only |
The high-order bit (0x80000000) enables simulation. If this bit is missing on an analog input where the field engineer expects to test with a hand-held calibrator, the block will refuse to enter simulation and may latch QBAD=1 when the physical signal is removed.
Common Root Causes of QBAD=1
| Symptom | Likely Root Cause | Diagnostic Anchor |
|---|---|---|
| PV grey, yellow hand, no SIM_ON visible | MODE mismatch between block and channel card | Open CH_AI → MODE value vs HW Config signal type |
| PV grey, QSIM=1 | Block is in simulation with no SIM_V interconnect | Inspect SIM_ON and SIM_V inputs |
| PV grey, QSIM=0, all CH_DRV inputs valid | Instance DB mismatch — OS references old DB number | Compare CFC compile log with OS server project |
| Multiple unrelated tags show QBAD=1 after a download | AS-OS connection or S7 routing problem | Check WinCC channel diagnosis, NetPro connections |
| Tag shows QBAD=1 only at OS client, not on AS | OS server redundant partner not synchronized | Redundancy state of OS server pair |
| PV present at OS but with strikethrough / crossed-out value | Quality is UNCERTAIN, not BAD — different bit path | Inspect QUNC instead of QBAD |
Diagnostic Procedure
Use the following ordered sequence before modifying the MODE parameter or regenerating drivers. This protects against unnecessary AS downloads.
-
Identify the affected tag: In the OS, right-click the greyed tag → Picture → Picture Tree and note the CFC chart and block instance name (e.g.,
SCL101/MOT_PV.CH_AI1). - Open the CFC chart: In SIMATIC Manager / PCS 7, navigate to the corresponding S7 program and double-click the chart. The block icon shows a yellow hand when QSIM=1.
-
Inspect block I/O: Right-click CH_AI → Block Properties → tab I/Os. Note
QBAD,QSIM,MODE,CH_DRVconnection state. - Cross-check CH_DRV: Open the CH_DRV instance (auto-generated, located in the master data library of the AS). Verify its MODE value and that it points to the correct slot/channel.
- Compare with HW Config: Open HW Config → locate the AI/AO/DI/DO module. Confirm signal type (e.g., 4DMU vs 2-wire vs 4-wire) matches the MODE of CH_AI.
- Check CFC compile status: CFC → Chart → Compile. Look for warnings such as Instance DB number collision or Lost interconnection.
- Check OS compile status: OS → Compile OS. The compile log must show No errors. Stale OS compilation is the single most common cause of phantom QBAD=1 after a CFC change.
Module Driver Regeneration
If the CH_DRV layer was never generated or is out of sync with HW Config, you must regenerate the driver instances:
- In the S7 program, open the Charts folder and select Options → Chart Insertion.
- Choose the rack or station that contains the affected signal.
- Click Generate Module Drivers. PCS 7 will iterate over every configured channel and create or update the CH_DRV instances in the master data library.
- After generation, recompile the CFC charts and download the program to the AS.
Regeneration is non-destructive to the CH_AI / CH_AO application blocks, but it will renumber instance DBs when slots are added or removed. An OS compile must always follow.
OS Compile and Download Resolution
The most reported "fix" in operating plants for QBAD=1 after a CFC edit is the following sequence:
- CFC → Charts → Compile All. Resolve every warning. Pay special attention to Address areas are different and Interface change in instance DB.
- Download the entire S7 program to the AS (or run Download → Changes Only if the running AS already contains compatible code).
- OS project editor → Compile OS with Range of compilation = Entire OS. This regenerates the picture tree, alarm logging, and tag connections.
- Transfer / download the OS server project. On a redundant pair, perform a complete download to both servers and let the redundancy sync complete.
- On the OS client, perform Update Picture Tree or restart the WinCC runtime if the picture tree still references the old DB.
If QBAD=1 persists after this sequence, the runtime value is latched and the driver block has not refreshed. Cycle the block's ACK_REQ input or momentarily drop the SIM_ON interconnect to force the driver to re-evaluate the upstream channel state.
Simulation Mode Recovery
A persistent yellow hand on the faceplate with greyed PV almost always indicates the block was placed in simulation by an earlier test session and never released. Inspect the following inputs on the CH_AI / CH_AO block:
| Input | Required State to Release Simulation |
|---|---|
SIM_ON |
0 (FALSE) — active simulation must be dropped |
SIM_V |
Disconnected from any forcing source |
SIM_L |
0 if simulation was locked by an operator |
MODE high bit |
If 0x80000000 is missing, simulation is not permitted and the block falls back to QBAD=1 |
To safely release simulation from the OS:
- Open the faceplate → Maintenance → Simulation.
- If Operator Enable is greyed out, check the
OP_ENABLEinput and theMOD_LOC(mode lock) interconnect. - Toggle Simulation Off and confirm the hand icon disappears.
- Within one cycle of the OB1 (typically 100 ms), QBAD should return to 0 if the underlying channel is healthy.
Field I/O and Wiring Cross-Check
When the CFC and OS layers are clean, but QBAD still latches, the fault moves one layer down to the I/O. The following checks should be performed with the I/O channel placed in Substitute / Disable state to avoid driving a live actuator:
- Verify the marshalling cable (e.g., from the field junction box to the front connector of the AI module) for continuity, shield grounding, and reversed polarity on 4–20 mA loops.
- Confirm the channel is configured for the correct measurement range in HW Config (4DMU vs 2-wire vs 4-wire RTD). A wrong range will produce a constant over-range flag that propagates to QBAD.
- Use the module's diagnostic interrupts (SF / BF LEDs on SM 331 / SM 332) to read the diagnostic buffer via the AS hardware diagnostic faceplate.
- For HART channels, confirm that the HART modem is enabled on the channel if the connected device is HART-only and the CH_AI expects HART variables.
- Check for open-circuit detection: PCS 7 channel drivers in 4–20 mA mode flag QBAD if the loop current drops below 3.6 mA (NAMUR NE 43 lower limit).
Verification and Acceptance Test
Once the corrective action is applied, perform the following verification:
-
Block-level verification: On the AS, force the CH_DRV output via a test interconnect and observe that CH_AI
QBADfalls to 0 within one OB1 cycle. - Faceplate verification: At the OS, the tag should display its live PV, the maintenance hand should be absent, and the QC_SUM lamp should be green.
- Alarm verification: Trigger a process alarm at the field end and confirm the alarm is logged with the correct priority and that the QBAD alarm (if any) does not re-appear.
- Trend verification: Open the tag in Process Historian and confirm the value is being archived with quality code 0xC0 (good) instead of 0x00 (bad).
- Cross-AS consistency: If the plant uses a redundant AS pair, perform a fail-over and verify the tag transitions to QBAD=0 on the standby AS within the configured redundancy switchover time.
Engineering Workflow Summary
Documentation and Standards Anchors
The following official references govern the quality model, MODE encoding, and driver behavior described in this article:
- Siemens — PCS 7 Process Control System Service Manual (current edition)
- Siemens — APL Driver Blocks CH_AI / CH_AO Online Help (V9.0)
- Siemens — PCS 7 CFC / SFC Programming and Operating Manual
- Siemens — PCS 7 OS Configuration Manual
- NAMUR NE 107 — Status Categories for Field Devices
- NAMUR NE 43 — Standardization of the Signal Level for the Failure Information of Digital Transmitters
Frequently Asked Questions
What is the default MODE value for a CH_AI block in PCS 7?
The default MODE after insertion is 16#00000000 (no signal type selected, no simulation permitted). This produces QBAD=1 immediately because no input range is configured. The most common corrective value for a 4–20 mA signal is 16#80000203, with the high bit enabling simulation.
Can a single CFC download cause QBAD=1 on tags that were previously good?
Yes. If the OS server is not recompiled after the CFC download, the WinCC tag reference may still point to the old instance DB number. The result is a value of 0 with QBAD=1 at the OS, while the AS shows a healthy value. The remedy is to always recompile the OS (entire OS, not just delta) and transfer to the server.
Is QBAD=1 the same as a hardware channel fault?
No. QBAD is a quality flag set by the driver block. The SM 331 / SM 332 module faults are reported separately through CH_DRV.MOD_FAULT and via the diagnostic buffer. A tag can show QBAD=1 with no module fault (e.g., wrong MODE), and conversely a module can show a fault without affecting QBAD until the channel driver fails to read.
Why does QBAD=1 persist after I have already corrected the MODE value?
The driver block only re-evaluates MODE on a state transition. Drop the SIM_ON interconnect, momentarily clear any forced value on CH_DRV, or briefly cycle the AS program from STOP to RUN. Most plants use a one-shot ACK pulse on the block's ACK_REQ input to force the re-evaluation.
Does QBAD=1 propagate to downstream interlocks?
By default, downstream blocks see the substitute value of the upstream driver and QBAD=1 propagates through QC_SUM. Safety interlocks must be reviewed for fail-safe direction: an interlock driven by a QBAD=1 source must fail in the safe direction, which is typically the de-energize / open path. Confirm this against the plant's safety requirement specification.