Resolving 24H Time Format Display on Siemens KTP700 Basic HMI
Problem Overview
Engineers commissioning a SIMATIC KTP700 Basic panel with an S7-1200 CPU frequently encounter a situation in which the time field displays in 12-hour format (with AM/PM suffix) regardless of the regional settings on the HMI runtime. The clock continues to advance correctly, but the visual representation remains locked in 12-hour notation, and the System Events tab under HMI alarms is missing from the project tree in TIA Portal.
This condition is documented across the following combinations:
- KTP700 Basic (6AV2 123-2GB03-0AX0), KTP700 Basic DP (6AV2 123-2GA03-0AX0)
- S7-1200 CPU family (CPU 1211C through CPU 1215C, including DC/DC/DC and AC/DC/RLY variants)
- TIA Portal V14 SP1 Professional, V15.x, V16, V17
Root Cause Analysis
The 12-hour/24-hour toggle for a Basic Panel is controlled by two cooperating configuration items:
- HMI System Event IDs 330018 (Time format) and 330019 (Date format), found under HMI Alarms → System Events in the project tree.
-
Per-language text lists for the time and date display, which use format strings such as
h:mm:ss ttorH:mm:ss. The lowercasehtriggers 12-hour mode and thetttoken inserts AM/PM.
When TIA Portal does not show the System Events tab, the root cause is one of the following:
| Cause | Indicator | Affected Versions |
|---|---|---|
| WinCC Basic installed only | System Events tab is hidden; only "Alarm settings" and "Alarm classes" appear under HMI alarms | TIA Portal V14, V14 SP1 |
| Runtime language order mismatch | Tab is visible but format change does not propagate to the panel | V14 SP1 through V17 |
| Project language set incorrectly | Format change applies in engineering but runtime still shows 12H | V15 through V17 |
| Firmware < V14.0.0.0 on Basic Panel | Some tokens ignored; firmware update required | Older Basic Panels |
Prerequisites
Before applying any fix, verify the following:
- TIA Portal version: Confirm via Help → About. The project must be opened in the version that originally generated it, or a newer compatible version.
- WinCC edition: In Control Panel → Programs and Features, verify whether WinCC Comfort or WinCC Advanced is installed. A pure WinCC Basic installation will hide the System Events tab on Basic Panels.
- Panel firmware: KTP700 Basic must run firmware V14.0.0.0 or higher to support all format tokens. Use Online → Accessible devices in TIA Portal to read the firmware version.
- PLC ↔ HMI connection: A valid PROFINET or PROFIBUS route must exist. Without a route, configuration downloads will fail silently.
- Project languages configured: At least one runtime language must be defined under HMI → Languages & Resources → Project languages.
Resolution Method 1 — Install WinCC Comfort/Advanced
The cleanest, version-agnostic fix is to upgrade the engineering software installation. Since TIA Portal V15, the WinCC Basic standalone SKU was retired; every Professional license now includes the Comfort/Advanced editor and exposes the System Events tab even for Basic Panels. Engineers still on V14 must add the Comfort or Advanced license.
- Close TIA Portal completely.
- Insert the TIA Portal installation media or mount the downloaded ISO.
- Run the setup and select Modify installation.
- Enable SIMATIC WinCC Comfort/Advanced V14 SP1 (or matching version).
- Complete the installation and restart the engineering station.
- Reopen the project and confirm HMI Alarms → System Events is now visible.
Once visible, double-click System Events and filter for ID 330018. The default text contains a placeholder that resolves at runtime to the configured time format.
Resolution Method 2 — Fix Runtime Language Order
The language order determines which language's text list is consulted first at runtime. If the active runtime language has its time format string still set to h:mm:ss tt, all other fixes are bypassed. This is the most common cause when the System Events tab is present but the runtime ignores the change.
- Navigate to HMI → Languages & Resources → Project languages.
- Open Runtime language order.
- Ensure the desired language (e.g., English (USA)) sits at position 0. If position 0 is "
" or an unused language, the runtime falls through to a default that may carry the legacy 12-hour string. - Click Set as active for the language you want to test, then compile.
- Download the HMI configuration to the panel.
Resolution Method 3 — Edit Format Strings Per Language
For projects where installing Comfort/Advanced is not feasible (locked-down IT environment, license unavailable), edit the format strings directly in the language-dependent text lists.
- Navigate to HMI → Languages & Resources → Project texts.
- Filter the Text ID column for entries containing
mm:ssorhh:mm. - Identify the time-of-day display strings. Typical default values:
-
h:mm:ss tt— 12-hour format with AM/PM -
HH:mm:ss— 24-hour format -
hh:mm:ss tt— 12-hour with leading zero and AM/PM
-
- For each language defined in the project, replace the 12-hour string with the equivalent 24-hour string:
-
h:mm:ss tt→H:mm:ss -
hh:mm:ss tt→HH:mm:ss
-
- Repeat for every language tab in the editor (English, German, French, etc.).
- Compile → Download to device → Reboot the panel.
H always denotes 24-hour clock, lowercase h denotes 12-hour clock. The trailing tt token is the AM/PM designator. Removing tt alone is not sufficient — you must also change h to H.Time/Date Format Token Reference
The S7-1200 and the Basic Panel runtime both follow the .NET-style format specifier set. The tokens relevant to time and date display are summarized below.
| Token | Meaning | Example | Clock mode |
|---|---|---|---|
h |
Hour, no leading zero | 3 | 12-hour |
hh |
Hour, leading zero | 03 | 12-hour |
H |
Hour, no leading zero | 15 | 24-hour |
HH |
Hour, leading zero | 15 | 24-hour |
mm |
Minute, leading zero | 07 | both |
ss |
Second, leading zero | 42 | both |
tt |
AM/PM designator | PM | 12-hour |
d |
Day of month, no leading zero | 7 | n/a |
dd |
Day of month, leading zero | 07 | n/a |
MMM |
Month abbreviation | Nov | n/a |
MMMM |
Month full name | November | n/a |
yy |
Two-digit year | 24 | n/a |
yyyy |
Four-digit year | 2024 | n/a |
The TIME data type on the S7-1200 is stored internally as a signed 32-bit double integer representing milliseconds, per the S7-1200 manual collection. Negative values represent time deltas counted backwards from zero. The panel runtime reinterprets this value through the format string at the moment of display, so the storage encoding is unaffected by the format choice.
System Events 330018 and 330019
Event IDs 330018 and 330019 are reserved by WinCC for the panel's date and time format announcement. On a Basic Panel, the default behavior is to honor whatever format is selected in the panel's regional settings. Editing the event text does not by itself force the format change — the panel must have the corresponding System Event enabled under Alarm settings.
| Event ID | Default text | Purpose |
|---|---|---|
| 330018 | Time format changed | Confirms panel-side time format change |
| 330019 | Date format changed | Confirms panel-side date format change |
| 100001 | Startup completed | Useful for confirming a fresh boot after download |
Version-Specific Behavior
| TIA Portal version | WinCC Basic SKU available? | System Events tab on Basic Panels | Workaround required? |
|---|---|---|---|
| V13 SP2 | Yes | No | Edit text lists only |
| V14 | Yes | No | Install Comfort/Advanced or edit text lists |
| V14 SP1 | Yes | No | Install Comfort/Advanced or edit text lists |
| V15 | No (merged into Pro) | Yes | Optional |
| V15.1 | No | Yes | Optional |
| V16 | No | Yes | Optional, but language-order bug still present |
| V17 | No | Yes | Optional |
Step-by-Step Verification Procedure
After applying any fix, validate the change with the following sequence:
- Open the project in TIA Portal and select the HMI device.
- Click Go online and establish the HMI connection.
- From the online panel, trigger Reboot to force a cold start with the new configuration.
- After reboot, observe the time field on the configured screen. It must show
HH:mm:ssnotation without AM/PM. - Switch the runtime language to each language defined in the project (using a language-switch button on the panel) and re-verify. This catches per-language overrides.
- Power-cycle the panel by interrupting the 24 V supply for at least 10 seconds, then restoring power. The format must persist.
- If the format reverts, the project download did not include the text lists — recompile with Compile → Software (rebuild all) and re-download.
Troubleshooting Matrix
| Observed behavior | Likely cause | Corrective action |
|---|---|---|
| 12H persists, System Events tab missing | WinCC Basic only installed | Install WinCC Comfort/Advanced or upgrade to V15+ |
| 12H persists, System Events tab visible | Language order issue or per-language override | Reorder runtime languages; edit text lists for each language |
| 24H in engineering, 12H on panel | Format string still contains lowercase h in one language |
Search all language tabs for h: prefix |
| Format correct but seconds drift | PLC ↔ HMI time sync disabled | Enable Set time-of-day on the HMI connection |
| Panel shows "Invalid time" | PLC TIME variable not initialized | Use RD_LOC_T or initialize with T#0s
|
| Time field greyed out | Variable connection broken | Re-link the IO field to the PLC clock tag |
| Format reverts after firmware update | Firmware upgrade reset regional settings | Re-apply regional settings and re-download project |
PLC Time Synchronization
The HMI displays whatever time the PLC reports. To force the PLC to publish its clock to the HMI:
- Select the HMI device in the project tree.
- Open Connections and double-click the PROFINET connection to the S7-1200.
- Navigate to the Time synchronization section.
- Enable PLC is the time master (or HMI is the time master, depending on architecture).
- Compile and download.
On the PLC side, the RD_LOC_T (Read local time) instruction in the S7-1200 returns the current CPU time as a DTL (Date and Time Long) structure, which can then be scaled and sent to the panel.
Notes on Basic Panel Firmware
Older KTP700 Basic units shipped with firmware V12 or V13. These firmware revisions do not respect all .NET-style format tokens — specifically, the AM/PM tt designator may render as a literal string. Updating the panel firmware to V14.0.0.0 or later resolves this. Use the Siemens SIMATIC Automation Tool or the panel's service menu (accessible by holding the lower-left corner during power-up) to apply firmware.
Field-Proven Caveats
- Editing text lists in Project texts affects every screen that references those IDs. There is no per-screen override.
- If the project uses Reference projects for shared text libraries, the language order must be set in both the master and the referencing project.
- Some third-party panels (Pro-face, Beijer) emulating the Basic Panel protocol ignore the
tttoken entirely and always render 24-hour; this article does not apply to those devices. - Sm@rt Server / Sm@rtClient sessions mirror the panel's display, so a format change on the panel is visible remotely without any additional configuration.
FAQ
Why is the System Events tab missing in TIA Portal V14 SP1?
If only WinCC Basic is installed (no Comfort or Advanced), the tab is hidden because Basic Panels are not intended to use system events. Install WinCC Comfort or Advanced, or upgrade to TIA Portal V15 or later where the SKU split was removed.
What format string switches a Basic Panel from 12-hour to 24-hour display?
Replace the lowercase h with capital H and remove the trailing tt AM/PM token. For example, change h:mm:ss tt to H:mm:ss. Apply this change in every language tab under Project texts.
The time format is correct in engineering but still 12-hour on the panel. What is wrong?
Check the runtime language order under HMI → Languages & Resources → Project languages. Position 0 must be assigned to a real language, not to "<Fallback>". Also verify that the format string edit was applied to every language tab, not just the active one.
Does changing the time format affect PLC program execution?
No. The S7-1200 TIME data type is stored as a signed 32-bit integer in milliseconds. The format string only controls how the value is rendered on the HMI screen; the underlying value and any logic that uses it are unaffected.
Will the format survive a firmware update on the KTP700 Basic?
Not necessarily. A major firmware upgrade can reset regional settings and overwrite text lists. After any firmware change, recompile the project, re-download, and re-verify the time format on the live panel.