Siemens KTP600 Basic Panel Dynamic Text Lists: Workarounds

David Krause12 min read
HMI / SCADASiemensTechnical Reference
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

Overview

Engineers migrating projects from older Siemens text panels (OP77B, TP177A) to the KTP600 Basic Panel family frequently discover that the Insert tag field function is disabled inside the Text list editor of WinCC Flexible 2008 (and the SP3/SP4/HF updates). The behavior is not a software bug or a corrupted installation; it is a deliberate runtime limitation of the 1st- and 2nd-generation Basic Panels, which are based on a Linux CE firmware image and ship with a deliberately reduced scripting and dynamization surface compared with OP77B/TP177A Comfort-class devices.

The same restriction also blocks:

  • Tag fields in Button labels
  • Tag fields in Text I/O fields
  • Cascading text lists that depend on a second tag
  • Multilingual text dynamization through a STRING tag

This reference documents the exact cause, enumerates the affected catalog numbers, and provides three field-proven workarounds that operate entirely inside the WinCC Flexible 2008 SP4 toolchain, plus a controlled migration path to KP400 Comfort and to WinCC Unified V20 panels where dynamic text lists become first-class objects again.

Engineering note: The "tag field" element in a WinCC Flexible text list is the <tag Tag_Name> token that you insert from the right-mouse menu of the list entry. If the menu item is greyed out, the runtime image of the target panel cannot resolve the token. Do not attempt to force it by editing the .hmi XML directly — the panel rejects the download.

Affected Hardware and Software Matrix

Panel family Catalog prefix OS / firmware Tag in text list? Notes
OP77A 6AV6 641-0BA01-0AX0 ProTool / WinCC Flexible No Linux CE 5, no STRING list support
OP77B 6AV6 641-0CA01-0AX0 WinCC Flexible 2008 Yes Tag field inside text list works; confirmed in source thread
TP177A 6AV6 642-0AA01-0AX0 Linux CE 5 No Same reduced API as Basic Panels
TP177B 4" 6AV6 642-0BD01-0AX1 WinCC Flexible / TIA Yes Comfort-class successor for TP177A
KTP400 Basic mono 6AV2 123-2DB03-0AX0 Linux, Basic image No 2nd generation
KTP400 Basic color 6AV2 123-2DC03-0AX0 Linux, Basic image No PN and DP variants
KTP600 Basic mono 6AV6 647-0AB11-3AX0 Linux, Basic image No 6" mono, 1st generation
KTP600 Basic color 6AV6 647-0AD11-3AX0 Linux, Basic image No 6" color PN/DP
KTP1000 Basic color 6AV6 647-0AF11-3AX0 Linux, Basic image No 10" color
KTP1200 Basic color 6AV2 123-1MB02-0AX0 Linux, Basic image No 2nd gen, 12" wide
KP400 Comfort 6AV2 124-1DC01-0AX0 WinCC Comfort / TIA Yes Designated successor for OP77B
TP700 Comfort 6AV2 124-1GC01-0AX0 WinCC Comfort / TIA Yes 7" widescreen, full text dynamization
MTP700 Unified 6AV2 128-3KB06-0AX0 WinCC Unified V18+ Yes First-class dynamic text list in V20

The catalog numbers above are taken from the Siemens SIMATIC HMI product selectors and apply to the 2008 – 2020 generation. Newer Comfort and Unified panels add a -0BX or -0CX suffix; refer to the current Siemens Industry Mall catalog for the latest ordering data.

Why Tag Fields Fail in Basic Panel Text Lists

