Resolving S7-1200 Forced DI Tag Not Showing TRUE in HMI

David Krause15 min read
S7-1200SiemensTroubleshooting
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

A digital input tag on a SIMATIC S7-1200 CPU is forced to TRUE from the TIA Portal watch/force table. The PLC online view confirms tag1 = TRUE, the input LED on the module reflects the forced value, and the program logic executes against the forced state. Despite this, the connected WinCC (Comfort Panel or WinCC Runtime Advanced) HMI tag continues to display False. No change has been made to the PLC program, the HMI screen, or the field wiring between the original fault observation and the rebuild.

This symptom class is well documented in TIA Portal V12 SP3 and is reproducible across S7-1200 firmware V4.x with Comfort Panel and WinCC RT Advanced targets. The defect is not in the input module, not in the program logic, and not in the field wiring - it is a known HMI tag caching / synchronization bug in the TIA Portal V12 engineering stack. The canonical field-proven fix is a complete project rebuild with freshly generated PLC and HMI tags. This article documents the symptom, the diagnostic gating steps, and the rebuild procedure.

Field note: Tag-mismatch faults of this class are routinely misdiagnosed as a defective digital input module, a corrupt project, a PROFINET cable fault, or a programming error. Before swapping the SM 1221 or rewiring the cabinet, validate the HMI tag quality and the HMI connection online status. The whole investigation typically takes < 10 minutes once the proper gating is followed.

Environment and Affected Versions

Component Configuration Notes
PLC SIMATIC S7-1200, any CPU 1211C / 1212C / 1214C / 1215C / 1217C Force supported from firmware V4.0 onward on central and PROFINET-distributed DI
Engineering TIA Portal V12 SP3 (V12.3), single project for PLC + HMI Defect is engineering-tool bound; same project migrated to V13 SP1+ typically does not reproduce
HMI Comfort Panel TP / KTP series, or WinCC Runtime Advanced on a PC Symptom present regardless of HMI hardware class
Connection S7-1200 PN interface - HMI on same PROFINET subnet, no routing across router boundaries Single HMI connection object in the project
PLC firmware V4.0 - V4.2 Force registers and force table operate as documented in the S7-1200 system manual

Reference: Siemens Industry Online Support - main entry portal for SIMATIC S7-1200 and TIA Portal manuals.

Root Cause Analysis

The force value of a DI tag on the S7-1200 is stored in the CPU's force table RAM area and is overlaid on the process image at the start of every OB1 cycle as long as the force is active. The PLC program and any online / watch-table viewer reads the forced value without ambiguity. The HMI, however, does not subscribe to the force area directly. The HMI requests the value through the configured HMI connection using the S7 communication protocol, and TIA Portal translates the PLC tag symbol into an absolute address + DB/PI access path that is published to the HMI tag table.

The V12.3 defect is in the engineering-side translation that occurs when the HMI tag is first generated and incremental-compiled. The HMI tag table caches the last compiled address and quality descriptor for the tag, and the RT runtime on the panel does not always pick up the post-force override if the HMI tag was generated against a stale tag snapshot. The result is that the PLC correctly reports TRUE while the HMI resolves the address through a cached descriptor that returns the unforced process-image value.

As reported by the integrator working the case: the tag was verified TRUE on the PLC side, FALSE on the HMI side, all tags were deleted and recreated from scratch in TIA Portal, and the issue was conclusively traced to a TIA Portal V12.3 bug. The full project rebuild resolved the discrepancy. No firmware change, no program change, and no wiring change was required.

Three contributing factors accelerate the symptom:

  1. Incremental compile of the HMI after a PLC-side tag rename or split into multiple data blocks.
  2. HMI tags generated against a symbolic access path that is later refactored (the access path in the cache is no longer the active one).
  3. Mixed PLC/HMI engineering within a single project where the cross-reference resolver does not refresh HMI tag descriptors after a force is enabled.

Diagnostic Procedure

