KTP400 HMI Displays 0 Instead of S7-1200 PLC Tag Value

David Krause18 min read
HMI / SCADASiemensTroubleshooting
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 Summary

On SIMATIC KTP400 Basic panels networked to a SIMATIC S7-1200 controller, individual I/O fields occasionally render the literal value 0 for integer or real tags whose true PLC value is non-zero. The discrepancy is not a communication dropout: the controlled machine keeps running, the HMI never shows the Siemens #### placeholder, and the S7-1200 program executes normally. The HMI is rendering its own locally stored buffer value, not the polled PLC value.

Field experience shows the fault is repeatable, intermittent, and tied to a small subset of tags (commonly 1 to 5) on the same panel, not the entire HMI tag list. The dominant root cause is that the affected I/O field objects are configured as Input mode in the WinCC screen editor rather than Input/Output or Output mode. A secondary, less common cause is that the tag is part of a recipe data record whose default value is 0, which then masks the live PLC value on the HMI surface until the recipe is written to the controller.

Affected Hardware, Firmware, and Software

Component Catalog Number (examples) Firmware / Image Role in the Fault
KTP400 Basic Mono PN (4 inch, monochrome, touch) 6AV2 123-2DB03-0AX0 WinCC Basic image V14.0.0.0 or later Affected (mode = Input on screen object)
KTP400 Basic Color PN (4 inch, color, touch) 6AV2 123-2DC03-0AX0 WinCC Basic image V14.0.0.0 or later Affected (mode = Input on screen object)
S7-1200 CPU 1211C / 1212C / 1214C / 1215C / 1217C 6ES7 21x-1xxxxx Firmware V4.2 / V4.4 / V4.5 / V4.6 Unaffected (program executes normally)
TIA Portal (WinCC Comfort / Basic / Advanced) 6AV2 101-0AA00-0AA7 (or current) V15.1 / V16 / V17 / V18 / V19 Unaffected (configuration tool only)

The fault class is independent of the CPU firmware. It is a WinCC screen object configuration error, not a controller or panel firmware bug. Panels built from WinCC Comfort or Advanced behave identically to WinCC Basic panels in this respect; only the editor navigation path differs slightly.

Root Cause: I/O Field Mode Property

Every numeric I/O field in a WinCC screen exposes a Mode property under Properties > General. The drop-down contains three values: Input, Output, and Input/Output. The semantics differ in a way that is easy to miss when copying a screen template from an existing project.

Mode Field value source Touch input accepted Typical use
Input Locally typed value or initial value on the panel Yes Enter a setpoint that the operator will write to the PLC on touch
Output Live polled PLC value No (read-only) Pure display of a status, counter, or measured value
Input/Output Live polled PLC value, but accepts operator input Yes Show current value AND allow operator to overwrite it

An I/O field set to Input never acquires the live PLC value. The field shows whatever value is currently held in the local HMI tag buffer, which on a cold start is the configured initial value (frequently 0 for a numeric field) and after that, whatever the operator last typed into the field. Because the buffer is updated by the panel's own acquisition cycle only when the panel detects a write to the field, the display can remain at 0 indefinitely while the PLC tag holds a real, live value such as 5.35 on a real axis or 1250 on a turntable index counter.

Engineer field note: The #### placeholder that WinCC normally shows when the panel cannot reach the PLC tag (connection down, address out of range, area pointer missing) is not raised for a mode mismatch, because the panel has no reason to query the PLC for a field declared as Input. The result looks like a tag-binding failure but is in fact a configuration defect on the HMI side.

HMI-to-PLC Tag Polling Path

For a polled display, the panel must (1) own an HMI tag bound to a process tag, (2) have a valid PROFINET connection to the S7-1200, and (3) acquire the value on the configured acquisition cycle. The default acquisition cycle on a KTP400 Basic panel is 1 s, with On demand as a fall-back. Tags that drive a screen display are usually configured Cyclic continuous; tags that are only used for recipes or bit-triggered logic are sometimes Cyclic in operation and may be disabled on the screen refresh path.

The connection from the HMI tag to the PLC tag is built in TIA Portal under Devices & Networks > Connections > HMI connection. Once compiled and downloaded, the panel resolves tag names to absolute addresses on the controller (for example, DB1.DBD4 for a REAL in Data block 1, offset 4). The PROFINET relationship is documented in the SIMATIC S7-1200 manual collection, which outlines the supported topology, the area pointer for date/time and coordination, and the maximum number of HMI connections per S7-1200 CPU.

SIMATIC S7-1200 manual collection: HMI-to-PLC communication

