Decoupling Multiple Siemens Comfort Panel Screens from S7-1500

David Krause17 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 Overview: Multiple Comfort Panels Displaying the Same Screen

When two or more SIMATIC HMI Comfort Panels (TP700, TP900, TP1200, TP1500, TP1900 and the KTP variants KTP700, KTP900, KTP1200) are connected to a single SIMATIC S7-1500 CPU under one TIA Portal project, the operator can observe a synchronization anomaly: any screen change on one panel is mirrored on every other panel, regardless of where the action originated. The same effect manifests through a Sm@rtClient remote viewer — every screen change issued in the remote viewer also changes the active screen on the master panel at the local station.

The behavior is not a software bug. It is a direct consequence of the screen-change architecture used by WinCC Comfort/Advanced, where the active screen number is exposed to the PLC through an area pointer and any write to that pointer — local or remote — propagates to every HMI that has been bound to the same tag. This article documents the underlying mechanisms, the diagnostic steps to identify which one is active, and the configuration changes required to make the panels navigate independently.

Typical Plant Configuration

Item Description
PLC SIMATIC S7-1500 (CPU 1511 / 1515 / 1516 / 1517 / 1518 / 1510SP / 1512SP / 1514SP / 1515SP)
HMIs Two or more Comfort Panels on the same PROFINET subnet
Engineering Single TIA Portal project with one HMI device per panel
Remote access Sm@rtServer / Sm@rtClient via the master panel
Symptom All panels show the same screen after any local or remote change

Affected Components and Software Versions

The synchronization behavior applies to the following Siemens HMI and PLC components. The configuration strategies described later in this article apply to every Comfort Panel generation that supports the screen-number area pointer (panel firmware with the area-pointer feature enabled).

Component Models / Versions
Comfort Panels, 4" KTP400 Comfort (6AV2 125-1AE01-0AX0)
Comfort Panels, 7" KTP700 Comfort PN/DP, TP700 Comfort (6AV2 124-1GC01-0AX0, 6AV2 125-1AG/AF01-0AX0)
Comfort Panels, 9" KTP900 Comfort, TP900 Comfort (6AV2 124-1JC01-0AX0, 6AV2 125-1AH01-0AX0)
Comfort Panels, 12" KTP1200 Comfort, TP1200 Comfort (6AV2 124-1MC01-0AX0, 6AV2 125-1AJ01-0AX0)
Comfort Panels, 15" TP1500 Comfort (6AV2 124-1QC02-0AX0)
Comfort Panels, 19" TP1900 Comfort (6AV2 124-1UC02-0AX0)
S7-1500 CPUs CPU 1511-1 PN, 1515-2 PN, 1516-3 PN/DP, 1517-3 PN/DP, 1518-4 PN/DP, 1510SP-1 PN, 1512SP-1 PN, ET 200SP CPUs
Engineering software TIA Portal V15.1 / V16 / V17 / V18 / V19 with WinCC Comfort/Advanced
Panel firmware Image with area-pointer and Sm@rtServer support enabled (see WinCC Comfort manual)
Note: The synchronization behavior is a function of project design, not firmware version. The solutions in this article are valid for every Comfort Panel generation that supports the screen-number area pointer.

Root Cause: How Screen Synchronization Happens

Three distinct mechanisms in WinCC Comfort/Advanced can cause multiple panels to display the same screen at the same time. In most cases more than one mechanism is active in the same project.

Mechanism 1 — Shared Screen-Number Area Pointer

The area pointer "Screen number" (German: "Bildnummer") is a 16-bit integer area in the PLC that WinCC polls every 200 ms. Whenever the value at the configured address changes, the HMI sets the active screen to the value written by the PLC. If two HMI devices in the same TIA Portal project share the same screen-number area pointer — for example, both are bound to DB100.DBW0 — then a single write from the PLC to that word triggers a screen change on every panel that uses the pointer.