Perform the following checks in order. Each step is gating - do not skip; misdiagnosis is the most common cause of extended downtime on this class of fault.

  1. Confirm the physical input wiring. With the force active, remove the field signal and verify the input LED on the SM 1221 matches the forced value. If the LED tracks the PLC online state but the field signal is not what is expected, the wiring is suspect - not the engineering.
  2. Confirm the force in the CPU. Open Watch and Force tables on the PLC online. Verify the Force column reads F (forced) and the value column reads the expected TRUE. If the watch view shows the unforced value, the force did not commit - check write-protection on the CPU and force authorization (see SIMATIC S7-1200 Programmable Controller System Manual, section on force).
  3. Confirm the HMI tag address. In TIA Portal, expand HMI Tags > [HMI] > Default tag table. Open Properties on the suspect tag. The PLC tag field must resolve to the same symbol that is being forced. A wrong binding here is a configuration error, not a tool bug.
  4. Read the HMI tag online state. Hover the cursor on the tag in the tag management. The tooltip shows the current online value and the quality code. Quality codes on WinCC are described in the table below. If quality is Bad or Uncertain, the tag is not actually being read from the PLC regardless of the force state.
  5. Check the HMI connection state. On the HMI, enter the Service / Diagnostics area (Comfort Panel: Control Panel > Diagnostics > Connection). Confirm the S7-1200 connection is in Connected state with all path segments green.
  6. Compare with a second forced tag. Force a different DI tag on the same CPU and bind it to a freshly added HMI tag. If that tag also reads FALSE on the HMI, the engineering-side issue is confirmed. If only the original tag is affected, the defect is at the per-tag descriptor level and a force-clear + tag-regenerate may already recover.

HMI Tag Quality and Connection Validation

The WinCC runtime exposes a quality code per tag. Misreading this code is the most common source of confusion; review the table below before swapping hardware.

Quality code (display name) Status Meaning Action
Good (Cascade / Non-cascade) Green PLC delivered a valid value. Force value will appear here. If value is still wrong, the binding or the HMI cache is suspect.
Uncertain Yellow PLC delivered a value but the runtime could not fully validate it. Check PLC/HMI time sync and connection diagnostics.
Bad - No Communication Red S7 connection broken or the PLC is unreachable. Verify IP, subnet, router, cable, and PROFINET device name.
Bad - Device Not Found Red PLC online but the requested DB / absolute address does not exist in the project. Tag binding points at a stale address; regenerate the HMI tag table.
Bad - Out of Range Red Address exists but the data item is out of the requested array bounds. Check DB / PI offset and length; rebuild tag.
Initial value Gray HMI has never received a value from the PLC since last restart. Force a tag read or trigger an update cycle.
Note on initial-value display: On a freshly restarted Comfort Panel with an unconnected or unestablished connection, every BOOL HMI tag displays the configured initial value (FALSE by default). A panel operator looking at a screen during a connection outage may therefore report "all tags False" - this is not a force/tags bug, it is the configured initial-value fallback. Validate the connection state before assuming a tag-cache fault.

Step-by-Step Resolution

Apply the resolution in the order shown. Steps 1-3 are non-destructive and reversible; steps 4-7 constitute the canonical full-rebuild path that has been confirmed effective against this V12.3 defect.

  1. Save and close TIA Portal. Do not save incrementally - perform Project > Save As to preserve a baseline before any structural change.
  2. Clear all forces on the CPU. In the online watch/force table, right-click and Stop Forcing All. Verify the Force column reads empty. Restart OB1 to release any residual override bits.
  3. Compile the PLC station separately. Right-click PLC_1 > Compile > Software (rebuild all blocks). Confirm zero errors. This step alone resolves the issue in a minority of cases where the incremental compile left an inconsistent symbol table.
  4. Delete and recreate the affected HMI tag. Open the HMI tag table, remove the suspect tag entirely (do not only rename it), then add a new tag with a fresh name bound to the same PLC tag symbol. Recompile the HMI station.
  5. If the symptom persists, regenerate every HMI tag. Use HMI Tags > [HMI] > Default tag table > Load preview, then Compile > Software (rebuild all) on the HMI station. This forces the engineering tool to rebuild all access paths.
  6. If the symptom still persists, perform a full project rebuild. See the next section.
  7. Reload the HMI runtime image. From the Comfort Panel Service / Backup area, perform Transfer > HMI > Complete reset followed by a fresh project transfer from TIA Portal. This clears the on-panel cache that holds stale descriptors between compile cycles.