When a WinCC Flexible project is compiled for a KTP600 Basic target, the engineering tool strips every <tag Tag_Name> token from the text list and replaces it with a static placeholder. The runtime image on the panel does not contain the STRING list resolver that OP77B and TP177A ship with. Three architectural facts drive this behavior:

  1. Reduced tag surface — the Basic image exports a smaller, fixed tag interface. Only tags of type INT, BOOL, and a single STRING (where supported) are accessible to the screen. STRING arrays required for cascading text lists are not allocated.
  2. No dynamic text property — the screen-object property Text on a Text I/O field is bound to a single tag of BOOL, INT, or REAL. A secondary STRING tag used as a format string is rejected at compile time when the target is a KTP Basic.
  3. No scripted list lookup — the Basic runtime lacks the VBScript and C-script engine that the Comfort panels use to translate an integer index into a list entry. Even when the engineering tool allows the script in offline mode, the download is refused with error 0x8004A001 / "Function not supported by target device".
Compile error reference: Switching the project device from a Comfort-class panel to a KTP600 Basic panel produces the warning "Too many tag fields" in the text list — this is the WinCC Flexible compiler signalling that the runtime cannot resolve more than zero dynamic fields. Treat it as a hard error, not a warning.

Compiler Flow When the Target Is a KTP600

WinCC Flexible Project Target = KTP600 Basic Strip <tag> tokens Warning: Too many tag fields Static list downloaded Apply workarounds below

Workaround 1 — Symbolic I/O Field Substitution

The simplest and most maintainable substitute is to replace the dynamic text list with a Symbolic I/O field. The Symbolic I/O field is the only object on a KTP Basic that can display tag-driven text without script support, because it stores both the index range and the entry table as part of the configuration rather than the runtime.

Step-by-step

  1. Open the screen in WinCC Flexible 2008 SP4 and delete the offending text list reference.
  2. Drag a Symbolic I/O field from the toolbox (group Enhanced objects) onto the canvas.
  3. In the configuration dialog, set Process tag to the INT tag that drives the index (for example, DB1.DBW0).
  4. Switch the Representation to Decimal and the Mode to Output (read-only) or Input/Output if the operator must change the value.
  5. Open the Text list sub-dialog and add one row per enum value. Each row accepts a static string — this is what the runtime will render.
  6. For multi-language deployments, add a translation column per installed language. The Basic image ships the languages you select in Project > Language & Font.
  7. Compile and download. The field now shows the string bound to the current integer value of the tag, with no tag-field token in sight.
Limitation: the Symbolic I/O field can only reference one integer tag. If you need a second tag to switch the list (cascading), fall back to Workaround 2 or Workaround 3.

Workaround 2 — Cascading Symbolic I/O Fields

When the text must depend on two tags (a category and a value), build the cascade entirely from three or more Symbolic I/O fields and a PLC-side multiplexer. The pattern below is a 2-level cascade with 3 categories and 4 values each.

PLC side (STEP 7 V5.5 / TIA Portal V18 example)

// FB "HMI_TextCascade"
// Inputs:  iCategory : INT;  // 0..2
//          iValue    : INT;  // 0..3
// Output:  sResult   : STRING[32];

IF iCategory = 0 THEN
   CASE iValue OF
      0: sResult := 'Pump 1 - Stopped';
      1: sResult := 'Pump 1 - Running';
      2: sResult := 'Pump 1 - Fault';
      3: sResult := 'Pump 1 - Manual';
   END_CASE;
ELSIF iCategory = 1 THEN
   CASE iValue OF
      0: sResult := 'Valve 2 - Closed';
      1: sResult := 'Valve 2 - Open';
      2: sResult := 'Valve 2 - Mid';
      3: sResult := 'Valve 2 - Fault';
   END_CASE;
ELSE
   sResult := '';
END_IF;

Define sResult in a global DB and expose only the symbolic I/O fields for iCategory and iValue on the HMI. Add a third Symbolic I/O field that is configured as a Text I/O field bound to the STRING tag sResult with display length 32. Although the STRING tag cannot be inserted into a text list, the panel can display a STRING tag directly in a Text I/O field — this is the single exception the Basic image allows.

Update rate and tag count

