Overview
This technical reference documents the correct configuration for changing the active screen on a Siemens SIMATIC TP700 Comfort panel from a SIMATIC S7-1200 CPU based on a PLC-side state change, with explicit handling for a falling-edge trigger (bit going LOW) such as a homed status being lost mid-cycle. The procedure covers WinCC Comfort / TIA Portal and uses the standardized area pointer mechanism or a cyclic HMI tag, instead of the built-in "Activate screen on value change" event, which has a known limitation when the trigger must fire while the operator is on a different screen from the target or when the bit is leaving the TRUE state.
Three valid mechanisms exist in TIA Portal for PLC-driven screen changes on Comfort Panels:
- Area pointer "Controller Job" with Job 51 (Change Screen), triggered on a rising edge in the PLC. Recommended for negative-edge and event-driven scenarios.
- HMI tag with Acquisition mode "Cyclic continuous" and the "Change Screen" event attached to the tag. Valid when the tag value change itself is the desired trigger.
- HMI tag event "Activate screen" on value change with default acquisition mode. Fails in the falling-edge case because polling is suspended on inactive screens and the event does not re-arm for a 1→0 transition when the source screen is not the active screen.
For a homing-lost condition where the HMI must return to the Homing screen regardless of which screen the operator is on, use the Controller Job area pointer. It is decoupled from HMI screen polling and executes on every positive edge seen in the trigger bit, including transitions issued from the PLC while the panel is in any runtime screen.
Prerequisites
| Item | Specification / Catalog Number | Notes |
|---|---|---|
| HMI panel | SIMATIC TP700 Comfort, 6AV2 124-1GC01-0AX0 | Firmware V15.1 or higher recommended |
| PLC | SIMATIC S7-1200, CPU 1214C DC/DC/DC (6ES7 214-1AG40-0XB0) or higher | Firmware V4.4 or higher |
| Engineering software | STEP 7 / WinCC Comfort in TIA Portal V16 (6AV2 101-0AA06-0AA5) or V17/V18 | Both PLC and HMI configuration live in the same project |
| HMI connection | PROFINET, S7 connection, slot 1 of the S7-1200 | Default integration; no additional drivers required |
| Configured screens | Startup, Homing, Operation, Alarm | Screen numbers assigned automatically by WinCC Comfort |
Verify the HMI/PLC connection compiles cleanly in TIA Portal before beginning the screen-change configuration. A red status on the HMI connection prevents area pointer updates from being executed at runtime.
Why the Built-In "Activate Screen on Value Change" Event Fails
The TIA Portal property page on an HMI tag exposes an Events tab that supports an "Activate screen" or "Change screen" event on a Value change. The mechanism looks correct on paper but fails in three specific cases common to homing-lost handling:
- Acquisition mode is not "Cyclic continuous". By default, HMI tags are created with "Cyclic in operation" acquisition. The tag value is only refreshed while the HMI is in operation and the tag is referenced by an object on the currently displayed screen. The PLC bit that controls visibility of a button on a particular screen is therefore polled only on that screen. When the bit transitions while the operator is on a different screen, the HMI does not see the transition.
- Source screen is not active. Even with Cyclic continuous acquisition, the Activate screen event is queued by the HMI runtime and the screen change is dispatched at the next internal scan. If the user has navigated away from the source screen, the dispatcher never fires the event for the previous screen. Visibility animations update because they are properties of the active screen, but the Change screen event is bound to the original screen context.
- Trigger is a 1→0 transition. The event fires on value change, but many field-proven TIA Portal builds handle the 0→1 edge more reliably than the 1→0 edge in tag-event dispatch. The homing-lost condition is by definition a 1→0 transition, so a tag-based event is the wrong primitive for this signal.
The reliable Siemens-blessed pattern is the Controller Job area pointer, which is processed by the HMI runtime as a discrete command independent of the active screen and independent of the source tag's acquisition mode. Siemens documents this mechanism in the official FAQ "How do you change a screen on an HMI from the S7 controller by means of a controller job?" (entry ID 93909293).
Method 1 — Controller Job 51 (Recommended)
The Controller Job area pointer is a data block on the PLC that the HMI polls. The block contains a 16-bit job number and, depending on the job, a 16-bit data word. The HMI scans the job number on every scan; when it changes, the HMI executes the corresponding job and writes the value 0 back to clear the job number.
Job 51 (Change Screen) Layout
| Word offset | Meaning | Value |
|---|---|---|
| QW + 0 | Job number | 51 (Change Screen) |
| QW + 2 | Data word 1 | Target screen number |
| QW + 4 | Data word 2 | 0 (reserved) |
The job is processed on every change of the Job number word. The PLC therefore writes 51, waits one cycle, then writes 0 to acknowledge. The HMI copies the new screen number from Data word 1 and switches screens.
Configuration in TIA Portal
- Open the HMI device configuration in the project tree.
- Expand Connections → select the S7-1200 connection.
- Right-click Area pointers → Add new area pointer → Controller Job.
- Assign a PLC tag of type Word for the Job number field and a second Word for the Data field. For a Comfort Panel, only one job is in flight at a time, so a pair of PLC tags is sufficient (a dedicated DB such as
DB_HMI_JOBwith offsets 0 and 2 is recommended). - Compile and download the HMI project to the TP700 Comfort.
PLC Logic for Falling-Edge Trigger
The trigger for the homing-lost condition is the negative edge of the Homed bit. The HMI accepts the job only on a positive edge of the job number, so the PLC must convert a falling edge on Homed into a one-shot pulse that drives a state machine which writes 51 / ScreenNumber and clears the job number back to 0 on the next scan.
Ladder Example (FBD / LAD)
// Network 1 — Falling-edge detection of "Homed"
A "Homed"
FN "HmiJob_Trig" // edge memory bit (BOOL)
= "HmiJob_Go"
// Network 2 — One-shot job write (rising edge of "HmiJob_Go")
A "HmiJob_Go"
S "HmiJob_Active"
// Network 3 — Populate job word
A "HmiJob_Active"
JCN NoJob
L 51 // Job 51 = Change Screen
T "DB_HMI_JOB".JobNumber
L "TargetScreenNumber" // e.g. W#16#0002 for Homing
T "DB_HMI_JOB".DataWord1
NoJob: NOP 0
// Network 4 — Clear job the cycle after the HMI has accepted it
// (HMI writes 0 back to JobNumber when it consumes the job; clear "Active" when that happens)
L "DB_HMI_JOB".JobNumber
L 0
==I
R "HmiJob_Active"
SCL Equivalent
// Edge detection
IF "Homed" = FALSE AND "Homed_Prev" = TRUE THEN
"HmiJob_Go" := TRUE;
END_IF;
"Homed_Prev" := "Homed";
// Job write
IF "HmiJob_Go" THEN
"DB_HMI_JOB".JobNumber := 51;
"DB_HMI_JOB".DataWord1 := UINT#16#0002; // Homing screen
"HmiJob_Go" := FALSE;
END_IF;
// Acknowledge
IF "DB_HMI_JOB".JobNumber = 0 THEN
"HmiJob_Active" := FALSE;
END_IF;
JobNumber = 51 indefinitely, the HMI executes the change-screen job on every restart. The HMI writes 0 to JobNumber after consuming the job; the PLC uses this 0 to lower its Active flag so the next falling edge of Homed re-arms cleanly.Method 2 — HMI Tag with "Cyclic continuous" Acquisition
For installations where the Controller Job is already in use for other jobs (recipe view, user login, etc.) and the change-screen request can be expressed as a tag value, the alternative is an HMI tag with Cyclic continuous acquisition and a Change screen event on Value change.
Tag Configuration
- Project tree → HMI Tags → Show all tags → add a new tag, e.g.
HMI_GoToScreenof type INT. - Open the tag's Properties → Acquisition mode: select Cyclic continuous. Set the acquisition cycle to 100 ms (faster cycles add load; 100 ms is the recommended minimum for screen-change commands).
- Set Update on screen change = Yes if the project contains localized HMI tags and you want to refresh the value on each screen load.
Event Configuration
- On the same tag, open Events tab.
- Add a Value change event.
- Function list → ActivateScreen → configure the Screen name parameter to be the Homing screen. In WinCC Comfort, the screen name is configured via a constant in the event; to drive the screen number from the tag, use a small VB script that reads the new value of the tag and dispatches
HMIRuntime.Screens("Homing").
PLC Logic
The PLC sets HMI_GoToScreen to the numeric ID of the target screen, then writes 0 in the next cycle so the event fires on the change rather than every runtime scan.
// One-shot on falling edge of "Homed"
A "Homed"
FN "Edge_Homed_FN"
= "HmiGoPulse"
A "HmiGoPulse"
JCN NoOp
L 2 // numeric ID of the Homing screen
T "HMI_GoToScreen" // HMI tag of type INT
NoOp: NOP 0
Determining the Numeric Screen ID
WinCC Comfort assigns each screen an internal ID. The ID is exposed through the HMI's built-in system tags:
-
CurrentScreen— INT, contains the ID of the active screen. Visible to both HMI and PLC via area pointer Screen number. -
PreviousScreen— INT, contains the ID of the screen the user navigated from.
To capture screen IDs, enable the Screen number area pointer on the HMI connection (separate from the Controller Job pointer). The PLC then writes the desired target ID to the ChangeTo field of the same area pointer if the project has been configured for direct screen-number steering; on TP700 Comfort firmware V15.1 and higher, the simplest path is the Controller Job mechanism, so prefer that.
Verification Procedure
- Download the PLC project to the S7-1200 and the HMI project to the TP700 Comfort.
- From the Operation screen, force
"Homed"TRUE in the watch table. Navigate the HMI to the Alarm screen. - In the watch table, force
"Homed"FALSE. Within one PROFINET cycle (typically 50–100 ms), the HMI must switch to the Homing screen. - In the watch table, observe
DB_HMI_JOB.JobNumber: it must return to 0 within 200 ms of the screen change, indicating the HMI has consumed the job. - Repeat the test from every other configured screen to confirm the change fires from any active screen, not only from the Homing screen.
Use the HMI's Tools → Trace or the HMI Diagnostics in TIA Portal to record the screen number transitions. Successful traces show a single step from the source screen ID to the Homing screen ID with no intermediate screens.
Cross-Platform Notes
The Controller Job pattern is specific to Siemens WinCC. Other vendors in the SCADA/HMI space use a related but different primitive. The behavior of the equivalent is summarized below for technicians who move between platforms.
| Platform | Mechanism | Trigger source | Reference |
|---|---|---|---|
| Siemens WinCC Comfort / Advanced | Area pointer "Controller Job" with Job 51 | PLC writes 51 + screen number; HMI acks with 0 | Siemens FAQ 93909293 |
| AutomationDirect C-more Micro | Write screen number to the PLC-to-Panel register assigned in Setup → Navigation → PLC to Panel | PLC writes the destination screen number to the configured register; the HMI follows on the next scan | C-more Micro HMI Control Screen from a PLC |
| Pro-face GP-Pro EX | Write destination screen number to the configured Change-To Screen Number (1 Word) address | PLC writes a screen number to the mapped data word; HMI updates the displayed screen on the next cycle | Changing the Screen from both Touch and Device/PLC |
| Red Lion Crimson 3 | Protocol-specific screen-jump command or numeric write to the screen tag | Driven by Crimson protocol tags; consult Crimson 3 help for the specific protocol | Crimson 3 help, Screen Selection topic |
Across all platforms, the engineering pattern is identical: a single discrete signal from the PLC (a job code or a screen number) is interpreted by the HMI as a command to change screen. The differences are limited to (a) the address type the HMI scans (word vs. bit), (b) the trigger edge the HMI looks for, and (c) whether the HMI acknowledges by writing 0 back or by reading the latest value.
Troubleshooting Matrix
| Symptom | Likely cause | Fix |
|---|---|---|
| PLC bit transitions correctly, button visibility updates, but screen does not change | HMI tag acquisition mode is Cyclic in operation and the source screen is not active | Switch tag to Cyclic continuous, or migrate to Controller Job 51 |
| Screen changes only on the first falling edge of Homed and never again | JobNumber stuck at 51; HMI does not clear its active flag | Add the acknowledge network that writes 0 to DB_HMI_JOB.JobNumber when the HMI has consumed the job |
| Screen changes immediately on every restart, even when Homed is TRUE | JobNumber left at 51 at the end of the previous scan; HMI re-executes on boot | Initialize DB_HMI_JOB.JobNumber := 0 in the startup OB; clear Active on HMI online connection |
| Screen change fires with a delay of several seconds | PROFINET update time too high, or HMI tag acquisition cycle too long | Lower the HMI tag acquisition cycle to 100 ms; check the PROFINET device update time in TIA Portal (≤ 1 ms for TP700 Comfort) |
| Change works from Operation but not from Alarm screen | Tag-based event bound to source screen context | Migrate to Controller Job 51, which is global to the HMI runtime |
| Area pointer shows red exclamation mark in TIA Portal | PLC tag for the pointer is in an inaccessible address area (e.g., outside the configured DB) | Move pointer to a non-optimized DB or to M area; recompile |
Common Commissioning Mistakes
- Re-using a non-retentive tag for the trigger. The PLC must not lose the trigger when it goes through STOP/RUN. Use a retentive bit, or condition the trigger on the rising edge of the HMI tag and the falling edge of Homed simultaneously.
- Assigning the Controller Job to a non-optimized data block only. Optimized DBs remove the ability of the HMI to access the data area by absolute address. Comfort Panels require non-optimized data blocks for area pointers.
- Confusing the HMI screen ID with the HMI screen name. The numeric ID assigned by WinCC Comfort is not the same as the screen name. The ID is the value required by Job 51, while the name is the value shown in the project tree. Always read the ID from the Screen → Properties → Number field.
- Forgetting to remove the operator's manual navigation buttons. If the operator can navigate away from the Homing screen during the homing-lost condition, the PLC-triggered change will still execute on the next scan and pull the screen back. This is usually desired, but on some machines the operator must override to clear a fault. Configure the navigation buttons to be hidden or disabled when Homed = FALSE.
Related Siemens Documentation
- SIMATIC HMI devices Comfort Panels (operating instructions) — area pointer configuration and Job 51 reference.
- Siemens FAQ 93909293 — Change HMI screen from S7 controller by means of a controller job
- WinCC Comfort / WinCC Advanced — Working with area pointers (TIA Portal Help, English).
FAQ
What is the correct Job number to change screens on a Siemens Comfort Panel?
Job 51 (decimal) is the Change Screen job. The PLC writes 51 to the Controller Job area pointer word and the target screen number to the following data word. The HMI acknowledges by writing 0 back to the job number word on the next cycle.
Why does the HMI tag "Activate screen on value change" event not fire when the bit goes low?
Two reasons: (1) the HMI tag's Acquisition mode is "Cyclic in operation" by default, which only polls the tag on the active screen, so transitions on a hidden source screen are not observed; (2) the event dispatcher handles the 1→0 transition less reliably than 0→1. Use Controller Job 51 with falling-edge detection in the PLC to make the change fire on every negative edge from any source screen.
Can the TP700 Comfort acknowledge a Controller Job automatically?
Yes. The HMI writes 0 back to the configured JobNumber word after consuming the job. The PLC should monitor this and clear its local "active" flag so the next trigger re-arms cleanly. Without this step, the next homing-lost event will not re-fire because the job word is still latched at 51.
What acquisition cycle should be used for a cyclic-continuous HMI tag that drives a screen change?
100 ms is the recommended minimum for screen-change commands. Faster cycles add PROFINET load without improving the user experience. On a TP700 Comfort, keep the total number of cyclic-continuous tags under 50 to stay within the panel's poll budget.
Does this procedure work for S7-1500 and S7-300/400 controllers?
Yes. The Controller Job area pointer is supported on every WinCC Comfort / Advanced HMI paired with any SIMATIC S7 PLC that exposes the area pointer. For S7-1500, configure a non-optimized DB to host the JobNumber and DataWord1 tags. The PLC-side ladder / SCL logic is identical to the S7-1200 example above.