Resolving WinCC V7.5 SP2 Migration Tag Format and Address Errors
Multi-step migrations of legacy SIMATIC WinCC projects — particularly paths that cross the pre-V7.2 (WinCC Explorer / DataManager) architecture into the modern Configuration Studio environment of V7.2, V7.3, V7.4, and V7.5 SP2 — produce a recognizable class of tag faults. Engineers see invalid format adaptation codes, silently shifted structure tag addresses, and empty address fields when tags are dragged between connections. This reference documents the root cause, the specific symptoms, and the field-proven correction sequence for the most common migration defects encountered when lifting a V6.0 / V6.2 project into a V7.5 SP2 runtime.
1. Problem Overview
The original V6.0 project is migrated through the supported Siemens upgrade chain:
- WinCC V6.0 → V6.2 (project file upgrade)
- WinCC V6.2 → V7.0 (project file upgrade)
- WinCC V7.0 → V7.2 (project file upgrade — last release using legacy WinCC Explorer / DataManager)
- WinCC V7.2 → V7.5 (Tools → Convert Data, or Project Migration utility)
- WinCC V7.5 → V7.5 SP2 (Update installation or Convert Data)
After the final conversion, three classes of tag defects are reported in the field:
-
Format adaptation corruption. Tags display a numeric value in the Format Adaptation column of the Configuration Studio tag table instead of the expected text label (e.g.,
FloatToFloat,DWORDToFloat,WordToInt). The numeric value is rendered with a red background, indicating an invalid code. -
Structure tag byte / dword address shift. A structure tag originally addressed at
DB 250, DBB 0appears in V7.5 asDB 250, DBB 0(visually correct) but the address editor in Configuration Studio only permitsDB 250, DD 0. Drag-and-drop to another connection drops the address entirely. - Empty address on tag transfer. A tag with a valid address in the source connection loses the address field when copied to a different connection (e.g., between redundant AS pairs or between S7 channel units).
Runtime side effects include stuck quality codes (0x48 / bad configuration), permanently 0 values for analog process tags, and online tag diagnostics showing Address Error even when the underlying PLC is online and reachable.
2. Affected Versions and Migration Path
| Source Version | Target Version | Tool | Defect Risk |
|---|---|---|---|
| V6.0 SPx | V6.2 SPx | Project Migrator (legacy) | Low |
| V6.2 SPx | V7.0 | Project Migrator | Low |
| V7.0 | V7.2 | Project Migrator | Low — last legacy path |
| V7.2 (or earlier) | V7.3 / V7.4 / V7.5 | Tools → Convert Data / Project Migration utility | HIGH |
| V7.5 base | V7.5 SPx | Update installation / Convert Data | Medium (residual DB corruption) |
The defect surface is concentrated at the V7.2 → V7.3+ boundary because V7.2 introduced the Configuration Studio in parallel with the legacy WinCC Explorer. From V7.3 onward, the Configuration Studio is the only supported editor for tag management. Legacy *.SSM and binary tag blobs that were tolerated by the V6.x / V7.0 / V7.2 DataManager are re-validated by the new editor and either auto-corrected (success) or flagged (the symptoms described here).
3. Symptom Matrix
| # | Symptom | Configuration Studio View | Runtime Behavior | Likely Root Cause |
|---|---|---|---|---|
| 1 | Format Adaptation column shows raw number, red background | Tag → Properties → Format Adaptation | Tag stays at 0 or last good value; quality = bad-config | Invalid numeric code in FormatAdaption row of config DB |
| 2 | Address appears correct but address editor only accepts DWORD boundary (DD 0) |
Tag → Properties → Address | Wrong byte accessed on PLC; values offset by 2 bytes | Bit-packed / byte-aligned address in old DB; DWORD alignment forced in V7.5 |
| 3 | Drag tag from one connection to another → address field empty | Tag table grid | Tag inactive, no PLC read attempted | Legacy comma vs dot address string in config DB |
| 4 | All format adaptations show as plain number, no red highlight | Tag table grid | Communication works but values wrong on screen | Decimal-vs-locale swap of , and . in address string |
| 5 | Tag exists in old project but missing from V7.5 tag list | Tag Management → Tags | Graphics show placeholder | Tag type UDT mismatch after V7.2 → V7.5 conversion |
4. Root Cause Analysis
4.1 Format Adaptation Encoding
In the WinCC configuration database, the format adaptation for each tag is stored as a numeric code rather than a human-readable text label. The mapping is documented in the SIMATIC HMI WinCC V7.5 SP2 Information System under Format adaptation sorted by WinCC data type. The codes are stable across versions, but the text label is computed at editor render time from the numeric value.
During a V7.2 → V7.5 conversion, if the source row contains a value that is not part of the V7.5 code set, the Configuration Studio cannot map it to a label and renders the raw number with a red background. The tag itself is functionally usable, but the editor cannot display or change the format adaptation through the property sheet, and any save of the tag may persist the invalid value.
4.2 Address String Locale (Comma vs Dot)
The PLC address is stored in the configuration database as a single character string, not as a structured record. Pre-V7.2, the string was written by the DataManager using the regional locale of the engineering station — meaning addresses like DB250,DBB0 (German locale, comma delimiter) or DB250.DBB0 (English locale, period delimiter) were both tolerated and resolved at runtime by the channel DLLs.
From V7.3 onward, the Configuration Studio normalizes the address string to the English convention (period delimiter, no separator between DB number and operand). The conversion writes back into the database; however, in some migration runs the legacy comma-style strings are preserved verbatim. The editor reads them, displays them in a correct-looking form (which is why there is no red highlight), and the underlying channel cannot parse them at runtime — leaving the tag with an address error that is invisible in the editor.
4.3 Structure Tag Byte Alignment
Structure tags in V6.0 / V6.2 / V7.0 / V7.2 may carry a byte-granular start address (e.g., DBB 0 inside DB 250). WinCC V7.5 imposes a DWORD (4-byte) alignment on structure tag start addresses, enforced at the address editor level. The migration:
- Preserves the legacy address in the on-screen display (cosmetic, no editor validation).
- Rejects the legacy byte address when the tag is moved to a different connection or saved with explicit address assignment — the editor silently substitutes the next valid DWORD boundary (
DD 0forDBB 0). - Drops the address field entirely if the legacy string does not match the V7.5 parser grammar (see 4.2).
The visible symptom is that the same tag, in the same project, behaves correctly when the original connection is used but loses its address the moment it is copied to a redundant connection or to a different channel unit — a classic fingerprint of the address-string defect.
5. Resolution Procedure
The corrective sequence is structured so each step is independently verifiable. Do not skip steps; later steps assume earlier steps have run cleanly.
5.1 Prerequisites
- WinCC V7.5 SP2 installed and licensed on the engineering station.
- SQL Server Management Studio (SSMS) available — the WinCC configuration database is a Microsoft SQL Server instance named
CC_<ProjectName>_<RuntimeID>. - Project file
<ProjectName>.MCPclosed in WinCC Explorer / Configuration Studio. - WinCC Service Control: stop the WinCC Runtime and WinCC CCAgent services before editing the database directly.
- Read-only backup of the live project folder (
<ProjectPath>\<ProjectName>.MCP) copied to a separate location.
5.2 Step 1 — Validate the Conversion in Editor First
- Open the project in the WinCC Configuration Studio.
- Select Tag Management → Tags.
- Sort the Format Adaptation column. Any cell showing a raw number on a red background is a defect.
- For each defective tag, open Properties and re-select the correct format adaptation from the dropdown. If the dropdown is empty, the numeric value is outside the supported code set — record the tag name and the legacy V6.0 format (e.g.,
FloatToFloat). - Save the project.
This step addresses Symptom 1. If the dropdown populates correctly, the channel DLL has already updated the numeric code at save time.
5.3 Step 2 — Correct Structure Tag Addresses
For every structure tag affected by the DBB → DD shift:
- In Configuration Studio, locate the structure tag (filter by Type =
Structure tag). - Open Properties → Address.
- Confirm the displayed address. If it is
DBB 0, change toDD 0(or the next valid DWORD boundary, if the structure originated at an odd address likeDBB 2orDBB 6). - For tags originally starting at
DBB 2, useDD 0only if the next three bytes were padding; otherwise useDD 2(which is also not DWORD-aligned — in that case the entire structure must be moved on the PLC side to a 4-byte boundary). - Compile and save.
WORD status) followed by a 4-byte REAL cannot be addressed as a single WinCC structure tag from a DWORD boundary without the data being read 2 bytes early. In that case, split the structure into two tags or use a raw area pointer with a byte offset.5.4 Step 3 — Repair Address Strings in the Configuration Database
This step repairs Symptom 3 (lost address on transfer) and Symptom 4 (silent comma/dot swap) directly in SQL.
- Start SQL Server Management Studio as a user with
db_ownerrights on the WinCC configuration database (typically theSIMATIC HMIuser or a domain admin). - Connect to
.\WinCC(the local WinCC SQL instance). - Open the project database:
USE [CC_<ProjectName>_<RuntimeID>]; - Inspect the tag address column:
SELECT Name, Address FROM dbo.MS_Tag WHERE Address LIKE '%,%';
- For every row returned, replace the legacy comma with a period and normalize the separator. Example correction pattern:
UPDATE dbo.MS_Tag
SET Address = REPLACE(REPLACE(Address, ',', '.'), 'DBB.', 'DBB ')
WHERE Address LIKE '%,%';
- For structure tags, also confirm that the
TagTypecolumn reflectsSTRUCTrather than the legacyUSTRUCTcode. If not, run:
UPDATE dbo.MS_Tag SET TagType = 11 WHERE TagType = 9 AND Name IN (<struct_tag_list>);
- Reopen the WinCC project in Configuration Studio. The address column should now show the normalized form, and drag-and-drop to another connection should preserve the address.
- Compile the project.
5.5 Step 4 — Re-Link UDT / Structure Type Definitions
If entire structure tags disappear from the tag list after V7.5 conversion (Symptom 5), the structure type definition is missing.
- Open Tag Management → Structures.
- Check whether each Structure Type referenced by a tag has a valid member list.
- If a structure is empty, import the original
.STRtype file from the V6.0 / V6.2 backup:
- Right-click Structures → Import Structure Type.
- Select the legacy
*.STRfile. - Confirm the imported structure matches the original member order, types, and offsets.
- Re-bind any tag whose
DataTypenow points to the re-imported structure.
6. Verification
After each step, perform the following checks before moving to the next.
6.1 Static Verification
- Format Adaptation column: No cells with red background, no raw numeric values in place of text labels.
-
Address column: All structure tags address on DWORD boundaries; all text addresses use the period delimiter; no
,characters anywhere in the address string. - Drag-and-drop test: Create a temporary duplicate of a tag, drag it from the production connection to a test connection, and confirm the address field follows the tag.
- Project compile: Run Project → Compile. The compiler must report zero errors and zero warnings.
6.2 Runtime Verification
- Start the WinCC Runtime in test mode (
WinCC Runtime Startwith the Test flag enabled). - Open WinCC Tag Simulator and force a known value (e.g., 1234.56) into a representative
REALtag at the PLC side (or use the S7 simulator). - Confirm the value reaches the screen.
- Open WinCC Online Tag Diagnostics (Tools → Tag Diagnostics). For the corrected tag, the quality code should be
0xC0(good) and the value should match the forced input. - Repeat for one tag from every format adaptation family used in the project:
FloatToFloat,DWORDToFloat,WordToInt,ByteToInt,BitToBit. - For each structure tag, force a value into the first member of the underlying data block in STEP 7 / TIA Portal and confirm that the first WinCC structure member reads the correct value.
6.3 Acceptance Criteria
| Metric | Acceptance Threshold |
|---|---|
| Format Adaptation defects remaining | 0 |
| Tags with empty address after transfer | 0 |
| Structure tags with byte-granular start | 0 |
| Runtime tag quality codes for test sample | 100% good (0xC0) |
| Compile warnings / errors | 0 / 0 |
| Project startup time (cold boot) | Within 110% of pre-correction baseline |
7. Preventing the Defect Class in New Migrations
When upgrading a V6.x or V7.0 / V7.2 project to V7.5 SP2, apply the following preventive measures during the migration run, not after the project is already in production.
- Convert to V7.2 first, then verify, then advance. Never combine the V6.x → V7.2 step with the V7.2 → V7.5 step. The defect surface is the boundary, and intermediate verification (format adaptation, address strings, structure types) catches defects that the next step would propagate.
- Run the project in V7.2 for at least one full production week before the V7.5 conversion. The DataManager will surface address-string issues at runtime within hours, not months.
- Export a tag list (CSV / XLSX) from the V7.2 project and use it as a reference during V7.5 commissioning. A delta-comparison of Name, Address, Format Adaptation, and DataType catches the entire defect family in one pass.
- Force the engineering station locale to English (US) before conversion. This minimizes the comma-vs-dot risk at the source.
- Document structure tag start addresses in the project functional specification. An undocumented structure tag in a 20-year-old V6.0 project is a one-week investigation after the upgrade.
- Maintain a V7.2 MCP backup as long as the V7.5 project is in production. SQL-level rollback is possible, but a clean MCP is faster and safer.
8. Field-Proven Caveats
- The Project Migration utility and the Tools → Convert Data path can produce different results on the same source project. If one path corrupts tags, the other may succeed — but only if the source MCP is in a known-good state.
- The Format Adaptation cell rendering red is a strong indicator; a cell that looks normal but is silently wrong is the more dangerous case and is only caught by the SQL inspection query in Step 3.
- Hot-fixing the live runtime database while the project is running is not supported and will, with high probability, trigger the WinCC Project inconsistent alarm the next time the project is reloaded.
- Tags created in V7.5 from scratch are not subject to the format adaptation or address-string defects described here. The defects are exclusive to migrated tags.
- The DBB → DD shift also applies to raw area tags (WinCC Area Pointer, S7-Meldungen raw pointer); these are not visible in the regular tag list and must be reviewed in Tag Management → Connections → Properties → Area Pointers.
9. Reference Material
The authoritative source for the format adaptation code set in V7.5 SP2 is the WinCC Information System entry Format adaptation sorted by WinCC data type, accessible via the Siemens Industry Online Support portal. The article on this entry is KB ID 109792585. The same article applies in substance to V7.3 and V7.4 because the underlying numeric code set is unchanged; only the editor rendering of the value differs.
For the legacy (pre-V7.2) format adaptation, refer to the WinCC V7.0 / V7.2 Information System → Communication → SIMATIC S7 Protocol Suite → Data Types and Format Adaptation section, archived in the SIMATIC HMI manual collection under the same support entry ID prefix.
10. Quick-Reference Checklist
- [ ] Back up
<Project>.MCPbefore any change. - [ ] Stop WinCC Runtime and CCAgent services before SQL edits.
- [ ] Re-select every red-background Format Adaptation cell in Configuration Studio.
- [ ] Convert all structure tag start addresses to DWORD boundaries.
- [ ] Run the
SELECT … WHERE Address LIKE '%,%'query and fix every hit. - [ ] Re-import missing structure types from the legacy
.STRfiles. - [ ] Drag-and-drop test at least five migrated tags between connections.
- [ ] Run Project → Compile; resolve all warnings.
- [ ] Run Runtime in test mode; force known values into test tags; verify quality = 0xC0.
- [ ] Export a final tag CSV and diff against the pre-migration export.
What is the safest migration path from WinCC V6.0 to V7.5 SP2?
Migrate in discrete, verified steps: V6.0 → V6.2 → V7.0 → V7.2, run the V7.2 project in production for at least one week, then convert to V7.5 and apply SP2. Avoid combining the pre-V7.2 and post-V7.2 steps in a single pass — the V7.2 → V7.5 boundary is where the format adaptation and address-string defects originate.
Why does a tag show a raw number with a red background in the Format Adaptation column?
The numeric code stored in the WinCC configuration database does not map to any text label in the V7.5 code set. This is typical for tags carried forward from V6.0 / V6.2 that used a format adaptation that has since been renamed or merged. Re-select the correct format adaptation from the dropdown in the tag Properties dialog and save the project.
Why does the address editor in V7.5 only accept DD 0 for a tag that was DBB 0 in V6.0?
WinCC V7.5 enforces DWORD (4-byte) alignment for structure tag start addresses. A byte-granular start like DBB 0 is silently normalized to the next valid boundary (DD 0) whenever the tag is saved with explicit address assignment or moved between connections. Confirm the data block layout in STEP 7 / TIA Portal before accepting the shift.
How do I find tags whose address string still uses a comma instead of a period?
With the project closed and the WinCC services stopped, query the configuration database in SQL Server Management Studio: SELECT Name, Address FROM dbo.MS_Tag WHERE Address LIKE '%,%';. Replace commas with periods using UPDATE dbo.MS_Tag SET Address = REPLACE(Address, ',', '.') WHERE Address LIKE '%,%';, reopen the project, and recompile.
Is direct SQL editing of the WinCC configuration database supported by Siemens?
No. Siemens documentation treats the configuration database as an internal structure. Direct SQL editing is a field-proven recovery technique for the specific address-string defect described here, but it must be performed on a closed project, with the runtime services stopped, on a backed-up copy, and with every change recorded for downstream support. Always prefer the Configuration Studio property dialog when it is available.
How can I prevent the address loss when dragging a tag to another connection?
The defect is a legacy comma-style address string. After normalizing the address string in the database (Step 3 in the resolution procedure) and recompiling, the drag-and-drop operation preserves the address. As a preventive measure, force the engineering station locale to English (US) before the next migration so that newly created tags never carry the legacy comma delimiter.