Item Acquisition cycle Limit on KTP600
Integer tag (Symbolic I/O) 1 s typical, 100 ms minimum Up to 128 per project
STRING tag (Text I/O) 2 s typical, 500 ms minimum 1 × up to 256 characters per panel
PLC → HMI STRING update Driven by the panel's Update pointer 1 STRING recommended to keep cycle low

Workaround 3 — Bit-Triggered Text Animation

For status text that only changes between a small number of fixed strings (e.g., Auto / Manual / Off / Fault), animate the Visibility of four static text fields, each controlled by a discrete BOOL tag. The PLC maintains the exclusive state — the panel only renders.

Tag StatusWord (INT) PLC extracts bits b0..b3 BOOL tags → 4 text fields Auto (b0) | Manual (b1) | Off (b2) | Fault (b3)

Steps:

  1. Add four static text fields, one per state, on top of each other in the screen.
  2. For each field, open Properties > Appearance > Visibility and bind it to a BOOL tag with the Animation table.
  3. Use the PLC side to maintain mutual exclusion: bManual := bAuto XOR bManualRequested, etc.
Advantage: this pattern survives even the cheapest 1st-generation KTP400 Basic mono. It is also the only pattern that works without enlarging the tag count beyond the Basic panel's 128-tag ceiling.

Migration Path — From OP77B to KP400 Comfort

If the application truly needs tag-driven text lists and cannot be re-shaped with the workarounds above, migrate to a Comfort-class panel. Siemens designates the KP400 Comfort (6AV2 124-1DC01-0AX0) as the direct successor for the OP77B and for the smaller KTP Basic units. The Comfort image supports the full set of dynamization features:

  • Tag fields in text lists
  • Cascading text lists (two-level)
  • Multilingual text list via project languages
  • String tags in I/O fields and in text lists
  • VBScript at panel level for index → string translation

Conversion procedure

  1. In TIA Portal V18 (or later), open the WinCC Flexible 2008 project and choose Project > Migrate to TIA Portal. Select the Comfort target.
  2. Map all existing tags. The migration wizard moves DB tags, PLC tags, and area pointers automatically.
  3. Re-open each text list that previously contained a tag field. The tag token is preserved during migration — re-compile to confirm.
  4. Re-create any I/O field that referenced a STRING tag. The Comfort image supports STRING tags up to 256 characters.
  5. Download to the KP400 Comfort and verify with the checklist in the next section.

Migration Path — From WinCC Flexible to WinCC Unified V20

For new installations, the recommended target is a WinCC Unified panel (for example MTP700 Unified 6AV2 128-3KB06-0AX0) programmed with TIA Portal V20. WinCC Unified re-introduces dynamic text lists as a first-class object, with the configuration documented in the official Siemens documentation portal.

In WinCC Unified V20, a text list can be dynamized directly from a HMI tag: open the screen object, navigate to the Properties > Text group, select the Text list property, and pick the list you created. The list is bound to a tag and the runtime resolves the entry on every cycle. The official procedure is documented at Dynamizing texts in a text list (RT Unified) - WinCC Unified V20.

Migration caveat

A WinCC Flexible project can be migrated into a Unified project, but the migration tool is unidirectional. Once migrated into the Unified project tree, the source WinCC Flexible project is no longer linked. Always keep an archived copy of the WinCC Flexible project on a separate volume.

Side-by-Side Capability Comparison

Capability KTP600 Basic OP77B KP400 Comfort MTP700 Unified
Tag field in text list No Yes Yes Yes
Cascading text list (2 levels) No Limited Yes Yes
Symbolic I/O field Yes Yes Yes Yes
STRING tag in Text I/O Yes (1 tag) Yes Yes Yes
VBScript on panel No Limited Yes Yes (V20)
Multilingual text list Static only Static only Yes Yes
WinCC Flexible project support Yes Yes Yes (migrate) Yes (migrate)
Web-style HTML control No No Limited Yes