TIA Portal Full Rebuild Procedure

The full rebuild procedure has been confirmed in the field as the definitive resolution against the V12.3 HMI tag-cache defect. It is more aggressive than a recompile and involves regenerating both the PLC and HMI side of the project from a clean state.

  1. Export the project as a .zap archive. Project > Archive > Save as. Keep the archive on a verified-writeable network drive; do not use a USB key with intermittent contact.
  2. Open a new TIA Portal instance. Launch TIA Portal V12.3 as a fresh process (do not share the running instance). Create a new project and import the archived project through Project > Retrieve project from archive.
  3. Reset the HMI connection. Delete the existing HMI Connection_1 object and recreate it. Re-bind the HMI to the S7-1200 station explicitly using Add new connection > S7-1200 station. Confirm the access point is set to S7ONLINE (active) on the engineering PG and to Ethernet (active) on the Comfort Panel side.
  4. Re-bind every HMI tag from scratch. Open the HMI tag table, delete all tags, and re-create them by drag-and-drop from the PLC tag list. Do not copy-paste - drag-and-drop forces the engineering tool to resolve the symbol anew.
  5. Recompile both stations. Right-click PLC_1 > Compile > Software (rebuild all blocks). Then right-click HMI_1 > Compile > Software (rebuild all). Zero errors and zero warnings expected.
  6. Download to the CPU. Perform a full download (not a delta) of the PLC station. After the download, the force table is empty - any forces must be re-applied afterward.
  7. Download to the Comfort Panel. HMI_1 > Transfer to device. Choose Overwrite all at the panel prompt to ensure no stale runtime data survives.
  8. Re-apply the force. Open the watch/force table online, re-enter the force for the DI tag with value TRUE. Verify in the HMI that the tag now displays TRUE.
Re-applying forces post-rebuild: A full PLC download removes all forced I/O. Plant state must be safe before this step. Confirm with operations before executing step 6, and have a documented rollback of the original project archive available on-site.

HMI Tag Recommissioning Procedure

For projects with large HMI tag populations where total regeneration is impractical, the following targeted procedure restores force visibility for the affected DI without a full download.

  1. Identify all DI tags bound to the same source PLC tag family (e.g., DI_Infeed_OK, DI_Estop_OK, DI_DoorClosed).
  2. Delete those HMI tags from the HMI tag table.
  3. From the PLC tag list, drag the corresponding PLC symbols into the empty HMI tag table row. Accept the default properties (acquisition mode: Cyclic continuous, cycle: 1 s).
  4. On the HMI screen, replace the deleted tag reference with the new tag.
  5. Compile the HMI station only.
  6. Transfer Delta to the panel and confirm the operator observes the new tag values.
  7. Re-enter any required force values in the PLC.

Force Value Behavior on the S7-1200

Force on the S7-1200 is implemented at the process-image level. The behavior is fully described in the S7-1200 system manual. The summary below is the field-relevant subset.

Property Behavior
Force storage CPU force table, non-retentive. Lost on full download or power cycle on cold-restart CPU models.
Force scope Inputs only by default; outputs require explicit configuration and may be password-protected.
Effect on the program Forced value overlaid on PI at start of OB1; program logic sees forced value, not field value.
Effect on the I/O LED Module LED reflects the forced value, not the physical input state.
Effect on the HMI HMI sees forced value provided the HMI tag is bound to the correct symbol and the tag descriptor is not stale.
Stop Forcing Cancels override; program reverts to physical input on next OB1 cycle.
Authorization CPU password required if a protection level higher than full access is configured in the CPU properties.

Reference: SIMATIC S7-1200 Programmable Controller System Manual, section "Watch and force tables" and section "Testing the program with the watch table".

Verification and Acceptance Test

