Problem Overview
Internal Error 15455 is raised by SIMATIC WinCC V7.4 (and comparable V7.x service packs) when the WinCC Explorer performs a full OS compilation. In a typical field case, the error appears immediately after migrating an existing WinCC V7.0 SP3 project that was previously edited on Windows XP with STEP 7 V5.4 SP5 and CFC V7.0 to a Windows 7 64-bit engineering station running WinCC V7.4, STEP 7 V5.5 SP4, and CFC V8.2. The migration wizard completes without complaints, the operator station starts, the graphics are upgraded on first open, and only the full OS compile — issued from SIMATIC Manager or directly from WinCC Explorer — aborts with the popup Internal Error 15455 and leaves the OS database in a half-built state.
Error Code Reference
WinCC raises 15455 as a generic internal exception thrown by the OS generator (OSGen.exe) when it cannot reconcile a tag descriptor carried in the migrated project against the current WinCC schema. The code is not exposed in the WinCC Information System as a documented event — it surfaces only through the popup — and Siemens support treats it as a project-data integrity issue rather than a WinCC runtime bug. The OS generator writes a corresponding entry to the WinCC diagnostic log under \WinCC\Diagnose\OSGen.log with the offending tag name and the exact line in the project database that failed to parse.
| Field | Value |
|---|---|
| Error number | 15455 |
| Source module | OSGen.exe (OS generator) |
| Typical build | WinCC V7.4 + Upd. 1 to Upd. 13 (reproducible across all) |
| Triggering action | OS compile (full) |
| Affected project type | PCS 7 / STEP 7 + WinCC with CFC S7 program |
| Primary cause | Corrupted internal system tag descriptor |
| Severity | Blocks OS download; not destructive to source project |
Environment and Migration Path
The defect is consistently reproducible on the following migration stack:
- Source OS: Windows XP SP3 (32-bit)
- Target OS: Windows 7 SP1 (64-bit)
- Source WinCC: V7.0 SP3
- Target WinCC: V7.4 (any Update 1 to Update 13)
- Source STEP 7: V5.4 SP5
- Target STEP 7: V5.5 SP4
- Source CFC: V7.0
- Target CFC: V8.2
- S7 Program: PCS 7 style chart-based AS with WinCC structure tags
The WinCC migration is invoked automatically the first time the project is opened in V7.4. The migration routine updates the project database schema, re-compiles the S7 connection, and re-registers all internal and user tags. The error appears only when a full OS compile is requested afterwards, not during the migration itself.
Root Cause Analysis
Investigation of the migrated project reveals that an internal WinCC system tag, @DiagnosisAreaTextID, located under the Diagnostics tag group in Tag Management, contains a corrupted Format Adaptation entry. The descriptor in the V7.4 tag database reads as an empty or mismatched Type Conversion field where the value FloatToFloat should appear. This is a direct migration artifact: in WinCC V7.0, the same tag carries an explicit FloatToFloat type conversion, but the V7.0 SP3 → V7.4 schema upgrade writes a null/incorrect type-conversion pointer into the tagform.dat record for this specific internal tag.
The OS generator cannot resolve a structure tag whose Format Adaptation row points to a missing or invalid conversion routine. When the generator walks the tag tree during the OS compile, it iterates the internal system tags in alphabetical order; @DiagnosisAreaTextID is reached early in the iteration, and the descriptor mismatch triggers the unhandled exception that is presented as Internal Error 15455. WinCC does not provide a UI control in the Tag Management dialog to edit the Format Adaptation of an internal system tag — the field is read-only in the property page — which is why the corruption is invisible to the user until a compile is attempted.
Why the Tag Cannot Be Edited in the UI
Internal tags in WinCC carry a read-only flag at the database level. In V7.0, internal tags were defined in the registry hive HKLM\SOFTWARE\Siemens\Automation\WinCC\InternalTags and mirrored in the project database TagIm.sql of the WinCC project. Starting with V7.2, internal tags are also stamped with a SystemTag = 1 flag in TagManagement.xml, and the property sheet in WinCC Explorer honors this flag by hiding the conversion editor. A separate, project-internal @-prefixed namespace is reserved for tags owned by the WinCC runtime and the OS server; user code is not allowed to mutate these entries at runtime.
Symptoms and Diagnostic Indicators
Before the OS compile is triggered, the project appears healthy: Graphics Designer opens, charts upgrade on first open, the alarm logging configuration migrates, and the time-synchronization settings restore correctly. The defect is only visible at compile time, but several pre-cursor symptoms are diagnostic:
- Opening Tag Management in WinCC Explorer shows the Diagnostics group with
@DiagnosisAreaTextIDlisted, but its icon may differ from neighboring internal tags. - Right-clicking the tag and selecting Properties opens a read-only property sheet — the Format Adaptation row is either blank or shows a value other than
FloatToFloat. - Searching the project for Type Conversion in the Tag Management filter returns no user-editable tag with the offending entry — the entry only exists for the internal tag.
- The
OSGen.login\WinCC\Diagnosewritten after the failed compile contains a stack trace pointing atCnvType:FloatToFloatand the tag name@DiagnosisAreaTextID.
Resolution Method 1 — Delete the @DiagnosisAreaTextID System Tag
The fastest and most reliable fix is to delete the offending system tag from the project. The OS generator will re-create @DiagnosisAreaTextID with the correct FloatToFloat format adaptation on the next compile. The tag is not strictly required for the OS to start, and WinCC regenerates it from the embedded template on the next full OS compile.
Procedure
- Close the WinCC project and the WinCC Explorer on the engineering station.
- Open WinCC Explorer in administrator mode: right-click the WinCC Explorer shortcut and select Run as administrator. WinCC requires elevated rights to mutate the project database for tag deletion.
- Navigate to Tag Management in the project tree.
- Expand the Diagnostics group. The Diagnostics group is the fourth default group after Internal Tags, Communication, and User Defined.
- Locate the internal tag named
@DiagnosisAreaTextID. It is the only tag in the Diagnostics group that begins with the@prefix. - Right-click the tag and select Delete. Confirm the warning dialog that WinCC displays about modifying internal tags.
- Save the project: File → Save, or press
Ctrl+S. - Trigger a full OS compile from SIMATIC Manager: right-click the OS → Compile OS → Complete compilation (German: OS übersetzen → Gesamte OS). Or, from WinCC Explorer, use the OS Project Editor → Compile button.
@DiagnosisAreaTextID tag is not flagged read-only at the SQL level in the V7.4 project — it can be deleted directly from the WinCC Explorer. Older reports in Siemens support threads describe cases where the tag is read-only due to a corrupted permission bitmap in the project. In those cases, follow Resolution Method 2 first to remove the write-protection, then proceed with the deletion.
What the Tag Does
@DiagnosisAreaTextID is an internal WinCC variable that carries the text-ID of the currently active diagnostic area in PCS 7 maintenance screens. The OS generator's DiagArea component reads the value at runtime to map the active maintenance view to its display name. The variable is supplied by the WinCC runtime from the embedded internal_tags.csv template, not from the S7 program — therefore deleting the user-mapped copy and re-generating it does not break the AS-to-OS data flow.
Resolution Method 2 — Remove the Write-Protection and Edit the Conversion
If the system tag is flagged read-only in the project database, WinCC refuses the delete request. Siemens support provides a documented procedure to remove the write-protection on internal tags by editing the SQL-backed project database directly.
Procedure
- Close all WinCC components on the engineering station.
- Open the SQL Server Management Studio (bundled with WinCC V7.4) and connect to the WinCC instance
\WinCC. - Locate the project database — it has the same name as the WinCC project — and expand the Tables node.
- Open the table
MCPTinternaltags(or, in V7.4 with Update 9 and later,TagManagement_Internaldepending on schema version). - Find the row for tag name
@DiagnosisAreaTextID. The relevant columns are TagName, FormatAdaption, ConvType, and ReadOnly. - Set the ReadOnly column to
0for this row. Click into the cell, type0, and commit. - Set the ConvType column to
FloatToFloat(numeric value13in the conversion-type enum of the WinCC tag schema). - Save the row. Close SQL Management Studio.
- Reopen the project in WinCC Explorer with administrator rights and verify that the property sheet of
@DiagnosisAreaTextIDnow shows Type Conversion: FloatToFloat. - Save the project and run a full OS compile.
The official Siemens support thread for deleting write-protected internal tags in WinCC documents this procedure in detail. The same approach applies to any internal tag that has been incorrectly marked read-only during a schema migration.
Resolution Method 3 — Correct the Format Adaptation in the PLC Program
The Format Adaptation on a WinCC structure tag is generated automatically by the SIMATIC Manager when the OS is compiled. The PLC side of the structure definition controls the data type that WinCC expects for each member, and a mismatch on the PLC side is the original cause of the corrupted conversion entry. If the deletion approach does not persist across project save/load cycles, the format adaptation should also be corrected on the S7 side.
Procedure
- Open the S7 program in SIMATIC Manager on the engineering station.
- Navigate to the chart that exports the structure type used by the WinCC OS. In a PCS 7 project this is typically the Master Data Library chart or the Shared Declarations folder.
- Open the relevant UDT (User-Defined Data Type) or the chart Interface that defines the structure members.
- Verify that the data type of the member that WinCC maps to
@DiagnosisAreaTextIDisREAL(single-precision float) on the S7 side. - If the type is
DINT,INT, orBOOL, change it toREALand recompile the S7 program. Note that this change has process implications — coordinate with the process engineer before modifying the S7 program. - Run Charts → Compile in CFC, then PLC → Compile and Download Objects to push the new type definition to the AS.
- Re-trigger the OS compile from SIMATIC Manager. The new Format Adaptation is written into the WinCC tag database on this pass.
Verification
After applying any of the three resolution methods, verify the fix with the following checks:
-
OS compile success: Trigger a full OS compile from SIMATIC Manager. The compile must complete without the 15455 popup and without entries in
OSGen.logthat reference@DiagnosisAreaTextID. -
Tag re-creation: Open Tag Management in WinCC Explorer and confirm that
@DiagnosisAreaTextIDis back in the Diagnostics group with Type Conversion: FloatToFloat. - OS download: Download the compiled OS to the operator station (target) and verify that the OS starts in runtime. The maintenance view should display without missing-text warnings.
-
Diagnostic area cycling: In runtime, open a maintenance view, change the diagnostic area, and confirm that the area text updates correctly. This exercises the
@DiagnosisAreaTextIDdata path end-to-end. - Save/reload round-trip: Save the project, close WinCC Explorer, reopen the project, and re-trigger a full OS compile. The compile must still succeed — this verifies that the fix persists across project save/load cycles.
Migration Hygiene and Prevention
The defect is reproducible across multiple WinCC V7.4 update levels and is tied to the V7.0 → V7.4 schema upgrade. Engineering teams running PCS 7 V7.0 projects through a major migration should adopt the following hygiene steps to avoid the trap:
- Pre-migration compile: On the source system, run a full OS compile immediately before the migration. This forces the source tag database into a known-good state, which the migration routine can use as a baseline.
- Migration on a clean OS image: Install WinCC V7.4 on a freshly imaged Windows 7 64-bit system. Carry over the project only, not the registry. A blended registry from the V7.0 system is a common source of corruption for internal tag entries.
- Post-migration audit: After the migration, open Tag Management and audit every internal tag in the Diagnostics group. Verify that each carries the expected Type Conversion entry. Document the audit result in the project migration log.
- Test OS compile on a sandbox: Run the full OS compile on a sandbox engineering station before touching the production engineering station. The compile is destructive only in the sense that it overwrites the OS runtime database; running it on a sandbox protects the production environment.
- Use the PCS 7 migration guide: The official PCS 7 V7.0 to V8.x migration guide documents the supported upgrade path and the known schema changes. The guide is referenced in the WinCC V7.4 Information System and is the authoritative source for the migration procedure.
Related Issues and Edge Cases
Several adjacent defects are commonly misdiagnosed as Internal Error 15455:
| Symptom | Likely cause | Discriminator |
|---|---|---|
| OSGen popup with no error number | Damaged WinCC project database | Check OSGen.log for SQL exception |
| Compile aborts at S7 connection | NetPro configuration mismatch | Verify S7 connection online in NetPro |
| Compile succeeds, OS fails to start | Missing license / dongle | Check Automation License Manager |
| Popup mentions a user tag, not an internal tag | User tag corruption from S7 type change | Re-import the S7 program and rebuild the OS |
| Popup 15455 only on incremental compile | Stale OS runtime database | Run Complete compilation instead of Incremental |
For incremental compile failures, switch to Complete compilation as a first diagnostic step. Incremental compile uses a delta-detection algorithm that can miss schema-level corruption in internal tags; a complete compile re-scans the entire tag tree and surfaces the issue deterministically.
Field Notes and Caveats
- The
@DiagnosisAreaTextIDtag is a WinCC runtime tag, not an S7 tag. It is not visible in the S7 program and cannot be traced in the AS connection diagnostics. - Deleting the tag does not affect the S7 program, the AS-AS coupling, or the operator-station alarm/Tag Logging configuration. The runtime re-creates the tag from the embedded template on the next full OS compile.
- If the S7 program also references a custom structure type that includes a
REALmember with the same name pattern, the AS-side fix and the WinCC-side fix are both required. The OS generator inherits the data type from the S7 UDT on every compile, so a WinCC-only fix will be overwritten by the next compile that reads the S7 type definition. - WinCC V7.5 (the next major release after V7.4) ships with a reworked OS generator that resolves the descriptor-mismatch class of defect at compile time with a clear error message. Engineering teams planning a multi-step migration should consider jumping to V7.5 directly to avoid the V7.4 trap.
Summary Procedure
- Close WinCC Explorer.
- Reopen with Run as administrator.
- Open Tag Management → Diagnostics.
- Delete the internal tag
@DiagnosisAreaTextID. - Save the project.
- Run a full OS compile from SIMATIC Manager.
- Verify the compile completes without Internal Error 15455.
- Verify the tag is re-created in the Diagnostics group with Type Conversion: FloatToFloat.
- Download the OS to the operator station and verify runtime startup.
What is WinCC Internal Error 15455?
Internal Error 15455 is a non-documented exception raised by the WinCC OS generator (OSGen.exe) when it cannot reconcile a tag descriptor during a full OS compile. In the WinCC V7.0 SP3 to V7.4 migration path, the error is consistently caused by a corrupted Format Adaptation on the internal system tag @DiagnosisAreaTextID in the Diagnostics tag group.
How do I fix WinCC Internal Error 15455 after migration?
Delete the internal system tag @DiagnosisAreaTextID from Tag Management → Diagnostics in WinCC Explorer (run as administrator), save the project, and re-trigger a full OS compile. The OS generator recreates the tag with the correct FloatToFloat format adaptation on the next compile.
What does the @DiagnosisAreaTextID tag do?
@DiagnosisAreaTextID is a WinCC runtime-internal tag that carries the text-ID of the currently active diagnostic area in PCS 7 maintenance screens. It is supplied by the WinCC runtime from the embedded internal-tag template, not from the S7 program, and is regenerated automatically by the OS generator on every full OS compile.
What is the difference between Format Adaptation and Type Conversion in WinCC?
Format Adaptation is the V7.x property-page name; Type Conversion is the V7.0 term for the same property. Both refer to the data-type conversion routine the OS generator applies when mapping S7 data to WinCC tags. For @DiagnosisAreaTextID the value must be FloatToFloat.
Does deleting @DiagnosisAreaTextID affect the S7 program or runtime?
No. The tag is owned by the WinCC runtime, not the S7 program. Deleting it triggers a re-creation on the next OS compile with the correct FloatToFloat format adaptation. The AS program, the operator-station alarm configuration, and the Tag Logging configuration are not affected.
Is Internal Error 15455 documented by Siemens?
The error code is not exposed in the WinCC Information System as a documented event. It is reported through a WinCC popup only. Siemens support treats it as a project-data integrity issue and recommends auditing the internal tags in the Diagnostics group after a V7.0 SP3 to V7.4 migration.