Problem Statement: S7-1500 Time Zone Will Not Persist
On a Siemens SIMATIC S7-1500 CPU (specifically reported on the CPU 1511-1 PN), configuring the local time zone in the CPU display or in the Device Configuration of TIA Portal appears to succeed. The selection is acknowledged for approximately one second and then reverts to (Not specified). The same behavior is observed for the Daylight Saving / Summer Time toggle. Re-uploading the project, restarting the CPU, or alternating between RUN and STOP does not resolve the issue. The configured local time rule is never committed to non-volatile storage.
This symptom is tied to early S7-1500 firmware releases (firmware V1.2 on the affected CPU 1511-1 PN) and is resolved by updating to firmware V1.5.1 or later. The condition has also been reproduced on TIA Portal V12 SP1 with the latest available updates at the time of the report. Once the firmware is upgraded, both the HMI-based configuration (CPU display) and the offline/online configuration in TIA Portal persist correctly across power cycles, STOP/RUN transitions, and project downloads.
Affected Hardware and Firmware Versions
The original failure was reported and reproduced on the following baseline:
| Component | Reported Version | Status |
|---|---|---|
| CPU | 6ES7511-1AK02-0AB0 (CPU 1511-1 PN) | Affected at V1.2 |
| Firmware | V1.2 | Defective — fix in V1.5.1+ |
| Engineering | TIA Portal V12 SP1 (latest updates) | Symptom reproducible |
| Display path | CPU display > Settings > Time / Date > Time zone | Reverts to "Not specified" |
| Engineering path | Device Configuration > Properties > Time of day > Time zone | Value not written to CPU |
Although the field report isolates one CPU order number, the same time-zone handling routine is shared across the entire S7-1500 / S7-1200 firmware family. Any CPU running a firmware image predating the fix can exhibit the same defect when the local rule has not yet been committed.
Root Cause Analysis
The S7-1500 stores the active time rule in a non-volatile system data block. The CPU display and TIA Portal both write the user-selected zone through the same system service ("Set time zone", SET_TIMEZONE). On the affected firmware revisions the write transaction is acknowledged but the firmware does not flush the pending buffer into the system data area, so the next read (triggered automatically after roughly one second of idle time, after a STOP→RUN transition, or after project download completion) reads the previous, empty record.
Three observable consequences confirm the diagnosis:
- The display shows the value for ~1 s and then flips back to
(Not specified)on its own, without user interaction. - The same value is never stored after a project download, even when TIA Portal reports the configuration as transferred.
- The summer/daylight-saving toggle behaves identically because it is part of the same rule record.
Siemens corrected the flush logic in firmware V1.5.1 for the CPU 1511-1 PN and released coordinated updates for the wider S7-1500 CPU family. After the update, the write transaction is fully atomic: the zone is committed, acknowledged, and survives power-down.
Solution: Upgrade Firmware to V1.5.1 or Later
The verified, supported fix is to update the CPU firmware. Siemens distributes firmware as signed .upd files via the Siemens Industry Online Support portal. The order numbers and update files for the CPU 1511-1 PN are listed under the product tree.
Prerequisites
- Online connection from TIA Portal to the target CPU (PROFINET or PROFIBUS, depending on CPU variant).
- Latest Service Pack of TIA Portal installed; V12 SP1 or later is sufficient for V1.5.1 firmware updates, although a more recent TIA Portal version is recommended.
- The
.updfirmware file for the exact order number of the CPU (for example6ES7511-1AK02-0AB0). Using a mismatched firmware file is rejected by the loader. - A 32 GB or smaller SIMATIC memory card is recommended if the update is to be performed via card (alternative to online update).
Step-by-Step Procedure (Online Update via TIA Portal)
- Open the project in TIA Portal, expand the project tree and select the S7-1500 CPU.
- Navigate to Online > Accessible nodes and connect to the CPU.
- Right-click the CPU > Online & diagnostics > Functions > Firmware update.
- Browse to the downloaded
.updfile matching the CPU order number. - Select the target firmware version (V1.5.1 or later) and confirm. The CPU performs an automatic STOP during the update.
- Wait for the firmware loader to report a successful update. The CPU performs one or more restarts; do not interrupt power.
- After the CPU returns to operating mode, reconnect and verify the firmware version under Online & diagnostics > Diagnostics > General.
Step-by-Step Procedure (Update via SIMATIC Memory Card)
- Copy the
.updfirmware file to the root directory of a formatted SIMATIC memory card. - Insert the card into the CPU and power-cycle. The CPU detects the firmware file automatically.
- Confirm the update on the CPU display when prompted.
- After completion, remove the card if not needed for program storage.
Verification: Confirming the Fix
After the firmware upgrade, re-test the time zone configuration through both available paths to confirm complete resolution.
Path A — CPU Display
- From the CPU display, navigate to Settings > Time / Date > Time zone.
- Select the required zone (for example
(UTC+01:00) Berlin, Bern, Rome, Stockholm, Vienna) and acknowledge with OK. - Cycle power to the CPU or perform a STOP→RUN transition.
- Re-enter the menu. The selected zone must persist.
Path B — TIA Portal Project Configuration
- In the project tree, select the CPU and open Properties > Time of day.
- Set Time zone and confirm that Apply daylight saving / standard time changeover is enabled if required.
- Compile the project (Hardware and Software).
- Download the configuration to the CPU.
- Read the configuration back online and confirm the values are persistent.
According to the Siemens S7-1500 functional manual — Setting and reading the time of day, time and date settings can also be written from the Online & diagnostics > Functions > Set time menu without altering project data, which is useful for ad-hoc corrections and for verifying persistence on the bench.
Programmatic Alternative: SET_TIMEZONE Instruction
For applications that need to change the time zone at runtime (for example mobile machines moving across regions, or a redundant pair that must follow a GPS-derived longitude), Siemens provides the SET_TIMEZONE instruction. The instruction is documented under entry ID 109747174 — SET_TIMEZONE: Set time zone (S7-1200, S7-1500) in the Siemens support database.
Instruction Interface (SCL)
// FB "SetLocalTimeZone"
// Writes the local time rule to the CPU clock
#instSetTimezone(
REQ := TRUE, // Start on rising edge
TIMEZONE := "(UTC+01:00) Vienna", // WString time-zone string
DST := TRUE, // Apply daylight saving
DONE => #doneFlag,
BUSY => #busyFlag,
ERROR => #errorFlag,
STATUS => #statusWord);
IF #errorFlag THEN
// Log STATUS to diagnostic buffer; common cause on legacy firmware:
// STATUS = 0x80B1 (zone rule rejected — see firmware release notes)
END_IF;
Parameter Reference
| Parameter | Type | Meaning |
|---|---|---|
REQ |
BOOL | Trigger; rising edge starts the operation |
TIMEZONE |
WSTRING | Time-zone descriptor in brackets, e.g. (UTC+01:00) Berlin, Bern, Rome, Stockholm, Vienna
|
DST |
BOOL | Daylight saving rule flag |
DONE |
BOOL | 1 = operation completed successfully |
BUSY |
BOOL | 1 = operation in progress |
ERROR |
BOOL | 1 = error; see STATUS |
STATUS |
WORD | Error / status word (see instruction help) |
DONE = TRUE but the rule will still be discarded on the next housekeeping cycle. Always pair a SET_TIMEZONE write with a verification read using RD_SYS_T (read CPU time, returns DTL including the active zone offset).
Related Time-of-Day Instructions
Engineers working through the same symptom should also be aware of the broader time-of-day instruction set used for diagnostics, synchronization, and time arithmetic on the S7-1500 platform:
| Instruction | Purpose |
|---|---|
RD_SYS_T |
Read current CPU time-of-day (returns DTL) |
WR_SYS_T |
Write CPU time-of-day |
SET_TIMEZONE |
Set local time zone and DST rule |
RTM (Run-time meter) |
Read / reset operating-hours counters |
TIME_TCK |
Read 64-bit system tick (100 ns, monotonic) |
SET_CLK |
Synchronize slave clocks via S7 communication |
The DTL structure returned by RD_SYS_T contains a TIMEZONE field that reflects the currently active rule. If the firmware defect is still active, this field will read back as an empty rule even after SET_TIMEZONE reports success — confirming that the failure is on the write side.
Time Synchronization Topology on S7-1500
The local time zone is only one half of a complete time-of-day strategy. In multi-CPU plants, the S7-1500 can act as either a time master or a time slave and can accept synchronization from external sources. Confirming the time-zone persistence fix in isolation is necessary but not sufficient for a fully time-correct installation.
Supported Synchronization Methods
| Method | Use case | Configuration path |
|---|---|---|
| NTP client | Plant-wide UTC source | Device configuration > Time of day > NTP mode |
| S7 communication time slave | Master/slave in SIMATIC-only plants | Properties > Time synchronization > Slave |
| PROFINET time sync (RTC) | High-precision PROFINET networks | PROFINET interface > Real-time settings |
| Manual set | Bench / commissioning | Online & diagnostics > Set time |
When the CPU is configured as an NTP client, the time-zone setting is critical: the CPU receives UTC and applies the local zone rule to derive local time. A missing or invalid zone rule therefore produces timestamps that are technically correct in UTC but offset incorrectly in any local-time presentation (HMI, logs, recipe time stamps). Updating the firmware to V1.5.1+ restores the zone write so that NTP-synchronized local time becomes accurate.
Troubleshooting Matrix
| Symptom | Likely cause | Corrective action |
|---|---|---|
| Time zone reverts to "Not specified" after ~1 s on the CPU display | Firmware defect (V1.2 era) | Update firmware to V1.5.1 or later |
| Time zone written in TIA Portal but not committed to the CPU after download | Same firmware defect — write transaction silently dropped | Update firmware; re-download configuration |
SET_TIMEZONE reports DONE = TRUE but next RD_SYS_T shows empty zone |
Same firmware defect, observed programmatically | Update firmware; verify with RD_SYS_T
|
| Display accepts the zone but TIA Portal online view shows empty zone | Write dropped before NV commit | Update firmware |
| Display accepts the zone, but time still wrong after NTP sync | Zone committed but DST flag not applied | Enable "Apply daylight saving / standard time changeover" in device configuration; re-download |
| Display freezes on the Time / Date menu | Display fault, not time-zone fault | Update display firmware (separate from CPU firmware); replace CPU if persistent |
| Time drifts by minutes per day | Hardware RTC drift or insufficient synchronization interval | Configure NTP with ≤ 60 s poll; verify SNTP server reachability |
Best-Practice Checklist After the Fix
- Document the active firmware version for every CPU in the plant; record it in the project header and the asset database.
- Configure the time zone in TIA Portal, not on the CPU display, so the value is part of the project archive and version-controlled.
- Enable daylight saving handling if the plant operates in a jurisdiction that observes DST. Failure to do so produces a 1-hour drift twice per year.
- Configure NTP for any multi-CPU installation so that all clocks are derived from a single UTC source.
- Verify online after every project download by reading back the time zone using Online & diagnostics > Time of day or by reading the DTL.TIMEZONE field in a watch table.
-
Add a runtime check: a periodic task that calls
RD_SYS_T, validatesTIMEZONE, and raises an alarm if the zone is empty. This is the only programmatic way to catch a regression of the same defect on a different CPU or a rolled-back firmware image. - Subscribe to Siemens Product Notifications for each CPU order number so future firmware regressions of the same family are flagged before they affect production.
Edge Cases and Field-Proven Caveats
- Time-zone string format: The descriptor must match the strings exposed by TIA Portal exactly. Custom strings are rejected with a STATUS word error. If you build the string dynamically (for example, from a recipe), validate it against the canonical list before issuing SET_TIMEZONE.
- Concurrent writes: If both the CPU display and a user program call SET_TIMEZONE within the same scan, the last write wins, but the firmware bug described above would discard both. After the fix, the writes are still racy — coordinate the source of truth (display or program) in your operating procedure.
- Project archive portability: A project compiled against one firmware revision and loaded onto a CPU running an older firmware will silently strip the zone. Always confirm the CPU firmware is at or above the version that compiled the project.
- Redundant S7-1500R/H: On redundant systems, the zone rule is part of the system data that synchronizes between primary and backup. If the primary is running older firmware than the backup, the rule may not propagate correctly. Run matched firmware across the pair.
- ET 200SP CPU: The same defect and the same fix apply to the ET 200SP CPU family because the time-of-day subsystem is shared with the S7-1500 line. Always verify against the firmware release notes for the specific order number.
Commissioning Procedure (Post-Fix Verification)
Use this bench procedure to confirm a complete fix before deploying to the plant:
- Power the CPU, connect online, and confirm firmware ≥ V1.5.1.
- Set the time zone on the CPU display to the target zone; confirm it persists across a power cycle.
- Open the project in TIA Portal, set the same zone in the device configuration, compile and download.
- Reconnect online; verify the value in Online & diagnostics > Time of day.
- Place a
RD_SYS_Tinstance in a watch table; trigger a single read and confirm theTIMEZONEfield in the returned DTL is populated. - Configure an NTP server, force a sync, and confirm that local time displayed on the HMI matches wall-clock local time to the second.
- Toggle the DST flag (if applicable) and verify the 1-hour shift at the next scheduled changeover.
FAQ
Why does my S7-1500 CPU display show "(Not specified)" immediately after I select a time zone?
This is a firmware defect in early S7-1500 releases (V1.2 on CPU 1511-1 PN). The write transaction is acknowledged but never committed to non-volatile storage. Update the CPU firmware to V1.5.1 or later to permanently resolve the issue.
Will upgrading TIA Portal fix the S7-1500 time zone reversion?
No. The defect is in the CPU firmware, not in the engineering software. TIA Portal V12 SP1 already contains a valid configuration payload; the problem is that the CPU discards the payload. Only a CPU firmware update corrects the underlying flush logic.
Can I set the time zone programmatically instead of through the CPU display?
Yes. Use the SET_TIMEZONE instruction (Siemens support entry ID 109747174). On affected firmware, the instruction returns DONE = TRUE but the value is still discarded. Always pair the write with a verification read using RD_SYS_T and inspect the TIMEZONE field of the returned DTL.
Where do I find the official firmware file for the CPU 1511-1 PN?
Signed firmware .upd files are available in the Siemens Industry Online Support portal under the product tree for the exact order number (for example 6ES7511-1AK02-0AB0). Always verify the order number before downloading — a mismatched firmware file is rejected by the loader.
Does the same time zone defect affect the S7-1200 or ET 200SP CPU?
The S7-1200 / ET 200SP CPU family shares the SET_TIMEZONE instruction and the time-of-day subsystem with the S7-1500 line, so the same firmware-class defect could appear on early revisions. Always consult the firmware release notes for the specific order number and apply the recommended update.