Fixing TIA Portal Difference in Low-Level Component Compare Error

David Krause12 min read
SiemensTIA PortalTroubleshooting
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

Fixing the TIA Portal 'Difference in Low-Level Component' Online-Offline Compare Error

The TIA Portal online/offline comparison is one of the most powerful diagnostic tools in the Siemens engineering environment, but it is also one of the most easily confused when the result collapses into the generic message "Difference in low-level component". This article documents the exact field-proven root cause, the precise menu path to resolve it, and the verification steps that confirm a clean comparison on S7-1200 and S7-1500 controllers.

Scope: This article covers TIA Portal V15.1 through V19, the S7-1200 (firmware V4.2 and newer) and S7-1500 (firmware V1.8 and newer) Webserver component, and the standard Online > Compare offline/online workflow. The same symptom can appear in older STEP 7 V13/V14 projects after migration, but the fix path described below is identical.

1. Problem Description

After editing an S7-1200 or S7-1500 project, the engineer performs a standard online/offline comparison. The detailed comparison view collapses one or more nodes of the device tree to a single line item that reads only:

Difference in low-level component

No detailed delta is offered. Expanding the node, clicking on the affected object, or pressing the Detail comparison toolbar button returns the same generic message. The status pane in the lower part of the editor does not display any register, tag, or block-level difference. All other components in the device tree (CPU program, OB/FB/FC blocks, DB contents, PLC tags, hardware configuration) compare clean.

1.1 Typical User Symptoms

  • Compare window shows a yellow triangle next to a single component (almost always under Webserver on a recent project).
  • Clicking the node does not open an attribute or block list.
  • Tooltip on the affected node reports: "Difference in low-level component. There is no detailed comparison for this object."
  • No block-consistency error is raised, and Compile > Software (rebuild all blocks) completes without warning.
  • A Download to device attempt prompts the user to choose Download without synchronization or to perform a full download with STOP/RE-INIT, even though the engineer believes nothing functional has changed.

2. Root Cause Analysis

The TIA Portal online/offline comparison engine treats the Webserver of an S7 CPU as a compound object that bundles several sub-objects:

  1. User-defined HTML pages and the Webserver DB fragments (DB 333 and DB 334 by default on S7-1500; the equivalents on S7-1200 are stored in system data blocks generated by the Webserver wizard).
  2. User-defined Webserver language resources (the multilingual text tables referenced by WWW user-defined pages via the AWP command set).
  3. PLC tags exposed to the Webserver (the Web server > PLC tags for use in the user-defined web pages table).
  4. Standard Webserver configuration: activation state, port (default 80), HTTPS-only toggle, allow PUT/POST, user management, and access protection level.

The four sub-objects above are individually comparable. The collapse into "Difference in low-level component" occurs when one of the sub-objects stores data that the comparison engine does not know how to render as a line-by-line delta. The single most common offender, observed across multiple V16/V17/V18 service requests, is the language setting of the Webserver component itself.

2.1 The Language Setting Mismatch

The Webserver supports a per-project list of project languages and a separate reference language / editing language used to compile the multilingual AWP fragments. When the offline project is created on a workstation where Project languages > Reference language is not explicitly set, TIA Portal writes a placeholder language identifier into the Webserver sub-object. When the project is downloaded to a CPU, the online-side Webserver sub-object is created with a different (or null) language identifier because no language resource was ever compiled into the Webserver DBs.

The result on the next compare is a binary mismatch on an object that the compare UI cannot expand. The engineer sees "Difference in low-level component" with no further detail.

2.2 Other Known Triggers

The same error string is reused by the compare engine for several distinct low-level mismatches. Field data shows the following alternate causes:

Component Low-level property that causes collapse Diagnostic check
Webserver Reference language not set in offline project Open Project > Languages > Reference language and confirm a non-empty ISO code
Webserver User-defined AWP page uses a language ID that is not in the project language list Compare Project > Languages > Project languages against the awp:lang attributes in the HTML
Webserver PLC tag exposed to Webserver has been deleted from the tag table but the Webserver entry still references the GUID Re-open the Webserver > PLC tags for use in the user-defined web pages editor and verify each row resolves
OPC UA server Server interface signature hash differs (e.g., user-added a method without re-compiling the interface) Recompile the OPC UA server and reload the S7-1500 configuration
PROFINET interface Port statistics counters that the online view reads from the device differ from the cached offline snapshot Cycle power on the CPU to clear the running counters, then re-compare
Security / Know-how protection Block protection attribute is set offline but not present online (or vice versa) Right-click block > Know-how protection > verify the offline/online state
Important: The most common cause on S7-1200/1500 Webserver-enabled projects is still the language setting. Always exhaust the language fix described in Section 3 before investigating the alternate triggers above.