This is the most common cause of unwanted synchronization. The area pointer is enabled by default when a connection between the HMI and the PLC is configured in TIA Portal, and the same address is often assigned to multiple HMI devices when the engineer copies the connection between devices.

Mechanism 2 — PLC-Driven ActivateScreen System Function

The PLC can call the WinCC system function ActivateScreen on a specific HMI device through the HMI device API (in SCL: "HMI_1".ActivateScreen(ScreenNumber := ...) via the HMIRuntime interface). If the engineer uses the same DB block to drive ActivateScreen for several HMI devices, the same screen number is written to every panel's internal control structure, producing the same synchronization as Mechanism 1. The difference is that ActivateScreen is triggered by a function call from the PLC user program, not by a polled area pointer.

Mechanism 3 — Sm@rtServer / Sm@rtClient Mirror Mode

When a Comfort Panel is configured as a Sm@rtServer (panel-side service) and a remote PC connects with the Sm@rtClient application, the Sm@rtClient session always mirrors the master panel. By design, every screen change performed on the Sm@rtClient is propagated to the master panel, and every screen change performed locally on the master is mirrored to the Sm@rtClient window. This is the intended behavior of the Sm@rtServer function and is documented in the SIMATIC HMI Sm@rtServer manual.

When the operator expects the Sm@rtClient window to show one screen while the master panel shows a different screen, the expectation conflicts with the mirror behavior. There is no configuration option in the Sm@rtServer to disable this mirror behavior on the master side; the only way to obtain independent screens between the local panel and the Sm@rtClient viewer is to deploy a second physical panel and run a different project on it, or to use a separate WebUX page on the S7-1500 CPU.

Engineering impact: The Sm@rtClient cannot be used to display a different screen from the master HMI. If the customer's workflow requires the remote view to remain on a fixed screen while the operator changes the local panel, the remote view must be implemented as a second physical panel or as a separate WebUX/OPC UA visualization — not as a Sm@rtClient session.

Diagnostic Procedure

Use the following checks to identify which mechanism is active in your project.

Step 1 — Verify the Area-Pointer Configuration

  1. Open the TIA Portal project that contains the master CPU and all Comfort Panels.
  2. Select the first HMI device in the project tree.
  3. Open Connections → select the HMI connection to the S7-1500 CPU → open the Area Pointers tab.
  4. Locate the Screen number entry. Note the configured DB number and byte offset (for example, DB100, byte 0).
  5. Repeat for every other HMI device in the project.
  6. If two or more HMI devices reference the same DB and the same byte offset, Mechanism 1 is the cause of the synchronization.

Step 2 — Inspect the PLC User Program for ActivateScreen

  1. Open the S7-1500 program blocks in the project tree.
  2. Search for the system function ActivateScreen on the HMI device API. In SCL, this is invoked through the HMIRuntime library or directly as a method of the configured HMI device interface.
  3. Identify the screen number that each call writes and the HMI device name it targets.
  4. If the same screen number is written to more than one HMI device, Mechanism 2 is contributing to the synchronization.

Step 3 — Verify the Sm@rtServer Configuration

  1. Select the master HMI device in TIA Portal.
  2. Open Properties → Services → Sm@rtServer.
  3. Confirm whether the Sm@rtServer is enabled and whether any Sm@rtClient session is currently connected.
  4. Disconnect any Sm@rtClient session and re-test the screen-change behavior on the panels. If the synchronization disappears when the Sm@rtClient is closed, Mechanism 3 is the dominant cause.

Diagnostic Decision Path

Panels show same screen?Shared screen-numberarea pointer?Sm@rtClient connectedand used for navigation?Solution 1: independentarea-pointer tagsSolution 3: decoupledHMI projects

Solution 1 — Independent Screen-Number Area Pointers

The most direct fix is to assign a unique screen-number area pointer to each HMI device. The PLC then writes the target screen number to the matching area pointer, and only the intended panel changes screen.

