Resolving PCS 7 V9.1 SP1 Block Type Update Error 0xEE040000

David Krause10 min read
Process ControlSiemensTroubleshooting
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Problem Description

During a SIMATIC PCS 7 project migration to V9.1 SP1, the Update Block Types workflow terminates with the following diagnostics written to the CFC/SFC error log:

Error Log File for CFC/SFC ...
04/23/22 - 02:19:07,0xEE040000,0xFF010205,0xFF010205
0xEE040000 41  SRV_BLOCK_UPDATE           =INTEGRITY_ERROR   Database inconsistent.
0xEE0503FF 30  SRV_BLOCKTYPE_BLOCKS_UPDATE=SYSTEM_ERROR      Error being passed on.
0xEE0503FF 581 SRV_S7_BLOCKTYPE_UPDATE    =SYSTEM_ERROR      Error being passed on.
0xEE0503FF 12  TYP_S7_BLOCKTYPE_UPDATE_V6_0=SYSTEM_ERROR     Error being passed on.

When project-specific (user-created) blocks are involved, a related diagnostics line follows the same call stack:

04/26/22 - 00:40:41,0xEE0503E5,0xFF010205,0xFF010205
0xEE0503E5 92  SRV_BLOCK_UPDATE           =SYSTEM_ERROR      Programming error.

The error is reported by the CFC/SFC editor when SIMATIC Manager attempts to import block type revisions from the project master data library into the chart folder. The block count in the log (e.g. 41, 30, 581, 12) is the number of affected instances and types encountered during the failed pass.

Impact: The chart folder is left in a partially updated state. Any subsequent compile fails because the FBD/ST source signature of the type does not match the signature expected by the chart instance. Do not overwrite the project on the ES station before resolving the error.

Error Code Reference

Event ID Sub-event Service Class Meaning
0xEE040000 41 SRV_BLOCK_UPDATE INTEGRITY_ERROR Database inconsistent. The block container on disk is corrupt or the version stamp of an F-type does not match the instance references inside the S7 program.
0xEE0503E5 92 SRV_BLOCK_UPDATE SYSTEM_ERROR (Programming error) The block type supplied by the master data library cannot be reconciled with the project-specific (user) block. Often a version stamp collision on FBs/FCs/DBs.
0xEE0503FF 30 SRV_BLOCKTYPE_BLOCKS_UPDATE SYSTEM_ERROR Error being passed on. Upper-layer wrapper for blocktype update.
0xEE0503FF 581 SRV_S7_BLOCKTYPE_UPDATE SYSTEM_ERROR Error being passed on. S7 block type update handler.
0xEE0503FF 12 TYP_S7_BLOCKTYPE_UPDATE_V6_0 SYSTEM_ERROR Error being passed on. V6.0 type-update interface.

All four 0xEE0503FF rows are wrapper entries that simply forward the underlying 0xEE040000 or 0xEE0503E5 condition. The diagnostic is anchored at the first non-wrapper line.

Root Cause Analysis

The two error classes point to different root conditions; both surface in the same workflow:

  1. 0xEE040000 INTEGRITY_ERROR — The S7 program folder contains blocks whose interface signature (generated from the CFC chart) is older than the type definition in the master data library. The CFC runtime cannot produce a consistent compile image because the time stamp of the type container and the instance container are out of phase. This is the dominant cause when an entire bulk of standard APL blocks fails.
  2. 0xEE0503E5 Programming error — A project-specific block was copied from an older PCS 7 version (e.g. V8.1, V9.0) directly into a V9.1 project. The FB/FC interface hash differs because the underlying SCL compiler version in V9.1 is newer (CFC ≥ V9.1 uses STEP 7 V5.6 + SCL compiler V5.7+). The block type update compares the user block to the V9.1 reference and refuses to overwrite.

Siemens PCS 7 explicitly forbids a skip-level update of the Advanced Process Library (APL) and the Basis Library. The official compatibility table (see Siemens Industry Online Support, entry ID 109769406 — PCS 7 V9.1 Compatibility Tool) states that PCS 7 V9.0 SP3 is only compatible with APL V9.0 SP3 Upd3 up to V9.0 SP3 Upd7. Jumping the project from V8.x or V9.0 directly to V9.1 SP1 without an intermediate pass at V9.0 SP3 is the typical trigger of the integrity error.