3. Solution Procedure

The fix is performed entirely offline and is non-destructive to online process values. The sequence is: set the project language correctly, recompile, then download without reinitialization.

3.1 Step-by-Step Instructions

  1. Open the affected TIA Portal project.
  2. From the project tree, select the PLC device and open Properties > General > Web server.
  3. Open the Properties of the Webserver sub-object (right-click > Properties or double-click Web server in the device configuration).
  4. Switch to the General tab of the Webserver properties and confirm that Activate web server is checked.
  5. Close the Webserver properties and navigate to the project tree root.
  6. Open the Languages & Resources editor: Project tree > Languages & Resources > Project languages.
  7. Open Project > Languages > Reference language in the menu. Select a language from the dropdown (for example English (USA) or the language used in your operator-interface HMI tags). Click Set to apply.
  8. Open Project > Languages > Project languages and confirm that the same language is present in the list of active project languages. If it is missing, click Add and select it.
  9. Return to the Webserver properties and click Recompile (or use Compile > Software (rebuild all blocks) from the project tree).
  10. Connect to the CPU (Online > Go online) and run Online > Compare offline/online. The "Difference in low-level component" line should now be replaced by a clean compare (no yellow triangle) or by a detailed sub-object list.
  11. If the difference persists, perform a Download without synchronization: right-click the PLC device in the project tree > Download to device > Software (only changes). In the download dialog that opens, clear the check box Synchronize configuration with the online device and proceed.
  12. Re-run the compare. The online and offline views should now report identical Webserver content.

3.2 Why "Download without synchronization" Works

The Download to device wizard offers two modes:

  • Download with synchronization (default): TIA Portal stops the CPU, deletes any online-side configuration object that is not present offline, and writes a complete fresh image. This is the correct mode when the offline project has been edited extensively and the user wants a clean slate. On a running process this triggers a CPU STOP and full re-initialization of retain data.
  • Download without synchronization: TIA Portal overwrites only the configuration blocks that differ; it does not delete online-side objects that are absent offline, and it does not STOP the CPU. This mode is the right choice when the only delta is a low-level language identifier that the offline project is now able to produce correctly.

For the language mismatch described here, the Webserver sub-object's internal language identifier is rewritten in place; no program block, no tag, no retentive DB is touched. Download without synchronization therefore accomplishes the fix with zero process disruption.

Caution: Download without synchronization leaves any online-side configuration object that has no offline counterpart untouched. If you have removed hardware, deleted blocks, or restructured the project offline, this mode is unsafe. Use it only when the only delta is the low-level language descriptor on the Webserver.

4. Verification

After the fix, perform the following three checks to confirm a clean state.

4.1 Online/Offline Compare Returns Clean

Open Online > Compare offline/online. The compare dialog should report "Online and offline are identical" at the top of the result pane, with no yellow triangle on any node in the device tree.

4.2 Webserver Functional Check

Open a browser and navigate to http://<cpu-ip-address>/ (or https://<cpu-ip-address>/ if HTTPS-only is enabled). Confirm that:

  • The standard CPU home page loads.
  • Any user-defined AWP page loads and renders the expected text in the reference language.
  • If multiple project languages are configured, the language switcher on the AWP page returns a 200 and the alternative-language page renders.

4.3 Buffer / Diagnostic Buffer Clean

Open Online & Diagnostics > Diagnostic buffer. There should be no entry of type Webserver configuration error or Inconsistent language descriptor. If the buffer shows any Webserver-related event, the language fix has not propagated and a full download with synchronization is required.

5. Related TIA Portal Compare Errors

Engineers who encounter "Difference in low-level component" frequently have other latent compare errors in the same project. The table below summarizes the message strings that the compare engine uses and the recommended first-line investigation for each.

Compare message Affected component First-line check
Difference in low-level component Webserver, OPC UA, PROFINET port Set reference language; recompile; download without sync
No difference in low-level component All Healthy state — no action
Configuration differs in one or more parameters Hardware configuration Open Device configuration and inspect highlighted attribute
Different block signatures OB/FB/FC/DB Recompile; verify interface changes have been accepted
Different know-how protection Block Right-click > Know-how protection > align
Different timestamps Block / hardware Re-compile to refresh offline timestamps, then re-compare