Configuration Steps

  1. In the TIA Portal project tree, select HMI_1 and open Connections → select the HMI connection to the S7-1500 CPU.
  2. Open the Area Pointers tab.
  3. Click on the Screen number row. In the right pane, change the DB number to a unique value, for example DB100, byte 0.
  4. Click Apply and compile the project.
  5. Repeat for HMI_2. Assign a different DB, for example DB101, byte 0.
  6. Confirm that no two HMI devices share the same area-pointer address.

PLC Logic for Independent Screen Selection

The PLC now drives each panel with a separate word. A typical SCL implementation for two panels is shown below.

// SCL block: FB_IndependentScreenControl
// Inputs: tags from each HMI that request a screen change
// Outputs: per-HMI screen-number words bound to each area pointer

FUNCTION_BLOCK "FB_IndependentScreenControl"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
    HMI1_RequestScreen : Int;   // screen number requested on HMI_1
    HMI2_RequestScreen : Int;   // screen number requested on HMI_2
    HMI1_RequestValid  : Bool;  // 1 = new request pending
    HMI2_RequestValid  : Bool;  // 1 = new request pending
END_VAR
VAR_OUTPUT
    HMI1_ActiveScreen  : Int;   // bound to HMI_1 area pointer (DB100.DBW0)
    HMI2_ActiveScreen  : Int;   // bound to HMI_2 area pointer (DB101.DBW0)
END_VAR
VAR
    HMI1_OldRequest    : Int;
    HMI2_OldRequest    : Int;
END_VAR
BEGIN
    // HMI_1 — accept new request only on rising edge of the request tag
    IF HMI1_RequestValid AND HMI1_RequestScreen <> HMI1_OldRequest THEN
        HMI1_ActiveScreen := HMI1_RequestScreen;
        HMI1_OldRequest   := HMI1_RequestScreen;
    END_IF;

    // HMI_2 — independent path
    IF HMI2_RequestValid AND HMI2_RequestScreen <> HMI2_OldRequest THEN
        HMI2_ActiveScreen := HMI2_RequestScreen;
        HMI2_OldRequest   := HMI2_RequestScreen;
    END_IF;
END_FUNCTION_BLOCK

Map the HMI tags to the area-pointer addresses in the connection configuration of each HMI device:

HMI Device Area Pointer PLC Address DB Block
HMI_1 Screen number DB100.DBW0 Instance DB of FB_IndependentScreenControl
HMI_2 Screen number DB101.DBW0 Instance DB of FB_IndependentScreenControl

HMI-Side Tag Configuration

From the HMI side, expose two HMI tags that the operator's screen-change button can write to. These tags are linked to the same area-pointer DB words used by the PLC.

HMI Tag PLC Connection Address Acquisition
HMI1_RequestScreen Connection_1 DB100.DBW10 Cyclic, 1 s
HMI1_RequestValid Connection_1 DB100.DBX12.0 Cyclic, 1 s
HMI2_RequestScreen Connection_2 DB101.DBW10 Cyclic, 1 s
HMI2_RequestValid Connection_2 DB101.DBX12.0 Cyclic, 1 s

On the button event of each HMI screen, configure the ActivateScreen system function with the new screen number, and at the same time write the same value to the matching HMI tag pair HMIx_RequestScreen / HMIx_RequestValid. The PLC then handles the change for the correct panel only.

Solution 2 — Sm@rtServer Independent Operation

When the synchronization is observed between a Sm@rtClient and the master panel, the only robust solution is to remove the Sm@rtClient from the navigation path. Replace the Sm@rtClient with a separate panel or with a different visualization technology that does not mirror the master screen.

Option A — Use a Second Physical Comfort Panel

  1. Add a second Comfort Panel to the project with its own HMI device name and its own PROFINET device name.
  2. Compile a dedicated project for the second panel (Solution 3 below) so it has independent navigation.
  3. Place the second panel next to the operator station. Use its dedicated screen for the remote-style display.