Library version discipline: The PCS 7 master data library (APL + Basis) must be installed on the ES at the same major version as the ES software. Mixing V8.1 libraries with a V9.1 ES is unsupported and is the single most common trigger of 0xEE040000.

PCS 7 / APL Compatibility Matrix

PCS 7 ES Version Compatible APL Compatible Basis Library Skip-Level Allowed?
V8.0 V8.0 / V8.1 V8.0 / V8.1 No
V8.1 V8.1 V8.1 No
V8.2 V8.2 V8.2 No
V9.0 V9.0 / V9.0 SP1..SP3 V9.0 / V9.0 SP1..SP3 No
V9.0 SP3 V9.0 SP3 Upd3 .. Upd7 V9.0 SP3 Upd3 .. Upd7 No (pin to Upd level)
V9.1 V9.1 V9.1 No
V9.1 SP1 V9.1 SP1 V9.1 SP1 No
V9.1 SP2 V9.1 SP2 V9.1 SP2 No

Source: PCS 7 V9.1 compatibility tool on Siemens Industry Online Support (entry 109769406). For migration products from third-party libraries (e.g. SIMOCODE DP PCS 7 Library Migration Legacy V9.1 SP2) the same version discipline applies.

Pre-Migration Prerequisites

  1. Back up the project. Archiving a S7 project as a *.zip via SIMATIC Manager (File → Archive) is mandatory before any block type update.
  2. Verify the ES is at the exact target version: Start → SIMATIC → SIMATIC Manager → Help → About. Confirm the build string includes PCS 7 V9.1 SP1.
  3. Install the APL V9.1 SP1 and Basis Library V9.1 SP1 on the ES using the PCS 7 setup. Verify under Start → SIMATIC → Documentation → PCS 7 Manuals.
  4. Close all CFC/SFC editors and the Plant View before starting.
  5. Make sure the working directory of the project is on a local NTFS drive. Block type update over a network share can produce 0xEE040000 due to file-locking races.
  6. Disable antivirus real-time scanning on the project path during the update pass.

Solution: Sequential Library Pass Procedure

The only field-proven remediation is to step the project through every intermediate library version. Skipping any major version re-creates the integrity error.

Step 1 — Staging the project

  1. Retrieve the project from the archive using SIMATIC Manager → File → Retrieve.
  2. In Plant View, open the master data library and remove any user blocks that you intend to migrate manually.

Step 2 — Intermediate pass at V8.1 (only if source is V8.0)

  1. Install APL Library V8.1 and Basic Library V8.1 on the ES.
  2. Options → Charts → Update Block Types. Tick Update all block types in the project and Update FBD/DB according to block type.
  3. Open each CFC. Compile with the Generate Module Driver option enabled. Confirm a clean compile.
  4. Once clean, uninstall the V8.1 libraries from the Plant View (right-click → Remove Library).

Step 3 — Intermediate pass at V9.0 (only if source is ≤ V9.0)

  1. Install APL Library V9.0 and Basic Library V9.0.
  2. Re-run Options → Charts → Update Block Types.
  3. Open each CFC, compile with Generate Module Driver.
  4. Uninstall the V9.0 libraries.

Step 4 — Final pass at V9.1 SP1

  1. Install APL V9.1 SP1 and Basis Library V9.1 SP1.
  2. Options → Charts → Update Block Types. Accept the dialog that lists the type deltas.
  3. Open each CFC and compile with Generate Module Driver enabled.
  4. If 0xEE0503E5 reappears for a project-specific block, open the user block in the SCL/ST editor, recompile it, and re-import it through the master data library before re-running the type update.
Do not mix library versions. After each pass, fully uninstall the previous library before installing the next. Holding both APL V9.0 and APL V9.1 SP1 in the same project is unsupported and re-creates the integrity error.

Block Type Update Workflow — Detailed Dialog Sequence

  1. In SIMATIC Manager, select the S7 Program node of the AS that owns the affected CFCs.
  2. Choose Options → Charts → Update Block Types. The dialog lists two columns: Block type in library and Block type in chart folder.
  3. For every line, select Take over from library. Do not untick Perform consistency check.
  4. Click Execute. The editor writes the result to Options → Charts → Display Log. Read the *.log file at <project>\<AS>\<S7Program>\CFC\<chart>\log\ for the full event trace.
  5. Re-open the chart, then Chart → Compile → Chart with Generate Module Driver enabled.