When the connection, tag binding, and acquisition cycle are all correct, the HMI display follows the PLC value within one acquisition cycle (typically under 1 s on a 4 inch Basic panel). If the display does not follow, the issue is almost always on the HMI side (mode = Input, recipe overlay, or wrong tag binding), not on the PLC side.

I/O Field Display Properties Beyond Mode

Once the Mode property is corrected, several other Properties > General entries influence the rendered value and are worth auditing on every I/O field that has been migrated from a template.

Property Effect on display Field note
Format pattern Decimal places, leading zeros, sign, units 999.99 rounds a REAL of 5.346 to 5.35, which is correct for axis position; 999 truncates to 5, which is the more common source of "0 where 5 should be" complaints
Display of leading zeros Forces leading zeros (e.g., 007) Disable unless the operator expects a fixed width
Limit value high / Limit value low Clamps the displayed value to the configured range Values outside the range render as ####; confirm the limit matches the PLC range
Hidden input / Hidden output Suppresses the field visually Sometimes set by template cleanup; verify the field is visible at runtime
Authorization Requires a user class to edit the field Mode = Input/Output with a high authorization silently rejects the operator write, so the field keeps its initial value of 0
Tooltip / Text list On-hover text or list of selectable values Does not affect the numeric value, but can mask the actual displayed text

The combination of Mode = Input and a Format pattern of 999 (zero decimal places) is the most common combination that produces the symptom described. The field renders the locally stored 0 with no decimal places, and the operator cannot tell whether the PLC value is 0, 5.35, or 1250.

Data Type Compatibility Between HMI and PLC

Data type mismatches between the HMI tag and the PLC tag can produce display errors that look like the Mode = Input issue. The HMI tag type must be compatible with the PLC tag type, and the HMI tag's Length property must be set in bytes.

PLC tag type Compatible HMI tag type Length (bytes) Symptom of mismatch
BOOL Bool 1 Stuck 0 or 1 regardless of state
INT Int (16-bit) 2 Truncated to lower 16 bits; values above 32767 wrap
DINT DInt (32-bit) 4 Wrong sign for values above 2^31
REAL / LREAL Real (32-bit IEEE 754) 4 Display of 0.0 when the HMI tag is configured Int
WORD / DWORD Word / DWord 2 / 4 Display of 0 when the HMI tag is Int and the value is above the signed range
STRING String (with length) n+2 Empty display when the HMI tag length is too short

When the HMI tag is declared as Int (16-bit) and the PLC tag is a DInt or REAL, the HMI reads the lower 16 bits of the PLC value. For most integer counters that wrap near 65535, this looks like 0 from the operator's perspective and is a frequent companion defect to the mode = Input issue. Confirm the data type by cross-checking the HMI tag definition against the PLC tag declaration in the project's data blocks.

Recipe Overlays and Initial Values

The second most common source of a stuck 0 on the KTP400 is a recipe data record. If the affected tag is part of a recipe, the panel may render the recipe value on the screen rather than the live PLC value, depending on how the I/O field is configured. Recipes in WinCC Basic panels are limited (500 data records, 1000 entries per data record, 8000 elements total for the panel family), so the surface area for a defect is small, but the symptom is identical to a mode = Input issue.

Symptoms that point at a recipe overlay rather than a mode = Input issue:

  • The display returns to 0 after a recipe load, then stays at the recipe value until the operator triggers a "Save to PLC" or "Write to PLC" action.
  • The same tag is part of a recipe data record; verify in the project tree under the HMI > Recipes.
  • The recipe entry's default value is 0; the panel initialises the displayed value with that default at first load.

Remedies include removing the tag from the recipe, changing the recipe entry's default value, or moving the display to a different tag that is not part of any recipe. The cleanest architecture is to bind recipes to a separate set of HMI tags and have the PLC program copy the recipe value into the live tags on recipe load. This removes the recipe overlay from the display layer entirely.

Other Mimic Failures to Rule Out

Before treating the issue as a mode property defect, rule out the following look-alikes that can also produce a frozen 0.

Symptom Likely cause Where to check
All tags on the panel show 0, panel status = "Connection failed" PROFINET connection down, IP conflict, or HMI connection deleted in TIA Portal Control Panel on the panel: Diagnostics > Connection; PLC: Online & Diagnostics > PROFINET devices
Single tag shows 0, others update Mode = Input, recipe overlay, or wrong tag bound Screen editor: I/O field Properties > General > Mode; project tree: HMI Tags > Connection
Tag shows 0 only briefly at power-up, then updates Initial value of the HMI tag, normal behaviour HMI tag Properties > Values; acceptable if the value is overwritten by the first poll
Tag shows 0, PLC tag is 0 in the watch table PLC program not writing the tag, or wrong tag in the watch table S7-1200 watch table; cross-check the program code
Tag value flickers between 0 and the correct value Acquisition cycle too long, or PLC tag toggling faster than the panel can render HMI tag Properties > Acquisition cycle (set to "Cyclic continuous" with 1 s or 500 ms)
Tag value truncated to 0 because of a data type mismatch HMI tag is INT but PLC tag is REAL, or vice versa HMI tag Properties > Data type; PLC tag Properties > Data type
Tag value shows 0 only on the HMI, but correct in the PLC Simulated PLC project open in TIA Portal (PLCSIM), and the HMI is bound to the simulated address that is held at 0 TIA Portal: Online > "Start simulation" indicator; PLC: Online & Diagnostics
Tag value is 0 only after a project download, then recovers Panel initial value rendered before first poll cycle Reduce the acquisition cycle to 500 ms or 250 ms; verify after first 2 s of operation