Option B — Use a WebUX Panel or a Web Server Page

  1. Configure the integrated Web server of the S7-1500 (CPU 1515 / 1516 / 1517 / 1518 and the ET 200SP CPUs) and publish a user-defined Web page.
  2. Open the WebUX URL on a remote PC. WebUX screens are independent of the HMI Comfort Panel and are not driven by the screen-number area pointer.
  3. Use the WebUX view as the remote screen. The Comfort Panel can be used independently at the local station.
Note: The Sm@rtServer option in WinCC Comfort/Advanced does not provide a "view-only" mode that keeps the master panel on its current screen while the remote user navigates. Every navigation action of the Sm@rtClient is a navigation action on the master. Treat the Sm@rtClient as a remote keyboard/mouse for the master panel, not as an independent display.

Solution 3 — Decoupled HMI Projects

When the panels must show different content at all times, the cleanest design is to give each Comfort Panel its own TIA Portal project. The two projects share the same S7-1500 connection but are completely independent on the visualization side: each panel has its own start screen, its own navigation tree, and its own screen-number area pointer.

Configuration Steps

  1. Open the existing multi-panel TIA Portal project.
  2. Select HMI_1 in the project tree and choose Device > Copy. Paste the copy into the same project as HMI_1_Copy, or into a new TIA Portal project.
  3. Rename the copy to a clear identifier such as CMT_HMI_LineA and CMT_HMI_LineB.
  4. In each HMI project, configure a unique PROFINET device name and a unique IP address. The S7-1500 CPU sees two HMI devices on the network.
  5. For each HMI, set the start screen to the desired value (for example, Screen 1 for LineA and Screen 20 for LineB).
  6. Compile and download each HMI project to its target panel.

Advantages and Trade-offs

Aspect Single Project (Synchronized) Two Projects (Decoupled)
Project maintenance One project, one download Two projects, two downloads
Common screen library Yes, can be reused No, must be copied or proxied via proxy HMI
Independent navigation No, all panels follow the same area pointer Yes, full independence
PLC tag references Single DB, one definition Must be re-pointed in each HMI project
Sm@rtServer on each panel One panel at a time Independent per panel
Engineering tip: If the two HMI devices need to share a large common screen library, create a third "master" HMI in the project, place all shared screens there, and use the proxy HMI mechanism to share them with the two line-specific HMI projects. See the TIA Portal help topic "Using proxy HMI devices" for details.

TIA Portal Configuration Walkthrough

The following walkthrough combines the three solutions into a single commissioning procedure that can be applied to a typical two-panel Comfort installation.

Prerequisites

  • TIA Portal V17 or later with WinCC Comfort/Advanced installed.
  • The two Comfort Panels are visible in the project tree with distinct HMI device names.
  • The S7-1500 CPU is online in the project and the HMI connections compile without errors.
  • The PLC user program is accessible (for the area-pointer mapping step).

Step-by-Step Procedure

  1. Open the project and select Project > Compile > All (rebuild). Verify that no area-pointer conflicts are reported.
  2. For each HMI, open Connections > HMI_Connection_1 > Area Pointers. Verify that the Screen number entry is enabled and points to a unique DB and byte offset. If two HMI devices share the same offset, assign a new offset (for example, DB100.DBW0 for HMI_1, DB101.DBW0 for HMI_2).
  3. In the S7-1500 program, create the FB_IndependentScreenControl block from Solution 1 and instantiate it once. Map the two output words to the area-pointer offsets created in step 2.
  4. Compile the S7-1500 program and download it to the CPU. Confirm the DBs are present in the online view.
  5. For each HMI, create the HMI tags listed in the "HMI-Side Tag Configuration" table and bind them to the corresponding PLC addresses.
  6. On the HMI screen-change buttons, configure the ActivateScreen system function to update the local tag pair HMIx_RequestScreen / HMIx_RequestValid instead of writing directly to the area pointer.
  7. If the customer uses the Sm@rtClient to display the master panel remotely, replace the Sm@rtClient with a WebUX page or a second physical panel as described in Solution 2.
  8. Compile both HMI projects and download them to their respective panels.