Alternative Vendor: AutomationDirect C-more Micro

If a Siemens Comfort or Unified panel is not in scope and the project can be re-platformed, the AutomationDirect C-more Micro HMI family offers a Dynamic Text object that displays text located at a string on a PLC, triggered by a discrete event. The object is documented and demonstrated on the AutomationDirect product page at C-more Micro HMI Dynamic Text. The C-more Micro is a 3" to 10" touch panel range with a per-tag cost point comparable to the KTP Basic family and can replace the KTP600 in retrofit projects where the customer is not locked into the Siemens ecosystem.

Verification Checklist

  1. Compile the WinCC Flexible project for the KTP600 target — confirm no "Too many tag fields" warnings remain in the Messages window.
  2. Download the project. The panel should reboot and display the start screen within 30 s.
  3. Toggle the integer tag from the PLC and confirm the Symbolic I/O field updates within one acquisition cycle.
  4. For STRING tags, open Diagnostics > Tag on the panel and confirm the STRING is read with the correct length.
  5. If migrating to Comfort, repeat steps 1 – 4 against the KP400 and confirm the original tag-field token in the text list now renders correctly.
  6. If migrating to Unified V20, use the HMI Simulation table in TIA Portal to step through the integer values and confirm the text list entry matches the expected string.

Edge Cases and Field-Proven Caveats

  • Multilingual projects on KTP Basic: only languages installed in Project > Language & Font are downloaded to the panel. Adding a fifth language silently fails; verify the count after download in Panel > Information.
  • Acquisition cycle: setting the cycle to 100 ms on more than eight tags overloads the panel's internal OPC queue and triggers delayed updates. Use 1 s as the engineering default.
  • STRING tag length: a STRING longer than 32 characters on a 1st-gen KTP Basic is truncated to 32 characters in the Text I/O field without warning. The 2nd-generation panels support up to 256 characters.
  • Symbolic I/O field + button combination: when the Symbolic I/O field is also used as a write field, an operator click writes back to the PLC. Disable Mode = Input/Output if you only want display.
  • Tag count ceiling: the KTP600 Basic allows up to 128 tags per project. If the cascade requires more, use area pointers or compress the BOOL states into a single INT and decode on the panel side with Visibility animation.

Frequently Asked Questions

Why is the "Insert tag field" item greyed out in my KTP600 text list?

Because the KTP600 Basic runtime (Linux CE image) does not export the STRING list resolver that OP77B and TP177B panels ship with. The WinCC Flexible compiler strips the token at build time and emits the "Too many tag fields" warning. Use a Symbolic I/O field, a STRING-based Text I/O field, or migrate to a Comfort-class panel to recover the feature.

Can I edit the .hmi XML to force a tag field onto the KTP600?

No. The Basic panel refuses the download with a runtime error when an unsupported dynamic field is detected, even if the engineering tool accepts the change. Always stay within the editor's validation rules.

Which Comfort panel is the official successor for the KTP600 Basic?

Siemens positions the KP400 Comfort (6AV2 124-1DC01-0AX0) as the smallest Comfort-class successor. The TP700 Comfort (6AV2 124-1GC01-0AX0) is the direct 7" widescreen replacement for the KTP1000/1200 Basic. Both accept migrated WinCC Flexible projects through TIA Portal V18 and later.

Does WinCC Unified V20 restore dynamic text lists?

Yes. WinCC Unified re-implements text lists as a first-class object and supports tag-driven dynamization in the Properties > Text group of every screen object. The official procedure is documented at Siemens TIA Portal V20 documentation.

Is there a third-party panel that supports dynamic text without a Comfort-class budget?

The AutomationDirect C-more Micro HMI family offers a Dynamic Text object that displays a string from the PLC when a trigger value is active, as shown on the C-more Micro HMI Dynamic Text product page. The C-more Micro is a viable swap-in for non-Siemens retrofits.

Back to blog