The single-tag, machine-still-running pattern is the hallmark of the mode = Input or recipe-overlay issue. The all-tag, machine-still-running pattern is rare and points to a network or HMI-image defect rather than a screen object configuration.

Pre-Diagnosis Checklist

Before opening TIA Portal, gather the following from the running system. They reduce the diagnostic time and isolate the fault to a single screen, a single tag, or a single project.

  1. Confirm the panel model (KTP400 Basic Mono PN or Color PN) and image version. Read the image version from the panel's Control Panel > System > Information. Alternatively, in TIA Portal right-click the HMI device > Online > HMI diagnostics.
  2. Confirm the controller model and firmware. Read from TIA Portal > Online > Accessible nodes, or from the CPU's display (if present) > PLC > Information.
  3. List the tags that show 0. If the count is small (1 to 5), the cause is almost certainly local to those screen objects. If the count is large or all tags, the cause is connection-level.
  4. Confirm that the machine controlled by the tag is still working. If yes, the PLC value is correct and the issue is the HMI rendering layer.
  5. Open a watch table on the S7-1200 containing the affected tags. Verify the live value in the controller. This separates the controller from the HMI in one click.

Diagnostic Procedure (Step-by-Step)

Use the following sequence to confirm the root cause before applying a fix.

  1. In TIA Portal, open the project and expand HMI_1 > Screens.
  2. Double-click the screen that contains the affected I/O field. The screen opens in the WinCC editor.
  3. Click the affected I/O field. Open Properties > General > Mode. Note the current value. If it is Input, the field is the source of the defect; proceed to the correction procedure.
  4. Click Properties > General > Tag (or Process value). Confirm the HMI tag name. Cross-check the HMI tag in the project tree under HMI Tags.
  5. Open the HMI tag. Under Properties > Connection, confirm the connection name and the PLC. Under Properties > Settings, confirm the acquisition cycle is Cyclic continuous with a value of 1 s or 500 ms. Under Properties > Range, confirm the data type matches the PLC tag (e.g., INT, DINT, REAL).
  6. In the project tree, expand HMI_1 > Recipes. If the tag is part of a recipe data record, note the data record number and the default value. The display may be rendering the recipe value, not the PLC value.
  7. Right-click the HMI > Compile > Software (rebuild). Watch the compile output for any tag-binding errors or warnings on the affected tag.
  8. Download the rebuilt project to the panel. Power-cycle the panel if required by the project settings.
  9. On the panel, navigate to the affected screen and watch the value. It should now follow the PLC value within one acquisition cycle.

If the display still shows 0 after the fix, repeat steps 1 to 4 and confirm that the corrected mode (Output or Input/Output) is in the compiled and downloaded image. TIA Portal occasionally retains a cached image on the panel; a manual transfer via the panel's Service menu is sometimes required.

Correction Procedure (Step-by-Step)

  1. Open the affected screen in the WinCC editor of TIA Portal.
  2. Click the affected I/O field.
  3. Open Properties > General > Mode. Change Input to either Output (read-only display) or Input/Output (display + accept operator input).
  4. If the field is purely for display, choose Output. This is the safer choice when no operator write is required, because it removes the risk of an operator accidentally overwriting a status value.
  5. If the field is a setpoint that the operator must be able to change, choose Input/Output. Confirm the operator write is intentional and that the PLC code reads the value on the next cycle (Basic panels write the value via the area pointer on PLC request or on touch event, depending on the configuration).
  6. Save the project.
  7. Compile the HMI station. Resolve any compile warnings about the tag or the screen.
  8. Download the project to the panel. Use Online > Download to device > Software (all). The panel will restart if the image changes.
  9. Power up the machine. Navigate to the screen and verify that the value follows the PLC.
Field-proven tip: When an existing project contains many I/O fields that may have been copied from a screen template, run a project-wide search for fields with Mode = Input and confirm each one is intentionally so. In TIA Portal, the easiest path is to open the cross-reference for each tag and audit the screen references manually.

