Resolving PCS 7 Chart Compilation Hangs at 3 Percent During Module Driver Generation
PCS 7 chart compilation hangs at 3 percent ('specify hardware configuration') during module driver generation when the driver generator encounters orphaned I/O addresses, corrupt diagnostic data blocks, or conflicting hardware configuration exports. When new code is added, dangling symbolic pointers or outdated diagnostic charts prefixed with '@' trap the generator in an infinite parsing loop. Resolving this requires compiling and saving HW Config, deleting existing '@' diagnostic charts in CFC, and executing 'Save As... With Reorganization (Slow)' before recompiling.
Table of Contents
- Driver Generator Execution Cycle and HW Config Parsing
- Root Causes of the 3 Percent Freeze
- Step-by-Step Diagnostic and Recovery Procedure
- Verification
- Limitations and Operational Precautions
- Engineer FAQ
- Technical References
- Related Articles
- Related Tags
Driver Generator Execution Cycle and HW Config Parsing
When compiling CFC charts in SIMATIC PCS 7 with the option Generate module drivers enabled, the compiler launches the Driver Generator (s7wupapx.exe / s7jcfcap.exe). At the initial 3% progress threshold, the generator's status message reads "specify hardware configuration".
During this initial phase, the driver generator performs the following critical tasks:
1. Reads the compiled binary hardware description files (.dat and .bin records) exported from Step 7 HW Config.
2. Identifies all distributed I/O stations (PROFIBUS DP slaves, PROFINET IO devices, ET 200M/SP/SP HA racks, and field transmitters).
3. Maps logical I/O addresses to symbolic tags and cross-references them against channel driver instances (Pcs7DiIn, Pcs7AnIn, F_CH_DI, etc.) placed in user CFC charts.
4. Prepares the system diagnostic charts (prefixed with @) to instantiate hardware diagnostic blocks (MOD_D16_PN, RACK, SUBNET, OB_BEGIN).
If the hardware configuration files contain corrupted binary indices or if symbolic address pointers point to deleted hardware modules, the parser enters an unhandled recursive lookup loop or deadlocks on file access, freezing the compilation at 3%.
Root Causes of the 3 Percent Freeze
Through field diagnostic analysis, this specific freeze is traced to four primary failure modes:
1. Uncompiled or Out-of-Sync HW Config: Changes were made to hardware racks (or symbolic addresses were modified) without executing a complete Save and Compile in HW Config for all AS stations.
2. Corrupted System Diagnostic Charts (@ Charts): Stale or manually modified blocks within @ charts retain locks or conflicting block numbers (FBs/DBs) that conflict with new driver instantiations.
3. Symbol Table Inconsistencies: Channel blocks were interconnected to symbolic addresses that were subsequently deleted or remapped in HW Config, leaving orphaned database pointers in the Step 7 cross-reference index.
4. Third-Party GSD/GSDML Database Incompatibility: Newly integrated field devices utilize an incompatible or uncertified GSDML revision lacking required PCS 7 driver generator metadata rules.
Step-by-Step Diagnostic and Recovery Procedure
Follow this structured recovery sequence to clear driver generator locks and restore compilation:
- Recompile Hardware Configuration:
* Open HW Config for the affected AS station.
* Select Station -> Save and Compile. Ensure compilation finishes with zero errors.
* If working in an S7-400H / S7-410 redundant system, ensure both CPU racks compile cleanly. - Purge Existing Diagnostic Charts (
@Charts):
* In SIMATIC Manager, navigate to the target S7 Program -> Charts folder.
* Select all charts beginning with the@symbol (e.g.,@(1),@(2),@Diag_Chart).
* Delete these@charts completely. (Note: These are auto-generated system charts; the driver generator recreates them cleanly during the next compile). - Rebuild Step 7 Database (Reorganization):
* Close all CFC charts, HW Config, and Symbol Editor windows.
* In SIMATIC Manager, select File -> Save As....
* Select With Reorganization (Slow). Save the project to a new directory. This cleans up all internal cross-reference pointer corruption. - Clean Symbol Table Verification:
* Open the Symbol Table of the AS program.
* Select View -> Filter -> Check for invalid or unassigned addresses. - Recompile Charts with Driver Generation:
* Open CFC. Select PLC -> Compile -> Charts as Program.
* Check Generate module drivers. Select Entire program.
* The compiler will cleanly rebuild the hardware model and bypass the 3% lock.
Verification
- Monitor the CFC compilation dialog. Confirm that progress advances smoothly past 3% ("specify hardware configuration") through "generate module drivers" to 100%.
- In SIMATIC Manager, verify that new
@system charts are created under the Charts folder with current timestamps. - Open the compile log file (
Compile.log). Confirm that driver generation concludes with zero errors and zero warnings.
Limitations and Operational Precautions
- Deleting
@charts removes custom connections made inside@charts. Never place custom user logic inside auto-generated@charts. - Performing "Entire program" compilation and "Save As... With Reorganization (Slow)" requires exclusive project access; ensure other engineering clients are disconnected.
- If compilation still hangs after reorganization, inspect recently added third-party GSD files in HW Config. Temporarily remove the new device to isolate the offending module.
Engineer FAQ
- Is it safe to manually delete charts starting with '@'?
Yes. Charts prefixed with@are automatically managed by the PCS 7 Module Driver Generator. Deleting them forces the generator to reconstruct all diagnostic blocks from scratch. - Why does compiling 'Changes only' not fix the 3 percent hang?
A delta compile attempts to reuse the existing binary hardware index and@chart layout. If that underlying index is corrupted, the delta compiler encounters the same deadlock. - Can a duplicated symbolic address cause this issue?
Yes. If two conflicting symbols share the same peripheral address (e.g.,IW 512), the driver generator cannot determine which module driver to instantiate and can hang.
Technical References
- SIMATIC PCS 7 CFC for S7 / M7 Manual (A5E41356247-AA).
- SIMATIC PCS 7 Engineering System Compiling and Downloading Guide.
- Siemens Industry Online Support Entry ID 109801081: Troubleshooting Module Driver Generation in PCS 7.
Related Articles
- Resolving Symbol Table Conflicts and Orphaned Hardware Addresses in PCS 7.
- Upgrading and Verifying GSDML Revisions for PCS 7 Driver Generator Compatibility.
Related Tags
PCS 7, CFC, Module Driver Generator, HW Config, S7-400, Compilation Errors, Reorganization, Diagnostic Blocks