Overview
The Siemens SIMATIC TP700 Comfort (6AV2 124-1GC01-0AX0 family) is a 7-inch widescreen HMI panel from the Comfort line, programmed with WinCC Comfort (TIA Portal). Two recurring engineering questions on this panel are: (1) whether alarms can be logged with sub-second resolution (milliseconds), and (2) how to animate an HMI object when the controlling tags originate from two different PLCs on a multi-connection project.
Both questions are addressable inside TIA Portal without external scripting on the panel itself. The TP700 Comfort runtime supports configurable alarm timestamp precision through the alarm view properties, and the WinCC Comfort engineering environment supports a script-based helper tag that can combine values from multiple PLC connections for use in animations.
TP700 Comfort Panel Hardware and Firmware Context
The TP700 Comfort uses the same firmware image as the larger TP900/TP1200/TP1500 Comfort panels. The relevant specifications for alarm handling and animation performance are:
| Parameter | Value |
|---|---|
| Display | 7.0" TFT widescreen, 800 x 480 |
| User memory | 12 MB |
| Number of connections | Up to 8 PLC connections (S7-1200/1500/300/400, OPC, Modbus TCP, etc.) |
| Alarm buffer (annunciator) | Configurable; up to 4096 buffered alarm events depending on project |
| Engineering tool | WinCC Comfort / WinCC Advanced in TIA Portal V13+ to V18 |
| Interfaces | PROFINET (2-port switch), PROFIBUS DP (with IF1-BD option), USB host |
| Variables supported | 32k tags, 4k alarms (typical Comfort-class ceiling) |
For detailed panel specifications, refer to the SIMATIC HMI Comfort Panels Operating Instructions entry on the Siemens Industry Online Support portal. The connection count is the deciding factor when you need to read tags from two S7 controllers simultaneously - the TP700 supports this natively.
Millisecond Time-Stamping in WinCC Comfort Alarm View
By default, the alarm view in WinCC Comfort shows the time of day to second precision. The runtime supports displaying milliseconds, but the property is off by default in many localized projects. To enable millisecond display:
- In the TIA Portal project tree, open HMI alarms > Alarm view or the Alarm control / Alarm window in the screen layout.
- Select the alarm view, then open Properties > Appearance in the inspector window.
- Locate the column configuration for
TimeOfDay(or the localized equivalent). - Set the format to "hh:mm:ss.zzz" or equivalent pattern with three millisecond digits.
- Compile and download the project to the panel.
The corresponding runtime behavior is documented in the TIA Portal Help under Alarm system > Displaying alarms > Time stamp. The time stamp is sourced from the panel's internal real-time clock (RTC), which is buffered by the integrated capacitor or the optional CR2032 backup battery, depending on the panel variant. NTP or PLC-time-master synchronization is recommended for multi-panel installations to keep event ordering consistent across machines.
Alarm Trigger Configuration for Sub-Second Resolution
Displaying milliseconds is a UI property. Acquiring a state change in less than one second is determined by the alarm trigger. In WinCC Comfort, an alarm is bound to a trigger tag (Bit message) or to a value limit at an analog tag.
| Trigger type | Default acquisition | Sub-second capability |
|---|---|---|
| Discrete alarm on a Boolean tag | Cyclic continuous, default 1 s | Yes - reduce to 100 ms or 200 ms |
| Analog alarm on limit violation | Cyclic continuous | Yes - tied to same acquisition cycle |
| Event-driven via PLC job / DTL timestamp | On change | Yes - milliseconds if PLC stamps with DTL |
For tighter resolution, configure the trigger tag with the smallest acceptable acquisition cycle:
- Open HMI tags, select the trigger tag used by the alarm.
- Set Acquisition mode = Cyclic continuous.
- Set Acquisition cycle = 100 ms (or 200 ms if network load is a concern).
- If the S7-1500/1200 is the source PLC and supports DTL (Date_And_Time_Long), send the timestamp from the PLC side rather than the panel RTC to guarantee identical time base between panel and controller. Use the
WR_SYS_T/RD_SYS_Tsystem clock functions on the S7-1500.
For a complete S7-1500 clock-time reference, see the S7-1500 Motion Control and Technology Functions manual and the S7-1500 System Time Functions entry in Industry Online Support.
Chronological Ordering of Alarms at the Same Second
When two alarms are raised within the same wall-clock second, the panel records the precise internal timestamp and orders them chronologically in the alarm view. Sorting is performed by the panel runtime on the basis of the millisecond component of the timestamp. Therefore:
- Two alarms arriving in the same second will appear in strictly ascending time order in the alarm view, provided the timestamp has ms resolution enabled.
- The first alarm logged is the first row; subsequent alarms follow on the rows below in the order they were acquired by the panel.
- If the alarm buffer is full, the overflow behavior is configurable (overwrite oldest, or stop acquisition). The default is overwrite-oldest, which is appropriate for a process monitoring screen but not for forensic audit logging - in that case, export the buffer or wire alarms to a historian.
For an audit-grade chronological order across multiple panels, time-master the panels to an NTP server or to a designated PLC acting as time master, and enable DST/time-zone handling consistently. The WinCC Comfort Time synchronization area is under HMI device configuration > Time settings.
Animating HMI Elements from Multiple PLC Connections
The Comfort Panel runtime can only bind one PLC tag per animation property. A button appearance, visibility, or movement animation takes a single tag, and that tag must live on a single HMI connection. When the controlling logic is split between two S7 controllers, the HMI cannot directly evaluate TagA AND TagB as a built-in expression in the animation interface.
There are two engineering patterns that resolve this limitation:
- Script-based helper tag (HMI side): Read TagA and TagB inside a scheduled VBScript (or ANSI C) on the panel, compute the desired Boolean or integer, and write the result into an internal HMI tag that is bound to the animation property.
- PLC-side aggregation (preferred): Move the logic into one of the two PLCs (or a third aggregator), expose a single aggregated tag to the HMI, and let the HMI animate on that single tag.
For multi-connection commissioning of the TP700, see the SIMATIC HMI Panels Communication manual.
Script-Based Tag Aggregation Method
To implement the HMI-side helper tag pattern in TIA Portal / WinCC Comfort:
- Open the project, navigate to Scripts > VBScripts (or ANSI C scripts if your project uses them).
- Add a new function, e.g.
UpdateButtonAnim, that reads both connection tags, evaluates the AND/OR, and writes the internal tag. - Schedule the script under Scheduler with a 100 ms or 200 ms cycle. Match the cycle to the smallest acceptable latency.
- Bind the internal HMI tag to the animation property of the button or screen object.
A minimal VBS example that reads two tags from two different PLC connections and writes a Boolean helper tag:
' UpdateButtonAnim - scheduled at 200 ms
Dim tagA, tagB, result
' Read tags from the HMI tag system
tagA = SmartTags("PLC1_ButtonEnable") ' Tag on connection 1
tagB = SmartTags("PLC2_ButtonEnable") ' Tag on connection 2
' AND logic - both PLCs must enable
If (tagA = True) And (tagB = True) Then
result = True
ElseIf (tagA = False) Or (tagB = False) Then
result = False
End If
SmartTags("HMI_ButtonAnimEnable") = result
For the official scripting reference, see the WinCC Comfort VBScript Reference in the Industry Online Support portal.
PLC-Side Aggregation: Preferred Architecture
The recommended architecture is to consolidate the combined logic into the PLC, then expose a single tag for HMI animation. Benefits:
- Determinism: PLC scan is bounded and predictable; HMI script cycles are not.
- Network efficiency: Only one tag crosses the network per cycle, instead of two raw tags plus a derived tag.
- Maintainability: The control logic stays where the control engineers are - in the PLC program.
- Diagnostic accuracy: PLC-side logic can be debugged in the S7 watch table and traced in TIA Portal online mode.
Typical SCL (Structured Control Language) snippet on an S7-1500 that aggregates the enabling condition for the HMI:
// FB_SafetyEnable - aggregates the HMI button enable signal
IF (i_bEnableFromPLC1 = TRUE) AND (i_bEnableFromPLC2 = TRUE) THEN
q_bHMIButtonEnable := TRUE;
ELSE
q_bHMIButtonEnable := FALSE;
END_IF;
Then in the TP700 project, map the single tag q_bHMIButtonEnable via a PUT/GET cross-PLC connection (S7 communication) or via the receiving PLC's DB exposed to the HMI. The HMI animation then references only this aggregated tag.
Acquisition Mode, Trigger, and Tag Update Behavior
On the Comfort Panel, an HMI tag can be configured with one of several acquisition modes. Choosing the right mode is essential for a script-based aggregator to read consistent data:
| Acquisition mode | When the value is updated | Best for |
|---|---|---|
| Cyclic continuous | At every cycle, regardless of change | Animation triggers, alarm triggers |
| Cyclic on use | Only when the tag is read by a screen | Power-saving on rarely used tags |
| On change (event-driven) | On PLC-side value change via job/notification | Edge-triggered animations |
For the script-based multi-PLC aggregator described above, set Cyclic continuous on both source tags. Failing to do so leads to stale values and animation flicker when the script reads tags that have not been refreshed.
Verification and Commissioning Procedure
After implementing the alarm timestamps and the multi-PLC animation, run a structured verification pass:
- Timestamp precision test: Force two alarms inside the same second using the PLC's watch table. Confirm that the alarm view lists them in chronological order with millisecond display.
- Acquisition cycle test: Toggle the trigger tag in the PLC at a known rate (e.g. 5 Hz). Confirm the alarm view records every event with sub-second resolution and no drops.
- Multi-PLC animation test: Force PLC1 to TRUE, PLC2 to FALSE - the HMI button should be disabled. Reverse the states and confirm the animation flips within one scheduler cycle of the HMI script (typically 100-200 ms).
- Time-sync verification: Compare the panel's clock to a reference NTP server; drift should be below 1 second per 24 hours for a panel with healthy RTC backup.
- Buffer-overflow test: Generate more than the configured alarm buffer size. Confirm either overwrite-oldest behavior is correct for the application, or that the buffer exports to USB/network historian as expected.
Troubleshooting Matrix
| Symptom | Likely cause | Remediation |
|---|---|---|
| Millisecond digits not shown | Alarm view column format is set to "hh:mm:ss" | Change the TimeOfDay column format to "hh:mm:ss.zzz" and redownload project |
| Alarms appear out of order at the same second | Millisecond display disabled; ordering correct but not visible | Enable ms display; verify panel RTC is synchronized |
| Animation does not update | Trigger tag configured Cyclic on use; only updates on screen display | Set acquisition mode to Cyclic continuous and matching cycle |
| Script reads stale values | Source tag acquisition cycle longer than script cycle | Set tag acquisition cycle <= script scheduler cycle |
| Alarm missing altogether | Trigger tag not yet created or alarm disabled in runtime | Re-check alarm class assignment, acknowledge mode, and trigger tag binding |
| Two PLCs, single animation, wrong logic | Bound to wrong connection's tag | Verify tag connection assignment in the HMI tag editor |
| Time drift between panels | No time master configured; RTC battery depleted | Enable NTP or PLC-time-master; replace backup battery |
Related Standards and Reference Material
Although the Comfort panel is a closed Siemens runtime, several PLC-side standards and conventions support interoperability:
- PROFINET (IEC 61158 / IEC 61784) - the default physical layer for the panel's PROFINET port.
- OPC UA - available on the TP700 Comfort as a runtime option, useful when the panel needs to aggregate tags from non-Siemens controllers.
- IEC 62443 - for any deployment in a zone-based security model, configure the HMI to deny direct tag writes from outside its configured connections.
Engineers should verify the standards listed here against the latest published revisions in the official IEC catalog and against Siemens' industry-specific support entries, not as a guarantee of compliance.
FAQ
Can the SIMATIC TP700 Comfort show millisecond precision in the alarm view?
Yes. In WinCC Comfort / TIA Portal, open the alarm view properties and set the TimeOfDay column format string to "hh:mm:ss.zzz" (three decimal places). The panel runtime will then display milliseconds in the alarm log.
How are alarms ordered when several are raised in the same second?
With millisecond display enabled, the Comfort runtime sorts events in strictly ascending time order based on the internal RTC. The first alarm acquired by the panel appears at the top of the alarm view; subsequent alarms raised in the same second appear on the rows below in the order they were detected.
What is the fastest acquisition cycle for an alarm trigger tag?
The smallest practical cycle is 100 ms. Smaller values can be set but the panel's processing and PROFINET update budget must support them. Set the trigger tag to Cyclic continuous with a 100-200 ms cycle, or use a DTL time stamp from an S7-1500 for sub-100 ms resolution.
Can I bind an HMI animation to two tags from two different PLCs?
Not directly - a single animation property accepts one tag. The two supported workarounds are: (1) an HMI script that reads both tags and writes the result into an internal helper tag, or (2) consolidate the AND/OR logic in one PLC and expose a single aggregated tag to the HMI. PLC-side aggregation is the recommended approach for deterministic, maintainable logic.
Why does my scheduled HMI script read old values from a tag?
The source tag is most likely configured as Cyclic on use, which only refreshes the value when the tag is read by a screen. Set the acquisition mode to Cyclic continuous with a cycle no larger than the script scheduler cycle, then recompile and download.