Verification and Functional Test

After downloading the corrected project, perform the following functional test. It isolates the HMI rendering layer from the controller logic.

  1. Force the PLC tag in the watch table to a known non-zero value, for example 100. Confirm the value updates in the watch table.
  2. Navigate to the affected screen on the panel. Confirm the I/O field now shows 100. If it does, the polling path is intact.
  3. Force the PLC tag to 0 in the watch table. Confirm the I/O field on the panel updates to 0 within the acquisition cycle (typically 1 s).
  4. Force the PLC tag to a negative value and a large value, for example -1 and 65535. Confirm the panel displays the values within the configured range and format.
  5. Cycle power on the panel. Confirm the initial value rendered at boot is either the configured initial value of the HMI tag or, if the connection is up, the polled PLC value within the first acquisition cycle.
  6. Save the project, then close and reopen TIA Portal. Confirm the corrected mode is retained and not overwritten by a template.

If any of the above checks fail, return to the diagnostic procedure. The most common reason for a test to fail after a mode correction is that the wrong HMI tag was bound to the field, the recipe is still overriding the display, or the panel is running a cached image that did not refresh after the download.

Commissioning Best Practices

  • Adopt a single convention per project: I/O fields that display a live PLC value must always be Output or Input/Output. Reserve Input for setpoints that are intentionally operator-entered and that the operator expects to overwrite on touch.
  • Document the I/O field mode in the screen template comment. TIA Portal does not surface the mode value in the runtime; the only place to verify is the engineering station.
  • Add a sanity test to the SAT (Site Acceptance Test) that forces each integer tag to a non-zero value and confirms the panel displays it. This catches the mode = Input defect during commissioning, not during production.
  • Audit the HMI tag acquisition cycle. Basic panels default to 1 s. For high-speed machine status (rotational speed, position, torque), reduce the cycle to 500 ms or use the event-driven "On change" acquisition, depending on the panel image version.
  • Keep the HMI tag initial value set to a sentinel (e.g., 0 for numeric, empty string for text) so the panel does not display a stale value at boot. Verify that the first poll cycle overwrites the initial value within the time required for the operator to read the screen.
  • For recipes, separate recipe tags from display tags. Bind the recipe to a different set of HMI tags than the display, and have the PLC program copy the recipe value to the live tags on recipe load. This removes the recipe overlay from the display layer.
  • Keep a backup of the compiled HMI image on the engineering station. If a panel is field-replaced, the engineering station is the source of truth for the mode property.
  • When migrating from WinCC flexible to TIA Portal, audit every I/O field for the Mode property; WinCC flexible defaulted to "Output" for display fields, but a careless copy-paste during migration can flip the property to "Input" without warning.
  • For projects with multiple HMI screens and several engineers contributing, enable version control (e.g., TIA Portal multi-user engineering) so a change to the I/O field mode is visible in the change log.

Frequently Asked Questions

Why does the KTP400 show 0 even though the S7-1200 has the correct value?

Because the affected I/O field is configured as Input mode in the WinCC screen editor. In Input mode, the panel renders the locally stored buffer value, not the polled PLC value. The buffer is initialised to 0 on first load and is only updated when the operator types into the field. Change the Mode property to Output (read-only) or Input/Output (read + accept operator input) and re-download the project.

Why does the panel not show #### when the value is wrong?

The #### placeholder is raised by the panel only when the polling path fails (connection down, address out of range, area pointer missing). A mode = Input field does not poll the PLC, so the polling path is never exercised and #### is never rendered. The 0 is the panel's own initial value, not a communication error.

Could a recipe be the cause of a stuck 0 on the panel?

Yes. If the affected tag is part of a recipe data record, the panel may render the recipe value rather than the live PLC value. The recipe's default value is often 0. Check HMI_1 > Recipes in the TIA Portal project tree. If the tag is part of a recipe and you do not want the display to follow the recipe, bind the display to a different tag or change the recipe entry's default value.

How do I tell a mode = Input defect from a tag-binding defect?

Open the watch table on the S7-1200 and force the affected tag to a known value. If the watch table updates and the panel does not, the panel is the source of the defect. Then check the I/O field Mode property. If Mode is Input, that is the cause. If Mode is Output or Input/Output, check the HMI tag's Connection and Address properties under the project tree.

Does this affect KTP700, KTP900, KTP1200, or Comfort Panels in the same way?

Yes. The I/O field Mode property is shared across the entire WinCC Comfort / Advanced / Basic line. A mode = Input field on a Comfort Panel behaves identically to one on a Basic panel: it does not poll the PLC and shows its own buffer. The fix is the same on every panel that uses WinCC as the screen editor.

Back to blog