Resolving Module Driver QMODF Faults and Bad Signal Quality in SIMIT and PCS 7
In SIMATIC SIMIT and PCS 7 simulation, the module driver block (such as MOD_D16_ or MOD_464_) asserts QMODF = 1 ('Module removed / Out of order') when the SIMIT Virtual Controller (VC) or simulation coupling does not fully emulate the hardware diagnostic addresses or System Status List (SSL/SZL) queried by the driver. This fault causes downstream channel drivers (Pcs7AnIn) to declare bad quality (ST = 16#00), suppressing analog values in faceplates. To resolve this: 1. Ensure the SIMIT coupling is imported directly from the PCS 7 HW Config export to align all logical and diagnostic base addresses; 2. In SIMIT, supply valid status to the diagnostic address or activate module presence signals; or 3. Enable channel driver simulation (SimOn = 1) on Pcs7AnIn to bypass module driver status during testing.
Table of Contents
- Executive Summary
- Architecture and Fundamental Mechanics
- Step-by-Step Implementation Procedure
- Verification
- Limitations and Operational Precautions
- Engineer FAQ
- Technical References
- Related Articles
- Related Tags
Executive Summary
When executing hardware-in-the-loop or software-in-the-loop plant simulation using SIMIT V10.2 with SIMATIC PCS 7 V9.0 SP3, engineers frequently observe that while simulated analog process values successfully reach controller input addresses, downstream APL blocks (such as MonAnL) flag the values as invalid or Bad. Online inspection of the diagnostic driver charts reveals that the auto-generated Basis Library module driver (MOD_D16_, MOD_464_, etc.) reports QMODF = 1 ('Module removed / Out of Order'). Consequently, the channel driver Pcs7AnIn sets its output Quality Code to 16#00 (Bad), placing faceplates into alarm state. This article explains the underlying mechanism of PCS 7 module diagnostic drivers, identifies why SIMIT Virtual Controllers fail to satisfy hardware SSL queries, and provides verified procedures to eliminate QMODF errors.
Architecture and Fundamental Mechanics
PCS 7 Module Driver Diagnostics, System Status Lists (SSL), and SIMIT Virtual Controller Mechanics:
- The Diagnostic Driver Chain in PCS 7:
- When 'Generate Module Drivers' executes during CFC compilation, PCS 7 automatically places diagnostic blocks from the Basis Library (
OB_BEGIN,RACK,MOD_D16_,MOD_464_) into system charts (@...). - These blocks monitor physical hardware health by reading S7-400 System Status Lists (SSL/SZL) via
SFC51(RDSYSST) and catching asynchronous hardware fault interrupts (OB82 diagnostic alarm, OB83 remove/insert, OB85 program error, OB86 rack failure). -
If the diagnostic block detects that a configured I/O module does not respond to diagnostic polling or is reported as missing by the operating system, it asserts
QMODF = 1(Module Fault / Out of Order) and passesBad = 1to the channel driver. -
SIMIT Coupling Discrepancies and Virtual Controller Limitations:
- In a SIMIT simulation project, the coupling can be configured via SIMIT Virtual Controller (VC), PLCSIM, or PLCSIM Advanced.
- SIMIT Virtual Controller perfectly emulates process image inputs and outputs (
PIW,PQW). However, hardware diagnostic records and diagnostic addresses configured in HW Config (L_ADDR) are only partially simulated unless the coupling is fully synchronized. -
If an I/O station (e.g. ET 200M or ET 200SP) has diagnostic addresses that are unmapped in SIMIT, or if the SIMIT coupling was generated from an outdated HW Config export, the simulated CPU reports the module as missing, forcing
QMODF = 1. -
APL Quality Code Cascading:
- The technological channel driver (
Pcs7AnIn) receives process data onPV_Inand module health onBad. - When
MOD_.QMODF = 1,Pcs7AnIn.Badbecomes TRUE, and the outputPV_Out.STdrops to16#00(Bad, non-specific) or16#28. - Under standard APL feature bit settings (
Feature.Bit29 = 0), the block outputs the last valid value or substitute value with a bad quality badge on the WinCC OS.
Step-by-Step Implementation Procedure
-
Synchronize SIMIT Coupling with Exact PCS 7 HW Config:
* In SIMATIC Manager, open HW Config for the target AS station.
* ExecuteStation -> Export...to export the hardware configuration as a clean.cfgfile.
* Open SIMIT V10.2, navigate to the active Coupling (e.g. Virtual Controller).
* SelectImport -> HW Configand point to the newly exported.cfgfile.
* Ensure that all interface modules (IM), power supplies, and analog input module slots match the hardware catalog versions. -
Inspect and Satisfy Module Driver Diagnostic Addresses:
* In CFC on the Engineering Station, navigate to the system chart containing the failing module driver (e.g.@MOD_D16_1).
* Inspect input parameterL_ADDR(logical diagnostic base address of the module).
* Cross-reference this address in HW Config module properties under 'Addresses -> Diagnostic Address'.
* In SIMIT, ensure that the communication coupling covers the address space of this module and that the module's presence signal is forced to active. -
Bypass Module Driver Quality Using Channel Driver Simulation (Workaround for Logic Testing):
* If physical module diagnostics cannot be fully emulated in your SIMIT environment, utilize technological channel simulation.
* On thePcs7AnInblock in CFC:- Set
SimOn = 1(Simulation Active). - Set
SimLiOp = 1(allow program control of simulation) or0for manual control. - Interconnect your SIMIT analog process value to
SimPVinstead ofPV_In. - With
SimOn = 1,Pcs7AnIncompletely ignoresMOD_.QMODFand outputsPV_Out.ST = 16#60(Simulation, Good), allowing downstream APL blocks and faceplates to operate cleanly.
- Set
Verification
- Re-download hardware configuration and CFC charts to the SIMIT Virtual Controller.
- In CFC, open the
@MOD_...diagnostic chart and switch to Test Mode (Ctrl+F). - Verify that
QMODFhas transitioned from1to0. - Open the technological chart containing
Pcs7AnIn; verify thatBad = 0andPV_Out.ST = 16#80(Good). - Open WinCC Runtime; verify that the analog block icon and faceplate display the live simulated value without error badges.
Limitations and Operational Precautions
Enabling SimOn on Pcs7AnIn successfully bypasses module faults for process simulation, but it does NOT test the physical diagnostic alarm logic (OB82/OB83). In safety-related systems (F-systems / Safety Matrix), forcing simulation on safety channel drivers (F_CH_AI) requires dedicated safety password authorization and adheres to strict safety lifecycle rules. SIMIT Virtual Controller licenses must cover the active I/O tag count.
Engineer FAQ
What does QMODF = 1 mean on a PCS 7 module driver?
It signifies 'Module removed / Out of Order', indicating that the CPU operating system cannot communicate with the physical I/O card.
Why does QMODF = 1 occur in SIMIT simulation?
Because the SIMIT Virtual Controller or coupling may not emulate the hardware diagnostic records (SSL 16#00B1/B2) queried by SFC51.
How does QMODF affect the APL channel driver Pcs7AnIn?
It sets the channel driver input Bad = 1, which drops the output Quality Code ST to Bad (16#00), suppressing normal process values.
Can I satisfy MOD_D16_ without physical hardware?
Yes, by properly importing HW Config into the SIMIT coupling so SIMIT emulates the module's presence and diagnostic addresses.
What is the difference between SimOn on Pcs7AnIn and physical simulation?
SimOn simulates the process value inside the software block, bypassing hardware diagnostics, while SIMIT coupling simulates the I/O signals at the process image level.
Technical References
- SIMATIC SIMIT Simulation Platform V10.2 Manual
- SIMATIC PCS 7 Basis Library V9.0 SP3 Function Manual
- SIMATIC PCS 7 Advanced Process Library V9.0 SP3 Driver Concept
Related Articles
- Role of SIMIT Simulation Platform in Mechatronics Concept Designer (MCD) and Digital Twins
- Comparing PCS 7 APL vs Basis Library Architecture and Configuring Channel Driver Simulation
- Retaining Output Channel Driver States Across CPU Restart and Module Driver Generation in PCS 7
- Distinguishing APL Block Icon Zero Value Causes - Deadband vs Low Cutoff vs Quality Code Substitute States
Related Tags
- SIMIT
- Virtual Controller
- Module Driver
- QMODF
- MOD_D16_
- Pcs7AnIn
- Quality Code
- PCS 7 V9.0 SP3