Overview
Time-of-day synchronization between a SIMATIC S7-1500 CPU (e.g. CPU 1512F-1 PN) and a SIMATIC TP900 Comfort panel is straightforward in principle, but daylight saving time (DST) handling differs between the two devices. The S7-1500 CPU performs the DST switch automatically based on the configured time zone and DST rules in the device configuration. The TP Comfort Panel only supports a manual one-hour offset that the operator can enable or disable from the control panel; it cannot trigger an automatic DST change on its own.
When the PLC pushes time to the panel via HMI synchronization, the panel clock drifts by exactly one hour at every DST transition if the PLC's DST configuration and the panel's DST toggle are not coordinated. This article documents the synchronization paths, the root cause of the one-hour drift, and a Siemens-supported workaround that drives the panel's DST offset through a system function scheduled on the panel itself.
Synchronization Architectures
Three practical paths exist to keep the panel clock aligned with the S7-1500.
| Method | Direction | DST behaviour | Configuration surface |
|---|---|---|---|
| CPU as NTP client of an external NTP server | NTP → CPU | CPU applies DST rule from HW config | CPU > Properties > General > Time |
| HMI connection "Slave" mode | CPU → HMI (cyclic) | CPU pushes already-DST-correct time; HMI applies its own offset | HMI connections > Time synchronization |
| Area pointer "Date/Time" (PLC → HMI) | CPU → HMI (cyclic data block) | Same as above; time stamp is sent as UTC + status byte | HMI connections > Area pointers |
| Panel internal NTP client (WinCC RT) | NTP → Panel | Panel reads UTC and applies its (limited) DST rule | Panel > Control Panel > Date/Time |
Reference: Time synchronization (S7-1500R/H redundant system manual) and Time synchronization (S7-1500 / ET 200MP manual).
S7-1500 CPU Time Configuration
In TIA Portal, open the device configuration of the S7-1500 CPU and navigate to Properties > General > Time. The relevant parameters are:
- Time source: None, NTP, or Follow last time-of-day frame from a non-Siemens master.
- NTP server 1..4: IPv4 addresses; transmission interval defaults to 16 s for the S7-1500 (firmware ≥ V2.0).
- Time zone: e.g. (UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna.
- Activate daylight saving time: enables the internal DST algorithm.
- DST rule: EU, US, or User-defined. EU = last Sunday of March 01:00 UTC → last Sunday of October 01:00 UTC.
Programmatic read/write is available via the extended instructions WR_SYS_T (set time-of-day, DTL), RD_SYS_T (read local time, DTL), RD_LOC_T (read local time without DST flag), and the time-conversion blocks TIME_TCK, BT_DT, DT_TOD. DST status is exposed via system clocks and the STATUS byte of the time-of-day tags read with RD_SYS_T (bit RET_VAL.STW.0 = summer-time flag in firmware ≥ V2.0).
HMI Synchronization: Slave Mode vs. Area Pointer
| Property | HMI connection "Slave" mode | Area pointer "Date/Time-PLC" |
|---|---|---|
| Update rate | Default 10 s, configurable 1–600 s in TIA V17+ | Same as PLC scan; default OB1 cycle |
| Wire mechanism | Implicit, internal to WinCC | Defined DB of type "Date and Time" |
| DST flag transferred | Yes (in the internal HMI time frame) | Yes (status byte bit 0 of DTL) |
| CPU load | Negligible | DB update each scan cycle |
| Same DST pitfall | ||
| Panel behaviour | Accepts CPU time then adds its own DST offset | Identical |
Both methods send a UTC-equivalent time with a DST flag. The Comfort Panel runtime ignores the flag for its own DST toggle; instead it adds a fixed +1 h offset whenever its Daylight saving time check box is enabled. Hence the panel clock ends up at PLC_time + 1 h during summer if the toggle is left on after the PLC has already switched to summer time, or at PLC_time − 1 h if the toggle was left on through the autumn transition.
Root Cause of the One-Hour Drift
- The PLC has DST enabled with rule EU and is sending its current local time, already shifted to summer time.
- The panel has DST enabled in its control panel.
- The panel's DST handling is not an algorithm — it is a constant offset that is applied to whatever time the panel receives.
- Result: panel displays UTC + 2 h in summer instead of the correct UTC + 2 h, and the user-visible drift is exactly one hour, regardless of which synchronization mode is used.
Supported Workaround: Schedule the DST Toggle on the Panel
Siemens documents this in Entry ID 109482675 ("How do you configure automatic daylight saving time change on Comfort Panels?"). The recipe is to drive the panel's DST flag from a scheduled task that runs a system function at the EU DST boundary.
- On the panel project, add a Scheduler (under "Schedules").
- Create two weekly triggers:
-
Spring: Last Sunday of March, 01:00 local — action: run
SetDaylightSavingTime(system function) with state = TRUE. -
Autumn: Last Sunday of October, 01:00 local — action: run
SetDaylightSavingTimewith state = FALSE.
-
Spring: Last Sunday of March, 01:00 local — action: run
- Make sure the PLC pushes the correct local time (DST already applied) so the panel schedule fires at the right instant.
Because the PLC remains the master of DST, both devices agree: PLC = UTC + DST, panel = (PLC time) + (panel DST flag) and the panel DST flag is now flipped at exactly the same instant as the PLC.
Alternative: NTP on the Panel
If the panel runs WinCC Comfort/Advanced V15.1 or later, you can enable an NTP client directly on the panel (Control Panel > Date/Time > Time server). This bypasses the PLC for time sync but the DST behaviour is still a one-hour offset; you must drive that offset with the same scheduler workaround above.
Step-by-Step Commissioning Procedure
- Configure the CPU: project > CPU > Properties > Time. Set NTP servers if available; otherwise leave None and rely on HMI sync. Set the correct time zone and enable DST with rule EU/US/Custom.
- Configure the HMI connection: HMI tags > Connections > HMI connection > Properties > Time synchronization. Set the panel as slave, interval 10 s.
- Disable the panel's manual DST toggle: deploy with Daylight saving time = OFF; control access via the user administration.
- Add the Scheduler on the panel as described above; compile and download.
- Verify the boundary: simulate the transition by changing the PLC time to 00:59 the day of the switch; observe the panel clock and the panel scheduler log at 01:00.
Verification Matrix
| Check | Expected result | Diagnostic |
|---|---|---|
| Panel time follows PLC time | Drift ≤ 10 s | Monitor the area pointer DB; compare to PLC clock |
| Spring DST transition | Panel clock jumps 1 h forward at the same instant as the PLC | Cross-trigger via scheduler log |
| Autumn DST transition | Panel clock jumps 1 h backward at the same instant as the PLC | Same |
Manual PLC time write via WR_SYS_T
|
Panel follows within one sync interval | Watchdog in WinCC diagnostic view |
| Loss of HMI connection > 30 s | Panel holds last time and shows the lost-connection alarm | Connection diagnostics in WinCC |
Troubleshooting Matrix
| Symptom | Likely cause | Remedy |
|---|---|---|
| Panel clock exactly +1 h off in summer | Panel DST toggle ON, PLC already in summer time | Apply the scheduler workaround; keep PLC DST ON |
| Panel clock exactly −1 h off in winter | Panel DST toggle ON from previous summer and never cleared | Clear panel toggle once after first scheduler cycle |
| Panel clock drifts continuously | No time sync configured or slave flag missing | Enable HMI connection "Slave" mode; interval 10 s |
| Scheduler does not fire | Time zone on panel differs from PLC; trigger fires on UTC date | Set panel time zone identical to PLC project |
| PLC switches DST on wrong date | Wrong DST rule selected (US vs. EU) | Properties > Time > DST rule = EU (or US/Custom) |
| NTP server unreachable | Firewall or wrong IP in CPU time configuration | Ping NTP from CPU web server; check Diagnostics > Time |
| Time jumps when project is downloaded | PG/PC time pushed to PLC during download | Disable "Set PG/PC time on download" in TIA |
Field-Proven Notes
- Always configure the PLC as the DST master; never rely on the panel's calendar.
- For non-EU time zones use the User-defined DST rule with explicit start/end transitions.
- If you use
RD_SYS_Ton the PLC, propagate the resulting DTL tag to a separate DB and use the area pointer — do not write the panel DST offset from the PLC program, the panel runtime ignores PLC-written DST bits. - Redundant S7-1500R/H systems must be NTP-configured per CPU; HMI sync to a primary CPU only does not synchronize the backup.
- Always verify the time zone string in the panel Control Panel matches the PLC project; off-by-one is the most common cause of "scheduler doesn't fire".
Why does my TP900 Comfort Panel stay one hour off after the EU DST change?
Comfort Panels do not implement an automatic DST algorithm; their DST check box only adds a fixed +1 h offset. The S7-1500 sends the already-correct local time, so the panel ends up at PLC time plus an extra hour. Drive the panel's DST flag from a Scheduler task that fires at the EU boundary, as described in Siemens Entry ID 109482675.
What is the difference between HMI "Slave" mode and the Date/Time area pointer?
Slave mode transfers time through the HMI connection on a configurable interval (default 10 s) without an explicit DB on the PLC. The Date/Time area pointer writes a DTL tag from a defined DB each PLC cycle. Both send the local time including DST flag, and both fall to the same DST pitfall on Comfort Panels.
How do I configure NTP time synchronization on the S7-1500?
Open the CPU in STEP 7 / TIA Portal, go to Properties > General > Time, choose NTP, enter up to four server IPs, set the time zone and DST rule. Synchronization interval is 16 s by default. In a redundant S7-1500R/H system this configuration must be repeated for each CPU individually.
Which Siemens entry documents the workaround for automatic DST on Comfort Panels?
Entry ID 109482675 "How do you configure automatic daylight saving time change on Comfort Panels?" describes the Scheduler + system function approach. The general time-sync FAQ is 69864408.
Can the PLC write the DST flag directly to the panel?
No. The DST bit in the area pointer's DTL status byte is consumed by the panel runtime, but the panel's DST toggle is independent and cannot be set from a PLC tag. Use the panel Scheduler with the SetDaylightSavingTime system function to flip it locally.