Resolving Siemens MP277 Error 70011 "Date/Time Could Not Be Set"
The Siemens SIMATIC MP277 (and related TP/Comfort/MP377 platforms) generates the persistent system message
Date/Time could not be set, error code: 13,2 MsgClass: 3 MsgNumber: 70011
at a default cadence of one entry per minute whenever the panel fails to apply the date/time it reads from the connected S7 PLC through the configured area pointer. The flood of identical entries fills the alarm buffer, masks genuine alarms, and signals a structural misconfiguration rather than a transient network event. This reference covers root causes, byte-level analysis of the DATE_AND_TIME and DTL structures, configuration paths in both WinCC flexible 2008 and TIA Portal, and field-proven verification steps.
1. Affected Hardware, Firmware, and Software
| Item | Details |
|---|---|
| Panel family | SIMATIC MP277 (8", 10", 12" touch and key variants) |
| Related panels exhibiting same error | TP900 Comfort, MP377, TP177B, KTP1200 Basic, all WinCC Runtime Advanced panels |
| Panel firmware | MP277 image V1.x and V2.x; later images recommended |
| Configuration tool (legacy) | WinCC flexible 2008 SP5 (or later SP) |
| Configuration tool (current) | TIA Portal V13 / V14 / V15 / V16 / V17 / V18 with WinCC Comfort or WinCC Advanced |
| PLC families supported | S7-200, S7-300, S7-400, S7-1200, S7-1500, ET 200S CPU, LOGO! (8.FS4+) |
| Connection types | MPI, PROFIBUS, PROFINET, Industrial Ethernet |
| Runtime involved | WinCC flexible Runtime, WinCC Runtime Advanced |
The MP277 device manual is published under Siemens Industry Online Support entry 23337820. The companion KB article that walks through date/time synchronization between an HMI and an S7-300/400 PLC is published under 109813307.
2. Decoding the Error Structure
WinCC flexible / WinCC Runtime Advanced system messages follow a three-part structure:
| Field | Value reported | Meaning |
|---|---|---|
| MsgClass | 3 | Warning level (does not stop runtime; logs but does not require acknowledgement for continued operation) |
| MsgNumber | 70011 | WinCC internal ID for "Date/Time could not be set" |
| Error code | 13,2 | System class 13 (date/time conversion), sub-cause 2 (value range / weekday failure) |
System class 13 covers date and time conversion routines within the WinCC runtime. Sub-cause 2 specifically indicates that the eight or twelve bytes received from the area pointer could not be decoded into a valid calendar value. Common triggers include:
- Weekday field outside the 1–7 range.
- Month field equal to 0 or greater than 12.
- Day field equal to 0 or exceeding the maximum valid day for the given month and year (including leap-year handling).
- Hour outside 0–23, minute or second outside 0–59.
- Source tag data type is not DATE_AND_TIME (DT) or DTL.
- Source tag address is invalid or not currently accessible (DB not loaded, optimized block access restrictions, wrong slot).
3. How the Time Synchronization Area Pointer Works
The WinCC runtime pulls date and time from a configured memory area in the PLC once per acquisition cycle. The connection object exposes this as a special area pointer called "Date/Time PLC" (WinCC flexible) or "Date/time" (TIA Portal). When the pointer is enabled, the runtime reads the configured length from the configured start address each cycle, decodes the bytes into a calendar value, and attempts to apply the new system time to the HMI.
4. DATE_AND_TIME Byte Layout (S7-300 / S7-400)
DATE_AND_TIME is an 8-byte BCD-encoded structure stored in big-endian order. The HMI decodes the bytes in this exact order:
| Byte offset | Content | BCD range | Notes |
|---|---|---|---|
| +0 | Year (century) | 19, 20 | BCD; 19 = 1900s, 20 = 2000s |
| +1 | Year (within century) | 00–99 | BCD; e.g., 24 = 2024 |
| +2 | Month | 01–12 | BCD |
| +3 | Day | 01–31 | BCD; validated against month and leap year |
| +4 | Hour | 00–23 | BCD |
| +5 | Minute | 00–59 | BCD |
| +6 | Second | 00–59 | BCD |
| +7 | ms_high / ms_low / weekday | 0–999 ms, weekday 1–7 | ms occupies upper three nibbles (3 BCD digits), weekday in low nibble. 1 = Sunday in WinCC decoding, 1 = Sunday in DTL on S7-1500. |
Example valid encoding for Monday, 15 January 2024, 10:30:45.123:
Byte 0: 20 (century)
Byte 1: 24 (year)
Byte 2: 01 (January)
Byte 3: 15 (15th)
Byte 4: 10 (hour)
Byte 5: 30 (minute)
Byte 6: 45 (second)
Byte 7: 0x12 0x32 (ms=123, weekday=2 = Monday)
Full byte 7 hex: 0x12 3 2 = 0x12 if ms=123 packed as 12 3 plus weekday 2 in low nibble
= 0x12 | (3 << 4) | 2 = 0x32 (low byte), 0x12 (high byte) packed as BCD nibbles
If any of those bytes contain an invalid BCD digit (e.g., 0x1A for the month) or the weekday nibble is 0 or 8+, the runtime records system error 13,2 and rejects the value.
5. DTL Layout (S7-1500)
The DTL type is a 12-byte structure with explicit fields rather than packed BCD. It is required for TIA Portal projects targeting S7-1500 CPUs.
| Offset | Field | Type | Range |
|---|---|---|---|
| +0 | Year | INT | 1970–2554 |
| +2 | Month | BYTE / USINT | 1–12 |
| +3 | Day | BYTE / USINT | 1–31 |
| +4 | Weekday | BYTE / USINT | 1=Sunday … 7=Saturday |
| +5 | Hour | BYTE / USINT | 0–23 |
| +6 | Minute | BYTE / USINT | 0–59 |
| +7 | Second | BYTE / USINT | 0–59 |
| +8…+11 | Nanosecond | DINT | 0–999,999,999 |
When the MP277 area pointer is configured to read a DTL tag, the runtime reads 12 bytes; any out-of-range value in any field generates error 70011.
6. Root Cause Catalog
Field experience with MP277 deployments identifies five distinct root causes. Use the table to triage the issue before opening the project file.
| # | Cause | Indicator | Fix section |
|---|---|---|---|
| 1 | Wrong data type at the area pointer address (INT, REAL, WORD, BOOL, custom STRUCT) | Always fails, even on fresh compile | § 7.1 |
| 2 | Weekday field invalid (0 or > 7) due to manual DT assignment without SFC1 | Time on HMI is correct except weekday; or fails only intermittently | § 7.2 |
| 3 | Area pointer enabled but tag does not exist in PLC (wrong DB number, optimized access blocks absolute addressing) | Diagnostic buffer in STEP 7 shows access errors | § 7.3 |
| 4 | Connection to PLC is intermittent (cable, connector, PROFINET name, IP conflict) | Error appears in bursts | § 7.4 |
| 5 | Wrong length configured (8 bytes when 12-byte DTL is supplied, or vice versa) | Time updates occasionally, then error fires | § 7.5 |
6.1 Wrong Data Type
The area pointer expects exactly 8 contiguous bytes (DT) or 12 contiguous bytes (DTL) at the configured offset. If the address points to an INT (2 bytes), the runtime reads 8 bytes but interprets them as BCD-encoded calendar data. The decoded month, day, or weekday is virtually guaranteed to be invalid, triggering error 13,2.
6.2 Weekday Mismatch
Engineers sometimes build a DATE_AND_TIME manually from individual tags for testing:
L 20
T DB100.DBB 0 // century
L 24
T DB100.DBB 1 // year
L 1
T DB100.DBB 2 // month
L 15
T DB100.DBB 3 // day
L 10
T DB100.DBB 4 // hour
L 30
T DB100.DBB 5 // minute
L 45
T DB100.DBB 6 // second
L 0
T DB100.DBB 7 // ms and weekday NOT set → weekday = 0 → error 70011
Always populate the weekday nibble (1–7) or, preferably, let the PLC fill the structure via SFC 1 (S7-300/400) or RD_SYS_T (S7-1500).
6.3 Address Outside Loaded DB
On S7-1200/S7-1500 with optimized block access enabled, absolute DB addressing from the HMI is not allowed. The runtime reads via PUT/GET or via the configured connection — if the DB is not loaded, the connection is broken, or the slot is wrong, the HMI sees zero bytes and decodes them as weekday 0, triggering the error.
6.4 Connection Instability
Check cable integrity, terminating resistors on MPI/PROFIBUS segments, PROFINET device names, and IP address collisions. The MP277 logs other connection errors (e.g., MsgNumber 70012, 70013) when the link is the real issue.
6.5 Wrong Length
The area pointer length is usually derived from the configured data type, but if a manual length was entered, mismatch with the actual data type produces partial or shifted reads. The runtime treats the shifted bytes as garbage.
7. Step-by-Step Resolution
7.1 Configure the Area Pointer Correctly (WinCC flexible 2008)
- Open the WinCC flexible project.
- From the project tree, expand "Connections".
- Double-click the connection used for the S7 PLC (e.g., "S7-300/400" or "S7-1200/1500").
- Select the "Area Pointer" tab.
- Enable "Date/Time PLC".
- Enter the address and length:
| Field | S7-300/400 example | S7-1500 example |
|---|---|---|
| Address | DB 100 DBB 0 | DB 100 DBB 0 |
| Length | 8 bytes (DT) | 12 bytes (DTL) |
| Acquisition cycle | 1 minute (default) | 1 minute (default) |
| Trigger tag | Leave empty for periodic sync | Leave empty for periodic sync |
- Click OK to close the connection dialog.
- Compile: Project → Compiler → Check All / Build All.
- Transfer the project to the MP277 via Transfer → Ethernet / MPI / PROFIBUS / USB.
- Restart the runtime on the panel.
7.2 Provide a Valid DATE_AND_TIME Tag on the PLC
Create a DB with a DATE_AND_TIME field:
DATA_BLOCK DB100
TITLE "HMI Time Sync"
VERSION : 3.0
STRUCT
HMI_Time : DATE_AND_TIME; // 8 bytes BCD
END_STRUCT;
END_DATA_BLOCK
In OB1 (or a cyclic OB such as OB35), read the PLC clock via SFC 1:
CALL "READ_CLK" // SFC 1
RET_VAL := MW100
OUT := "DB100".HMI_Time; // DATE_AND_TIME
SFC 1 returns the complete eight-byte encoding, including a correct weekday. The MP277 area pointer then decodes the value successfully.
7.3 Provide a Valid DTL Tag (S7-1500)
In TIA Portal:
DATA_BLOCK "DB_HMI_Time"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
NON_RETAIN
VAR
HMI_Time : DTL; // 12-byte structure
END_VAR
BEGIN
END_DATA_BLOCK
In OB1:
"DB_HMI_Time".HMI_Time := DTL#2024-01-15-10:30:00.000; // manual test value
// or in production:
RD_SYS_T(OUT => "DB_HMI_Time".HMI_Time);
7.4 Fix Connection Problems
- From STEP 7 / TIA Portal, run "Accessible nodes" against the MP277 IP address.
- Verify PROFINET device names and IP addresses match the project.
- For MPI/PROFIBUS, verify bus terminators are powered and the baud rate matches (default 187.5 kbit/s or 1.5 Mbit/s for MP277).
- Replace suspect cables and connectors; cycle power to switches.
- If the error clears after fixing the connection, the area pointer was reading nothing during the outage and decoding zero bytes.
7.5 Correct the Area Pointer Length
- Open the connection properties again.
- Set the length explicitly:
S7-300/400 DATE_AND_TIME -> 8 bytes
S7-1500 DTL -> 12 bytes
- Save, recompile, transfer.
8. TP900 Comfort Panel Variant
The TP900 Comfort runs WinCC Runtime Advanced (TIA Portal) and uses the same system message catalog. Error 70011 will appear with identical symptom if the date/time area pointer is misconfigured. The configuration path differs:
- TIA Portal → Project tree → "Devices & Networks".
- Click the HMI → "Connections" in the inspector.
- Select the PLC connection → "Properties" → "Area pointers".
- Enable "Date/time".
- Point to a DB tag of type DTL (S7-1500) or DATE_AND_TIME (S7-300/400).
- Compile → Download to TP900 → Restart runtime.
Also verify under "Runtime settings" → "Language & Runtime" that the time zone matches the PLC. Mismatched time zones cause DST shifts but not error 70011; nonetheless, alignment prevents operator confusion.
9. WinCC flexible vs TIA Portal Configuration Paths
| Step | WinCC flexible 2008 | TIA Portal V13+ |
|---|---|---|
| Open connection | Project → Connections → Edit | Devices & Networks → Connections |
| Area pointer tab | "Area Pointer" | Properties → "Area pointers" |
| Time sync label | "Date/Time PLC" | "Date/time" |
| Length edit | Manual (8 for DT) | Automatic from data type |
| Compile target | WinCC flexible RT | WinCC Runtime Advanced / Professional |
| Symbolic addressing | No (absolute only) | Yes (recommended for S7-1500) |
10. Verification Procedure
After applying the fix, validate that the error is gone and that the time synchronization functions correctly.
- Reboot the MP277 runtime (Start → Restart Runtime, or cycle panel power).
- Wait at least three acquisition cycles (default cycle is 1 minute, so wait 3 minutes).
- Open the control panel → Service → Service Desktop (if enabled).
- Start the WinCC flexible RT dialog → Messages tab.
- Filter by MsgNumber 70011. Confirm zero new entries.
- Force the PLC clock to a known future value:
S7-300/400 — SFC 0 "SET_CLK"
IN := DT#2024-12-31-23:59:00
OUT := ret_val_word
S7-1500 — WR_SYS_T
IN := DTL#2024-12-31-23:59:00.000
- Confirm the MP277 displays the new time within one polling cycle.
- Set the PLC clock back to the real current time and verify that the HMI follows.
- Cycle power on the MP277 to confirm the time persists (assuming battery-backed PLC).
11. Edge Cases and Field-Proven Caveats
11.1 Leap Day Validation
The runtime validates February 29 against the year. A DATE_AND_TIME set to 2023-02-29 00:00:00 is rejected with error 13,2. The same value for 2024 (leap year) is accepted.
11.2 Manual DT Construction Without SFC 1
Engineers often build DATE_AND_TIME for testing using BLKMOV or individual byte moves. They forget the weekday nibble. Use SFC 1 (READ_CLK) or SFC 0 (SET_CLK) to populate the structure correctly.
11.3 BCD Encoding Mistake
Loading a decimal value (e.g., L 24) into a BYTE does not produce BCD 0x24. The runtime expects 0x24, which is decimal 36. The correct way to fill DATE_AND_TIME is via SFC 1 or by encoding BCD explicitly:
// Build 0x24 in BCD form
l W#16#24 // direct BCD literal
T DB100.DBB 1
11.4 Daylight Saving Time
WinCC Runtime applies DST based on the panel's configured time zone. If the PLC stores local time (not UTC), the DST jump can cause an apparent one-hour shift on the HMI but does not generate error 70011. Configure both PLC and HMI to use UTC if DST neutrality is required.
11.5 Multiple HMI Panels, One PLC
Each panel can declare its own area pointer. To avoid contention, point each HMI at a different DB offset (e.g., DB100 for MP277 #1, DB110 for MP277 #2) populated from the same SFC 1 output.
11.6 Backup Battery Low
If the PLC battery is low, the clock may reset to a default value (often 1990-01-01 or 2000-01-01) after a power cycle. Check the PLC diagnostic buffer for battery warnings.
12. Preventive Measures and Best Practices
| Practice | Benefit |
|---|---|
| Always read PLC time via SFC 1 / RD_SYS_T | Guarantees valid weekday and BCD encoding |
| Use DATE_AND_TIME for S7-300/400, DTL for S7-1500 only | Prevents data-type mismatch errors |
| Disable optimized block access on the sync DB if HMI uses absolute addressing | Avoids access errors on S7-1200/1500 |
| Centralize time sync in OB35 / OB1 | Single source of truth; easier to audit |
| Set acquisition cycle to match PLC scan or a sensible multiple (1 minute is typical) | Avoids excessive CPU load on either side |
| Document the area pointer address in the project header | Speeds future maintenance |
| Keep MP277 firmware and WinCC flexible SP up to date | Includes runtime bug fixes for BCD conversion |
| Use symbolic addressing in TIA Portal projects targeting S7-1500 | Robust against DB re-numbering |
13. Troubleshooting Matrix
| Symptom | Likely cause | First action |
|---|---|---|
| Error fires every minute on a fresh project | Area pointer not yet configured | Enable Date/Time PLC and assign a DT/DTL tag |
| Error fires every minute but time on HMI is correct | Weekday mismatch or wrong data type with lucky alignment | Verify PLC data type and weekday byte |
| Error fires occasionally, in bursts | Intermittent connection | Check cables, terminators, PROFINET names |
| Error never appeared until panel firmware update | Firmware bug or stricter validation | Downgrade or contact Siemens support |
| Error appears only on one of several panels | Project mismatch on that one panel | Recompile and retransfer |
| Error after PLC hardware replacement | Different CPU family or firmware | Verify data type compatibility (DT vs DTL) |
| Error after migrating project from WinCC flexible to TIA Portal | Area pointer length or address not translated | Reconfigure area pointer in TIA Portal |
14. Related System Messages
| MsgNumber | Description | Relation to 70011 |
|---|---|---|
| 70010 | Date/Time read successfully | Positive counterpart |
| 70011 | Date/Time could not be set (error code 13,2) | Subject of this article |
| 70012 | Connection to PLC interrupted | Frequently co-occurs |
| 70013 | Connection re-established | Recovery indicator |
| 70014 | Tag not available | Caused by invalid area pointer address |
What does error code 13,2 in MP277 error 70011 mean?
The 13,2 portion indicates system class 13 (date/time conversion), sub-cause 2 (value-range or weekday failure). The HMI received a date/time value from the area pointer but rejected it because one or more BCD-encoded fields (commonly the weekday nibble) were invalid.
Why does the error appear every minute on the MP277?
The WinCC flexible Runtime polls the configured Date/Time PLC area pointer once per acquisition cycle (default 1 minute). Each poll that returns an undecodable value produces one 70011 message, which is why the alarm log fills at exactly one-per-minute cadence.
Can a TP900 Comfort Panel produce the same error 70011?
Yes. TP900 Comfort runs WinCC Runtime Advanced and shares the same system message catalog. The fix is identical — configure the Date/time area pointer to point at a valid DATE_AND_TIME (S7-300/400) or DTL (S7-1500) tag, and ensure the weekday field is populated correctly by SFC 1 or RD_SYS_T.
Can I stop the flood without disabling the area pointer?
Disabling the area pointer stops the error but also disables automatic PLC-to-HMI time sync, which breaks time-stamped alarms and audit trails. The correct approach is to fix the data type and weekday at the source so the runtime can decode the value.
Does MP277 firmware version affect error 70011?
Yes. Early MP277 images (V1.0.x) had edge-case bugs in BCD conversion that were corrected in later service packs. Updating the panel firmware to the latest available image for your MP277 hardware revision, combined with the latest WinCC flexible service pack, reduces false positives and improves DST handling.