Verification

  1. Open Options → Charts → Display Log. Confirm that no 0xEE04xxxx or 0xEE05xxxx events remain.
  2. Run Chart → Check Consistency on every CFC. The result must be 0 errors, 0 warnings.
  3. Compile the entire AS program (Program → Compile All) and verify the S7 target file is rebuilt.
  4. Download the program to the AS in Stop mode and perform a CPU restart. Confirm no SF (System Fault) LED and no diagnostic buffer entries with class Programming error.
  5. Open the PCS 7 OS Project Editor and recompile the OS. The OS must rebuild the tag container without tag not found entries.
  6. Save the project and re-archive it as the new V9.1 SP1 baseline.

Related Error Codes and Quick Reference

Event ID Typical Trigger First-Action
0xEE040000 Library version out of phase with ES Reinstall matching APL/Basis library
0xEE0503E5 Project-specific FB/FC signature drift Recompile user block in SCL
0xEE0503FF Wrapper event, look at the first non-wrapper Scroll up in the log
0xEE040007 Type not found in master data library Re-add library to Plant View
0xEE040008 Block type version older than instance Run block type update from menu
0xEE0503E1 Cannot open chart folder for write Check file/folder permissions and AV lock

Field-Proven Caveats

  • Working copy vs. multi-project: The block type update must be performed on the project that owns the S7 Program. Run the update on the master project first, then in any working copy or replica.
  • Shared master data library: If the project uses a shared master data library (SML), update the SML once and the chart folders pick up the new types automatically. Do not import the same block into both the SML and the project master data library.
  • Time stamps: The S7 time stamp of a block is influenced by the workstation clock. Time jumps (NTP resync, daylight saving) during a block type update can produce 0xEE040000. Lock the ES clock before starting.
  • Anti-virus: Trend Micro, Windows Defender real-time scan and certain EDR agents are known to open the block source files in FILE_SHARE_READ mode, breaking the write pattern that CFC expects. Exclude the project root from real-time scanning for the duration of the update.
  • CFC and SFC version drift: A V9.0 SP3 chart opened in a V9.1 SP1 ES may be silently re-compiled by the editor on first save. Always re-run Chart → Check Consistency after the type update.

Troubleshooting Matrix

Symptom Likely Cause Remediation
Error on standard APL blocks only Skip-level library update Roll back, perform sequential pass per Solution section
Error on user blocks only FB/FC compiled in older SCL Recompile user block at target SCL version
Error appears after only some CFCs are opened Instance container in a specific chart is corrupt Use Chart → Check Consistency, then Compile → Chart
Error returns after a clean re-run AV or backup agent is locking the S7 program folder Exclude folder from AV, retry
Error on OS server download OS tag container was not rebuilt after type update Re-open OS Project Editor, compile OS

Standards and Reference Documents

What does event ID 0xEE040000 mean in a PCS 7 block type update?

It is an INTEGRITY_ERROR raised by SRV_BLOCK_UPDATE (sub-event 41). The S7 program database is inconsistent: the type container in the master data library and the instance references in the chart folder have diverged, typically because the project jumped across multiple library versions without an intermediate pass.

Can I migrate directly from PCS 7 V8.1 to V9.1 SP1?

No. The official compatibility tool requires a sequential pass at V9.0 before V9.1. Skipping V9.0 is the most common cause of 0xEE040000. Perform Update Block Types once at APL V8.1, once at APL V9.0, and only then at APL V9.1 SP1.

Why does only a project-specific user block fail with 0xEE0503E5?

The user FB/FC was compiled with an older SCL compiler. The V9.1 SP1 SCL compiler emits a different interface hash. Open the block, recompile it under the target SCL version, and re-run the type update.

Does the Block Type Update need to be run per AS or once for the whole project?

It must be run on every S7 program that owns a CFC. In a multi-project, start with the master project, then propagate the type container to all working copies and replicas. The shared master data library (SML) is the recommended way to keep the type in one place.

Which library version pairs with PCS 7 V9.1 SP1?

Use APL V9.1 SP1 and Basis Library V9.1 SP1 only. According to the compatibility tool, V9.0 SP3 ES pairs with APL V9.0 SP3 Update 3 through Update 7; V9.1 ES pairs only with APL V9.1, V9.1 SP1 or V9.1 SP2 as appropriate.

Back to blog