S7-1500 Time Sync: Resolving Comfort Panel DST Failures

David Krause9 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

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.

Key constraint: Comfort Panels (TP/Comfort, KP/Comfort, KTP/Comfort) do not run an internal DST algorithm. The "Daylight saving time" check box in the panel's Settings > Date and Time menu only adds a +1 h offset to the displayed time; it never triggers a switch on the correct calendar date. The S7-1500, by contrast, fully implements the EU/US/custom DST rule.

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.
In a redundant S7-1500R/H system, NTP mode must be configured for each CPU individually, as documented in the Time synchronization chapter.

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

  1. The PLC has DST enabled with rule EU and is sending its current local time, already shifted to summer time.
  2. The panel has DST enabled in its control panel.
  3. The panel's DST handling is not an algorithm — it is a constant offset that is applied to whatever time the panel receives.
  4. 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.
Field verification: set the PLC time to 02:59 local, enable DST on both, watch the panel cross to 04:00 instead of 03:00. Likewise in October the panel drops from 03:59 to 01:59 instead of 02:59. The drift always equals one hour.

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.

  1. On the panel project, add a Scheduler (under "Schedules").
  2. 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 SetDaylightSavingTime with state = FALSE.
  3. 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.

Disable the Daylight saving time check box on the panel's control panel UI for end users so they cannot toggle it manually. Set the initial state via the scheduled task on first power-up.

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

  1. 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.
  2. Configure the HMI connection: HMI tags > Connections > HMI connection > Properties > Time synchronization. Set the panel as slave, interval 10 s.
  3. Disable the panel's manual DST toggle: deploy with Daylight saving time = OFF; control access via the user administration.
  4. Add the Scheduler on the panel as described above; compile and download.
  5. 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_T on 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.

Back to blog