After applying the resolution, verify the fix end-to-end before releasing the panel to operations.

  1. Open TIA Portal online to the CPU. Confirm the online tag value of tag1 is FALSE on initial connect.
  2. Force tag1 = TRUE from the watch/force table. Confirm the force column reads F and the value column reads TRUE.
  3. On the Comfort Panel screen that displays tag1, observe the indicator. Within one acquisition cycle (default 1 s) the indicator must transition to TRUE.
  4. Hover the cursor on the HMI tag in the engineering tool. The tooltip must show quality Good and value TRUE.
  5. Stop the force. Within the next OB1 cycle, the PLC online value reverts to the physical input state. Within one HMI acquisition cycle, the Comfort Panel indicator reverts to the unforced value.
  6. Power-cycle the Comfort Panel (warm restart). Confirm the tag returns to its initial value (FALSE) on the panel until the next acquisition cycle completes.
  7. Document the rebuild in the project revision log: include the affected tag, the original TIA Portal version, the resolution method (full rebuild / targeted HMI regen), and the rebuild date.

Preventive Measures and Best Practices

  • Pin TIA Portal to a single revision. Mixing V12 SP3 with V13/V14 maintenance on the same project corrupts the HMI tag descriptor cache. Migrate the whole project on the same engineering workstation in one operation.
  • Tag wisely. Bind HMI tags directly to PLC symbols. Avoid populating the HMI tag table with absolute addresses against the process image; symbol-bound tags survive DB splits and tag renames.
  • Avoid renaming PLC tags in live projects. A rename on the PLC side leaves stale descriptors on the HMI side until a full HMI recompile is performed.
  • Clear forces before every PLC download. A full download wipes the force table. Document this in the commissioning checklist.
  • Periodic full HMI recompile. Every PLC station change that affects symbolics or DB layout should be followed by a full HMI station rebuild and a fresh panel transfer, not a delta transfer.
  • Use a project baseline archive. Archive the project at every code-freeze milestone. When an HMI tag-cache defect is suspected, the archive can be retrieved into a fresh TIA Portal instance to reproduce or rule out the issue without disturbing the production engineering environment.
  • Upgrade when feasible. The V12.3 defect class is absent in V13 SP1 and later. For new projects, deploy V15.1 or later on a Windows 10 engineering workstation and follow Siemens-supported update paths only.

Frequently Asked Questions

Why does the force value show TRUE in the PLC but FALSE on the HMI?

The CPU correctly overlays the forced value on the process image and reports TRUE to the online viewer, but TIA Portal V12 SP3 has a known HMI tag-cache defect that prevents the Comfort Panel runtime from picking up the post-force value for tags whose access path or descriptor was generated incrementally. A full project rebuild with freshly dragged HMI tag references resolves the discrepancy.

Does deleting and recreating the HMI tag fix the issue?

In many cases, yes. Delete the affected HMI tag completely, then drag the PLC symbol into the empty HMI tag row instead of copy-pasting - the drag-and-drop forces a fresh descriptor resolution. Compile the HMI station and transfer delta to the panel. If the symptom remains, escalate to the full project rebuild described in this article.

Is this a hardware fault on the S7-1200 DI module?

No. The forced value propagates from the CPU force table into the process image independently of the physical input; the input LED on the SM 1221 reflects the forced state. A wrong HMI display while the PLC online value is correct indicates an engineering-side fault, not a defective DI module. Always validate the HMI tag quality code before suspecting the module.

Which TIA Portal versions are affected by this defect?

The reported behavior is specific to TIA Portal V12 SP3 (V12.3) with S7-1200 firmware V4.x. Migrating the same project to TIA Portal V13 SP1 or later on the same firmware typically does not reproduce the symptom. Always test the migration on a non-production engineering workstation before applying it to a live plant.

Can I update TIA Portal to fix this without a full project rebuild?

Updating the engineering tool alone is not sufficient. The defect has already left stale descriptors in the project file. After installing the newer TIA Portal version on the engineering workstation, open the existing project, perform a full compile of both the PLC and HMI stations, transfer the new project to the Comfort Panel via the Overwrite all option, and re-enter any required force values. This procedure combines a tool update with a project reset in a single operation.

Back to blog