Troubleshooting Missing Module Driver Generation during CFC Compilation in PCS 7

Troubleshooting Missing Module Driver Generation during CFC Compilation in PCS 7

When the 'Generate module drivers' function fails to create diagnostic and communication blocks for a digital or analog input channel during CFC compilation in SIMATIC PCS 7, the root causes are: the channel block's 'VALUE' pin is not directly interconnected to a symbolic I/O address defined in HW Config, the module lacks hardware diagnostic addresses, or the 'Generate module drivers' checkbox was omitted during compilation. To resolve this, ensure the input channel block (e.g., 'Pcs7DiIn') connects to a valid symbolic address from the Symbol Table, verify the module exists in HW Config, and recompile with module driver generation enabled.

Table of Contents

Executive Summary

In SIMATIC PCS 7, the automated generation of module drivers is the cornerstone of system-level hardware diagnostics, ensuring that channel breakages, module passivations, and field bus communication dropouts are propagated reliably to operator faceplates. A recurring obstacle occurs when an engineer instantiates standard APL driver blocks (such as Pcs7DiIn or Pcs7AnIn) in a CFC chart, but running 'Compile Charts as Program' fails to generate the underlying @ system charts, diagnostic blocks (MOD_D1, RACK), or signal quality flags (ST). This article details the driver generation rules, symbol requirements, and diagnostic recovery steps.

Architecture and Fundamental Mechanics

The Module Driver Generation Engine and CFC Linking Rules:

  • Role of the Module Driver Generator:
  • During CFC compilation with 'Generate module drivers' checked, the compiler reads hardware definitions from STEP 7 HW Config and cross-references them with channel blocks in CFC charts.
  • It automatically creates @ charts containing diagnostic blocks (CH_DI, MOD_D1, RACK, OB_BEGIN) that monitor the physical health of I/O modules, power supplies, and fieldbus interface modules.
  • Strict Interconnection Requirements:
  • Direct Symbolic Connection: The channel block input pin VALUE must be connected directly to a physical peripheral I/O address (e.g., I 0.0 or IW 512) that has a defined symbolic name in the Symbol Table.
  • If an engineer connects VALUE to an intermediate marker (M), data block variable (DB), or elementary logic gate, the compiler treats the signal as an internal memory tag and completely skips module driver generation.
  • Hardware Catalog Support: The physical module must be officially released and supported by the PCS 7 Basis Library version installed.

Step-by-Step Implementation Procedure

Step-by-Step Procedure to Restore Module Driver Generation:

  1. Verify Peripheral I/O Address and Symbol in HW Config:
    - Open HW Config in SIMATIC Manager.
    - Locate the target I/O module (e.g., SM 321 DI 16xDC 24V).
    - Right-click the module -> select Edit Symbols....
    - Confirm that the target channel has a symbolic name (e.g., LSH_101_ACT) and valid data type (BOOL).
  2. Connect Channel Driver in CFC:
    - Open the CFC chart; insert the standard APL channel block (e.g., Pcs7DiIn - FB1871).
    - Connect the input pin PV_In (or VALUE) directly to the symbolic address LSH_101_ACT.
    - Do not insert intermediate conversion blocks between the peripheral address and the channel driver.
  3. Verify Module Diagnostic Address Configuration:
    - In HW Config, double-click the I/O module properties -> check the Addresses tab.
    - Ensure that the 'Diagnostic address' is configured and does not conflict with other hardware modules.
  4. Execute Compilation with Module Driver Generation:
    - In the CFC editor, select Chart -> Compile -> Charts as Program.
    - Check the box: Generate module drivers.
    - Select Scope: Entire program (recommended when resolving missing driver anomalies).
    - Complete compilation and verify the compiler log confirms system charts (@...) were generated.

Verification

To verify successful driver generation:
1. In SIMATIC Manager Component View, inspect the CFC charts container; verify that system charts with the prefix @ (e.g., @(1), @(2)) are present.
2. Open the CFC chart containing Pcs7DiIn; verify that structural pins Mode, DataXchg, and MS are now automatically interconnected to the generated @ diagnostic blocks.
3. In CFC test mode, confirm that signal quality output PV_Out.ST reflects 16#80 (Good) during normal operation.

Limitations and Operational Precautions

Operational precautions:
- Never manually delete or edit blocks inside @ system charts; any changes will be overwritten on the next CFC compilation.
- If using third-party remote I/O via generic GSD files, standard PCS 7 module drivers cannot automatically decode proprietary vendor diagnostics; generic channel drivers (CH_U_DI / CH_U_AI) must be parameterized manually.
- Performing a full compile with 'Generate module drivers' on a running plant requires care; downloading changes in RUN is permitted only if block interfaces were not altered.

Engineer FAQ

Why did CFC compile without creating module drivers?

The channel block input PV_In/VALUE was not connected directly to a symbolic peripheral I/O address, or 'Generate module drivers' was unchecked in the compile dialog.

Can I connect a channel driver to a Memory Marker (M)?

No. Connecting to an M-marker or DB address prevents the compiler from identifying the underlying physical module, disabling driver generation.

What does the '@' symbol in chart names represent?

Charts starting with '@' are auto-generated system charts containing module diagnostics and driver communication blocks.

What block connects digital inputs in the PCS 7 APL?

The Pcs7DiIn block (FB1871).

Does module driver generation consume AS Process Objects?

Channel driver blocks themselves do not consume Process Objects; only the technological blocks they feed (e.g., MotL, MonAnL) consume AS POs.

Technical References

Related Articles

Related Tags

  • Module Drivers
  • Generate Module Drivers
  • Pcs7DiIn
  • CFC Compile
  • Hardware Diagnostics
20 respuestas