6. Preventive Practices

  1. Set the reference language immediately after project creation. In Project > Languages > Reference language, pick the language used by your AWP and HMI texts. Save the project as a project template (.zap13 / .zap17) so every new CPU inherits a valid language identifier.
  2. Keep the project language list in lockstep with the Webserver AWP languages. Every awp:lang="..." attribute on the HTML pages must have a matching entry under Project > Languages > Project languages.
  3. Avoid hand-editing project languages in the offline project without recompiling. A language change that is not followed by a full software recompile leaves a stale Webserver sub-object on disk and re-creates the compare error after the next download.
  4. Use a project-wide "Compile > Software (rebuild all blocks)" before every online/offline compare on a project that includes a Webserver. The rebuild forces the Webserver wizard to re-emit its DB fragments and refreshes the language identifier.
  5. Document the download mode in the change record. State explicitly whether Download with synchronization or Download without synchronization was used and why. This prevents a future engineer from running a full STOP/RE-INIT download and wiping retentive data unnecessarily.

7. When the Fix Fails

If the language fix and a Download without synchronization do not clear the compare error, escalate as follows.

  1. Compile error in the Webserver wizard: Open the Webserver properties, switch to the User-defined web pages tab, and click Recompile. Read the error list at the bottom of the editor. Typical offenders are missing AWP tags, mismatched closing tags, or a reference to a non-existent DB.
  2. Project migrated from a different TIA Portal version: Open Project > Migrate project and re-run the migration. Migration to V16 or higher re-emits the Webserver sub-object with the correct internal format.
  3. CPU firmware older than the TIA Portal version supports: Some TIA Portal V18 features are not present in firmware V1.8 of the S7-1500. Open Online & Diagnostics > Online information and compare the firmware version against the TIA Portal release notes. Upgrade the CPU firmware or downgrade the project to a compatible TIA Portal version.
  4. Corrupt project database: Use Project > Clean up project and then File > Save as to a new file name. If the compare error survives, restore from a known-good backup and re-apply the language setting from scratch.

8. Glossary of TIA Portal Terms Used in This Article

Term Meaning
AWP Automation Web Programming — the Siemens markup extensions used inside HTML pages served by the CPU Webserver (commands such as :="DB.MyTag", <!-- AWP_In_Variable -->, awp:lang).
Reference language The single project language used as the source of truth for compilable text in the TIA Portal project (project > languages > reference language).
Project languages The complete list of language codes recognized by the TIA Portal project. AWP text fragments reference entries in this list.
Download without synchronization A download mode that overwrites only changed configuration blocks and does not STOP the CPU or delete online-only objects.
Low-level component A sub-object of the CPU configuration that the compare engine does not decompose into line-item differences; the engine reports it as a single binary equal/unequal state.

9. FAQ

What does "Difference in low-level component" mean in TIA Portal?

It means the online/offline compare engine has detected a binary mismatch on a sub-object that it cannot decompose into a line-by-line delta. On S7-1200/1500 projects that enable the Webserver, the most common cause is an unset reference language in the offline project, which writes a placeholder language identifier into the Webserver sub-object that does not match the online-side identifier.

How do I set the reference language in TIA Portal?

Open the project tree, navigate to Languages & Resources > Project languages, then select Project > Languages > Reference language in the menu. Pick the language you use for AWP text and HMI tags, click Set, then recompile the software (Compile > Software (rebuild all blocks)).

Is "Download without synchronization" safe for a running process?

It is safe for the Webserver language mismatch because the download only rewrites the Webserver sub-object and does not STOP the CPU or re-initialize retentive data. It is not safe if you have deleted hardware or blocks offline, because online-side objects with no offline counterpart are not removed. Use the full download with synchronization only when the offline project is the new source of truth.

Will this fix apply to S7-300 / S7-400 projects in STEP 7 V5.x?

No. The Webserver is not available on S7-300/S7-400 in the same form, and the TIA Portal V15+ compare engine described here does not apply. STEP 7 V5.x has its own online/offline compare path that reports differences at the block / symbol level and does not collapse to "Difference in low-level component".

After the fix, why does the Webserver still show a delta on the next compare?

Two common reasons: (1) the offline project was not recompiled after setting the reference language, leaving a stale sub-object on disk; (2) the project language list was updated but the AWP pages still reference an old language identifier, so the Webserver wizard regenerates a different language descriptor than what is online. In both cases, run Compile > Software (rebuild all blocks), verify the language list, and re-compare.

Back to blog