SCL Implementation Summary

The following example is a complete, ready-to-compile SCL block for the S7-1500. It is the same logic as in Solution 1, extended to support four Comfort Panels. The instance DB provides the area-pointer output words.

// FB_IndependentScreenControl_4Panels
// Drives the screen-number area pointer for up to 4 independent Comfort Panels.

FUNCTION_BLOCK "FB_IndependentScreenControl_4Panels"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
    HMI1_RequestScreen : Int;
    HMI2_RequestScreen : Int;
    HMI3_RequestScreen : Int;
    HMI4_RequestScreen : Int;
    HMI1_RequestValid  : Bool;
    HMI2_RequestValid  : Bool;
    HMI3_RequestValid  : Bool;
    HMI4_RequestValid  : Bool;
END_VAR
VAR_OUTPUT
    HMI1_ActiveScreen  : Int;   // bound to DB100.DBW0 (HMI_1 screen-number pointer)
    HMI2_ActiveScreen  : Int;   // bound to DB101.DBW0 (HMI_2 screen-number pointer)
    HMI3_ActiveScreen  : Int;   // bound to DB102.DBW0 (HMI_3 screen-number pointer)
    HMI4_ActiveScreen  : Int;   // bound to DB103.DBW0 (HMI_4 screen-number pointer)
END_VAR
VAR
    HMI1_OldRequest    : Int;
    HMI2_OldRequest    : Int;
    HMI3_OldRequest    : Int;
    HMI4_OldRequest    : Int;
END_VAR
BEGIN
    // Edge-triggered acceptance of new screen requests
    IF HMI1_RequestValid AND HMI1_RequestScreen <> HMI1_OldRequest THEN
        HMI1_ActiveScreen := HMI1_RequestScreen;
        HMI1_OldRequest   := HMI1_RequestScreen;
    END_IF;
    IF HMI2_RequestValid AND HMI2_RequestScreen <> HMI2_OldRequest THEN
        HMI2_ActiveScreen := HMI2_RequestScreen;
        HMI2_OldRequest   := HMI2_RequestScreen;
    END_IF;
    IF HMI3_RequestValid AND HMI3_RequestScreen <> HMI3_OldRequest THEN
        HMI3_ActiveScreen := HMI3_RequestScreen;
        HMI3_OldRequest   := HMI3_RequestScreen;
    END_IF;
    IF HMI4_RequestValid AND HMI4_RequestScreen <> HMI4_OldRequest THEN
        HMI4_ActiveScreen := HMI4_RequestScreen;
        HMI4_OldRequest   := HMI4_RequestScreen;
    END_IF;
END_FUNCTION_BLOCK

HMI-Side Configuration of the Screen-Change Event

On a button in the HMI screen, configure the following sequence of actions (configured in the HMI tag table and the button event):

  1. Event "Click" on the button.
  2. Action 1: Set the HMI tag HMIx_RequestScreen to the new screen number (for example, 5 for the alarm screen).
  3. Action 2: Set the HMI tag HMIx_RequestValid to 1 for a single scan.
  4. Action 3: (Optional) Use the system function ActivateScreen with the same screen number. This pre-positions the HMI while the PLC is processing the request.
Tip: The PLC block in this article uses rising-edge detection on the request tag, so the HMI only needs to set the request-valid bit for one acquisition cycle. A 1-second cyclic acquisition on the request-valid tag is sufficient.

Verification and Commissioning

After applying any of the three solutions, perform the following checks at the panel.

Visual Verification

  1. Power on both Comfort Panels and the S7-1500 CPU.
  2. On HMI_1, navigate to Screen 5 (for example, alarm screen) using a local button.
  3. Confirm that HMI_2 remains on its current screen (or its configured start screen if it has not been used).
  4. On HMI_2, navigate to Screen 10 (for example, recipe screen) using a local button.
  5. Confirm that HMI_1 remains on Screen 5.
  6. Open a Sm@rtClient session to either panel. Navigate the Sm@rtClient to a different screen. Confirm that the master panel does not change (only valid for Solution 2 and Solution 3).

