Identifying and Resolving Incompatible Library Blocks During PCS 7 Retrofits and Library Upgrades

Identifying and Resolving Incompatible Library Blocks During PCS 7 Retrofits and Library Upgrades

In SIMATIC PCS 7 migration and retrofit projects—such as upgrading older programs to PCS 7 V8.1 or V8.2—compilation errors and AS download rejections occur when legacy blocks (from PCS 7 Standard Library or obsolete third-party packages) are mixed with newer Advanced Process Library (APL) channel drivers. As of PCS 7 V8.0, the compiler validates driver compatibility during module driver generation. Resolving these incompatibilities requires auditing the block container using Version Cross Manager (VXM) or Chart Reference Data, replacing deprecated driver blocks with current APL equivalents, synchronizing the Master Data Library via 'Update Block Types', and re-generating module drivers.

Table of Contents

Library Evolution and Driver Compatibility Constraints

During the lifecycle of a SIMATIC PCS 7 plant, software upgrades frequently bridge multiple library generations:
- The Classic PCS 7 Standard Library:
* Utilized blocks such as CH_AI, CH_DI, CH_AO, CH_DO for I/O processing, and CTRL_PID, MOTOR, VALVE for equipment control.
* Relied on legacy module diagnostic drivers (MOD_1, MOD_2, OR_M_8).
- The Advanced Process Library (APL):
* Introduced standardized structured interfaces (STRUCT), NAMUR NE 107 diagnostic states, and modernized channel drivers (Pcs7AnIn, Pcs7DiIn, FbAnIn, FbDiIn).
* Relies on modernized diagnostic blocks (MOD_D16, MOD_HA, OR_M_16).
- The Retrofit Problem:
* In retrofit projects upgraded across several versions (e.g. V6.1 $\rightarrow$ V7.1 $\rightarrow$ V8.1), engineers often update some charts to APL while leaving legacy motor and valve blocks in place.
* Attempting to generate module drivers for both libraries on the same I/O rack triggers severe compiler collisions.

How the PCS 7 V8.x Compiler Detects Incompatible Blocks

Starting in PCS 7 V8.0, Siemens tightened compiler validation rules:
1. Module Driver Version Checking:
- When Generate Module Drivers executes, the compiler interrogates the family, author, and version attributes of every channel driver block in the project.
- If it detects classic drivers (CH_AI) alongside APL drivers (Pcs7AnIn) wired to the same interface module (e.g. ET 200M IM 153-2), the compiler aborts with an error indicating driver conflict.
2. Download in RUN Lockout:
- The AS download engine verifies that all instantiated block types in the offline chart container match the internal signatures of the blocks loaded in the CPU's online memory.
- If an engineer updates a block from the library that has modified internal structures, the compiler revokes the Download Changes in RUN capability, demanding a complete CPU STOP.

Step-by-Step Retrofit Audit and Block Harmonization Workflow

To identify and harmonize incompatible library blocks across a retrofit project:

  1. Audit Installed Block Versions:
    - In SIMATIC Manager, open any CFC chart.
    - Select Options > Block Types.
    - In the Block Types window, click the column header Version and Author.
    - Inspect the block inventory:

    • Blocks authored by AdvLib81 or AdvLib82 represent valid APL blocks.
    • Blocks authored by PCS7_61 or PCS7_70 indicate legacy Standard Library blocks requiring migration.
  2. Clean Up Unused Block Types:
    - In the same Block Types dialog, click Clean Up.
    - Delete all unused, obsolete block types from the chart container.

  3. Update Blocks from Master Data Library:
    - Open the project's Master Data Library.
    - Ensure the library contains strictly the harmonized, certified blocks for your PCS 7 release.
    - Open the Blocks folder, select all blocks, right-click, and select Update Block Types....
    - Select all AS projects within the Multiproject and execute the update.

  4. Regenerate Module Drivers:
    - In SIMATIC Manager, select the chart folder and click Chart > Compile > Complete Program.
    - Ensure the box Generate module drivers is checked.
    - Review the compilation log: verify that diagnostic blocks (MOD_ and OR_M_) are instantiated from the current library version without warnings.

Legacy Standard Library vs Modern APL Block Replacement Table

The following table details common legacy Standard Library blocks and their direct APL replacements:

Function / EquipmentLegacy Standard Library BlockLegacy Block NumberModern APL Replacement BlockModern APL Block NumberAnalog Input DriverCH_AIFB 1Pcs7AnInFB 1869Digital Input DriverCH_DIFB 3Pcs7DiInFB 1871Fieldbus Analog DriverPA_AIFB 34FbAnInFB 1806Standard PID ControllerCTRL_PIDFB 61PIDConLFB 1874Standard MotorMOTORFB 66MotLFB 1850Reversing MotorMOT_REVFB 67MotRevLFB 1851Standard ValveVALVEFB 68VlvLFB 1899

Verification

To confirm that all library block incompatibilities are resolved:
1. Open the CFC chart container and execute Chart > Compile > Complete Program with 'Generate module drivers' enabled.
2. Verify that the compilation log finishes with:
text Compilation completed: 0 errors, 0 warnings.
3. In SIMATIC Manager, open Chart Reference Data (Ctrl + K) > View > Block Types. Confirm that all instantiated blocks report uniform library versions (e.g. AdvLib81).
4. Perform an online download to the controller; verify that the CPU executes in RUN mode with healthy I/O signal quality (Quality = 16#80).

Limitations and Operational Precautions

When performing library upgrades on operating facilities:
1. Never Replace Blocks in Running Controllers Without Downtime Planning: Migrating from legacy blocks (MOTOR FB 66) to APL (MotL FB 1850) alters the instance DB structure completely. This requires deleting the old block and instantiating the new block, which cannot be downloaded in RUN and requires a plant outage.
2. WinCC Faceplate Synchronization: Replacing AS blocks mandates recompiling and updating WinCC OS faceplates. Operating modern APL blocks with legacy WinCC faceplates results in unlinked dynamic tags and broken control buttons.
3. Backup Master Data Library: Always archive the original Master Data Library before executing 'Update Block Types' to ensure a rollback baseline is available.

Engineer FAQ

Can classic Standard Library blocks coexist with APL blocks in the same CPU?

Yes, control blocks (e.g. CTRL_PID and MotL) can coexist in the same CPU program. However, their channel drivers must NOT share the same I/O rack or interface module.

Why did 'Generate module drivers' fail after I updated a block?

This happens if the hardware catalog in HW Config was not updated to match the library, or if an obsolete diagnostic block (e.g. MOD_1) remained locked in the block container.

What does the 'Clean Up' button do in Block Types?

It scans the project charts, identifies block types that reside in the offline block container but are not placed in any CFC chart, and removes their headers from the database.

How do I identify which chart contains an incompatible block?

Open Chart Reference Data (Ctrl + K), select View > Block Types, expand the incompatible block number, and inspect the list of charts where that block is instantiated.

Technical References

Related Articles

Related Tags

  • PCS7_Migration
  • Library_Upgrade
  • APL_Migration
  • Module_Drivers
  • Update_Block_Types
  • Standard_Library
  • Retrofit
6 respuestas