Online Verification in TIA Portal

  1. Connect TIA Portal to the S7-1500 CPU online.
  2. Open the instance DB of FB_IndependentScreenControl in monitor mode.
  3. Watch the four HMIx_ActiveScreen output values. They should each update only when the matching HMI requests a change.
  4. Watch the DBx.DBW0 words (the area-pointer addresses). They should track the ActiveScreen outputs of the matching panel.

Acceptance Criteria

Test Expected Result Pass / Fail
Local navigation on HMI_1 HMI_2 screen unchanged —
Local navigation on HMI_2 HMI_1 screen unchanged —
PLC-driven ActivateScreen from HMI_1 Only HMI_1 changes —
Sm@rtClient session active Master screen not affected by remote navigation (Solution 2 / 3) —
Power-cycle both panels Each panel returns to its configured start screen —

Specifications and Limits

Parameter Value Source
Maximum number of HMI connections per S7-1500 CPU CPU-specific (see CPU device properties in TIA Portal) TIA Portal S7-1500 manual
Area pointer "Screen number" data type WORD (16-bit, 0..32767) WinCC Comfort manual
Area pointer acquisition cycle 200 ms default; configurable 100 ms..5 s WinCC Comfort manual
Number of screens per HMI project (Comfort) 500 (WinCC Comfort); higher with WinCC Advanced WinCC Engineering manual
Sm@rtServer concurrent sessions per panel 1 Sm@rtClient connection Sm@rtServer manual
PROFINET devices per S7-1500 CPU Up to 256 on CPU 1518-4, fewer on smaller CPUs S7-1500 CPU manual
Verification required: The exact number of HMI connections supported on a specific S7-1500 CPU model depends on the CPU's connection resources. Always check the "Resources" tab of the CPU device properties in TIA Portal before adding additional HMI devices. For Unified Comfort Panels (MTP/MTP Unified), the same principle applies; the equivalent mechanism is the "Screen" tag in the HMI tag table.

Frequently Asked Questions

Why do my two Comfort Panels show the same screen after I press a button on one of them?

Because both panels are bound to the same screen-number area pointer in the S7-1500 PLC. Every change to that pointer triggers a screen change on every panel that uses it. Assign a unique DB and byte offset to each panel's screen-number area pointer and drive them from separate PLC logic blocks such as the FB shown in this article.

Can I make the Sm@rtClient viewer stay on one screen while the operator changes the master panel?

No. The Sm@rtServer is designed to mirror the master panel. The only ways to obtain independent screens between the local panel and the remote view are to use a second physical Comfort Panel, a WebUX page on the S7-1500 CPU, or a separate visualization technology. See the Sm@rtServer manual for the official description of the mirror behavior.

Do I need to create two TIA Portal projects, or can I keep one project with two independent HMIs?

Both approaches are valid. With one project, give each HMI a unique area pointer and a dedicated start screen. The HMIs remain in the same project and can share a screen library, but their navigation is fully independent. With two projects, the HMIs are completely separated, which simplifies maintenance of independent navigation at the cost of duplicate project work. Use the proxy HMI mechanism if you need to share screens across the two projects.

Does the screen-number area pointer also synchronize events and alarms across panels?

No. The area pointer only drives the active screen. Events, alarms, and tag values are managed separately. Each panel can have its own alarm acknowledgment path. If the customer requires a single alarm acknowledgment across panels, that is a separate function-block requirement and is not affected by the screen-number pointer.

Can I keep the start screen synchronized across panels but allow independent navigation afterwards?

Yes. Configure the start screen in the HMI project properties (no PLC intervention is needed). After the start screen is shown, navigation is handled by the local button events on each panel. As long as the area pointer is not used for ongoing navigation, the panels will diverge after the first button press.

Back to blog