1. Overview of TP 700 Comfort Audio Capabilities
The Siemens SIMATIC TP 700 Comfort (6AV2 124-1GC01-0AX0) and the wider Comfort Panel family (KP/TP 700–1500 Comfort, all part numbers in the 6AV2 124-x and 6AV2 144-x ranges) ship with an integrated audio subsystem based on Windows Embedded Compact 7 (Windows CE 7.0). The panel contains an internal piezo buzzer and a 3.5 mm line-out jack; the audio mixer exposes a Windows-style Volume & Sounds Properties control panel that maps system events (Asterisk, Exclamation, Critical Stop, Notification, Question) to .WAV files stored under \Windows on the device.
For HMI runtime, two distinct audio paths exist:
- System sounds – events triggered by the Windows CE shell (button click, alarm acknowledge beep). These are tied to the HMI Control Panel → Volume & Sounds Properties mapping and require no scripting.
-
Application-triggered sounds – arbitrary
.wavplayback driven by WinCC engineering, useful for loud, distinctive alarm tones that need to be controlled from PLC tags or alarm events. This is the path used when a sound must accompany a specific process alarm.
This article covers both paths, the lifecycle of the Windows CE player executable (ceplayer.exe), and how to bind playback to alarm acknowledgment logic. It targets engineers configuring WinCC Comfort/Advanced in TIA Portal V16 through V19 against a TP 700 Comfort running firmware V16.x or later.
2. Prerequisites and Project Setup
Before adding audio to a project, verify the following:
- Engineering tool: TIA Portal V16, V17, V18, or V19 with WinCC Comfort/Advanced installed. The StartProgram system function used in this article is documented in the TIA Portal Help under "WinCC system functions – StartProgram".
- Panel image: Comfort Panel V16.0.0.x or higher (WinCC Comfort/Advanced → Devices & Networks → TP 700 Comfort → Properties → Update operating system).
- Transfer cable or Ethernet: PG/PC interface connected to the panel, with PROFINET or USB configured for HMI download.
-
Sound files: Uncompressed 16-bit PCM
.wavfiles, 8 kHz or 11.025 kHz, mono or stereo. Windows CE 7 includes a software mixer (Wave/PCM) that does not transcode compressed formats reliably; avoid MP3 or WMA sources unless they have been pre-tested on the panel. - File size budget: The internal flash budget for runtime files (recipes, logs, sound) depends on the panel model; a typical TP 700 Comfort ships with 12 MB free user memory. A 5-second 11.025 kHz mono WAV is approximately 110 KB.
Open the HMI project in TIA Portal and expand the project tree:
Project
└── HMI_1 [TP 700 Comfort]
├── Device configuration
├── Screens
├── HMI tags
├── HMI alarms
├── Recipes
├── Schedules
└── Files & scripts (proRIA)
└── *.wav ← user-supplied audio files
3. Windows CE Audio Subsystem Architecture
Comfort Panels run Windows Embedded Compact 7 with the Win32 Sound subsystem. Two executable paths produce audio:
| Executable | Path | Role |
|---|---|---|
audiodg.exe |
\Windows | Audio engine / mixer service |
ceplayer.exe |
\Windows | Stand-alone WAV player launched by user code (StartProgram) |
ctlpnl.exe |
\Windows | HMI Control Panel host (Volume & Sounds Properties applet) |
The Volume & Sounds Properties applet (Control Panel → Volume & Sounds Properties) is the user-facing configuration surface. It exposes two tabs:
-
Volume tab: master output gain, mute toggle, and per-event sliders. Slider values are persisted to the registry under
[HKEY_CURRENT_USER\ControlPanel\Volume]. - Sounds tab: event-to-WAV mapping for the standard Windows CE event class set (Asterisk, Default Beep, Exclamation, Critical Stop, Question, Notification).
To inspect the underlying files:
- On the panel, open Control Panel.
- Select View → Options and enable Show system folders.
- Navigate to
\Windows. The system event sounds are stored asasterisk.wav,exclam.wav,critical.wav,notify.wav,question.wav, andtada.wavby default.
asterisk.wav, for example, will break the panel's own confirmations. Always deploy your alarm tones with a distinct filename such as alarm_high.wav.4. Using Pre-Configured Windows CE System Sounds
If the alarm tone required matches one of the five built-in events, no project changes are needed beyond raising the volume. Use the Volume & Sounds Properties applet on the panel to map the desired event to a louder WAV (the panel ships with all five standard sounds, so the default mapping is already populated).
| Event | Default WAV | Use case |
|---|---|---|
| Asterisk | asterisk.wav | Information, low-severity notice |
| Exclamation | exclam.wav | Warning, operator attention required |
| Critical Stop | critical.wav | Fatal / safety event, latched |
| Notification | notify.wav | Generic status change |
| Question | question.wav | Operator prompt |
To bind a system sound to a runtime event, the project does not need a StartProgram call. The sound is produced automatically when, for example, a message is acknowledged if the configured event is mapped in the control panel applet. The downside is granularity: a single global sound plays for all messages of that class, and there is no per-alarm override.
5. Deploying Custom WAV Files to the Panel
For application-specific tones, deploy the WAV file into the project and onto the panel file system:
- In the TIA Portal project tree, right-click HMI_1 [TP 700 Comfort] and choose Add new folder (optional, for organization).
- Copy your
.wavfiles into the project tree or via drag-and-drop from Windows Explorer. - Right-click the HMI device → Properties → Files tab. Add the WAV files and confirm the Target path on device is
\Windowsor a subfolder such as\Windows\Sounds. - Compile and download. After transfer, the files appear under the chosen path on the panel.
Verify the deployment on the panel by opening Control Panel → Show system folders → \Windows and confirming the file size matches the source.
6. Configuring StartProgram for WAV Playback
The WinCC Comfort/Advanced runtime exposes the system function StartProgram, which launches an executable on the HMI device with optional command-line arguments. To play a WAV, point it at the Windows CE player with the WAV path as a parameter.
| Parameter | Value | Notes |
|---|---|---|
| Program name | \Windows\ceplayer.exe |
Case-insensitive on CE 7; use the UNC path |
| Program arguments | \Windows\alarm_high.wav |
Full path to the deployed WAV |
| Mode | "Run hidden" or default | Determines whether the player window is visible |
| Wait until program ends | OFF (recommended for alarms) | Prevents the script scheduler from blocking |
To call the function from a button:
- Open the screen that should host the trigger (typically the alarm view screen).
- Add a button (or use the existing alarm view's status icons).
- In the button's Events → Click configuration, choose Add function → StartProgram.
- Fill the parameters as shown above and click OK.
The system function can also be called from a scheduled task, a value-change tag event, or directly from an alarm event in the alarm editor – see section 7.
7. Triggering Sounds from Alarm Events
WinCC alarm events support running system functions on Incoming, Outgoing, and Acknowledge state changes. This is the cleanest way to bind WAV playback to a specific alarm without polluting the HMI screens with trigger buttons.
- Open HMI alarms → Discrete alarms (or Analog alarms for threshold-based events).
- Select the alarm row to edit.
- Switch to the Events column and click the Incoming cell.
- Click Add function → StartProgram. Configure exactly as in section 6.
- For the Acknowledge event, configure StartProgram again but with the player-stop argument (see section 9).
Resulting flow:
PLC bit/tag transitions → WinCC alarm Incoming event
→ StartProgram("\Windows\ceplayer.exe", "\Windows\alarm_high.wav")
→ ceplayer.exe launches → audio plays
Operator presses ACK → WinCC alarm Acknowledge event
→ StartProgram with stop argument
→ ceplayer.exe terminates
ceplayer.exe process. To avoid overlapping tones, either stop the previous instance on the Acknowledge event (section 9) or use a tag-coalesced scheduler that only triggers when the player process is not active.8. Managing ceplayer.exe Lifecycle and Background Execution
A frequent commissioning finding is that ceplayer.exe appears as a visible window in the runtime foreground when the alarm is triggered. The behavior depends on the Mode parameter of StartProgram and on the OS-level show window flag of the player.
| Mode in StartProgram | Result | Recommended? |
|---|---|---|
| Default (visible) | ceplayer.exe window overlays the HMI screen | No |
| Hidden | Window is created with WS_VISIBLE cleared; audio still plays | Yes |
| Minimized | Window minimized to taskbar; visible on Alt-Tab | Marginal |
In TIA Portal V17 and later, the StartProgram system function dialog has a "Window mode" dropdown (default "Normal", options "Maximized", "Minimized", "Hidden"). Set this to Hidden to keep the player off the screen.
If the dropdown is not visible in your project version, deploy a small VBScript wrapper that calls ShellExecute with the SW_HIDE constant:
' VBScript executed by a WinCC "Run script" event
Dim wsh
Set wsh = CreateObject("WScript.Shell")
wsh.Run """\Windows\ceplayer.exe"" ""\Windows\alarm_high.wav""", 0, False
Set wsh = Nothing
The trailing 0 is the WindowStyle argument (0 = SW_HIDE). The False final argument is WaitOnReturn. This wrapper is the most reliable way to launch ceplayer.exe invisibly on TIA Portal V16, which did not yet expose a "Hidden" mode selector.
9. Stopping Playback on Alarm Acknowledge
Without an explicit stop, ceplayer.exe continues to play until the WAV file ends. If the WAV is short and the operator does not acknowledge promptly, the tone stops naturally. If the WAV loops (Repeat enabled in the player's menu) or is long, the player will continue until process termination.
Two practical approaches to stop playback on acknowledge:
9.1. Stop via StartProgram with a kill switch
There is no documented "StopProgram" system function in WinCC Comfort. To terminate ceplayer.exe, call StartProgram a second time with a sentinel argument or rely on the platform kill mechanism. The most reliable method on Windows CE 7 is to launch \Windows\ceplayer.exe with a one-shot "stop" WAV of zero-length, then kill the process. In practice, engineers use a VBScript that calls Kill on the process object:
' VBScript "StopPlayer" – attach to Acknowledge event
Dim proc
Set proc = GetObject("winmgmts:\\.\root\cimv2")
Dim list, p
Set list = proc.ExecQuery("Select * From Win32_Process Where Name = 'ceplayer.exe'")
For Each p In list
p.Terminate()
Next
Set list = Nothing
Set proc = Nothing
Win32_Process class and Terminate() method are present on Comfort Panels (confirmed on firmware V16 and later). If the WMI provider has been disabled by the project integrator, fall back to the TaskKill equivalent shipped with CE 7's resource kit, or use the \Windows\killce.exe third-party utility registered at install time.9.2. Stop by replaying a silent file
If WMI is not available, deploy a silent 1-sample WAV (silent.wav, 44 bytes header + 1 sample) and launch it with ceplayer.exe /close – but note that ceplayer.exe does not honor a /close switch. The pragmatic workaround is to overwrite the looping WAV with a silent variant on the Acknowledge event by using a script that calls a file-system copy.
9.3. Engineering recommendation
Use a non-looping alarm tone (single-shot WAV, 1–3 seconds) and bind playback only to the Incoming alarm event. Do not enable the Repeat option in the ceplayer.exe Playback menu – the file repeats indefinitely until the process is killed, and there is no built-in hook to stop on Acknowledge. The Repeat behavior described in the field report is by design: ceplayer.exe has no API to cancel looping from outside the player UI.
10. System Alarms Reference (TIA Portal)
The HMI runtime produces its own diagnostic messages – the system alarms – for events such as "Connection to PLC disrupted", "License missing", "Recipe load failed", or "Backup file write error". System alarms are independent of user-defined discrete or analog alarms and have their own event class.
Key behaviors:
- System alarms are only displayed if an alarm window (or alarm view) has been configured on at least one screen. Without an alarm view, the alarm is still generated internally but never shown.
- System alarms are output in the language currently set on the HMI device. The language is selected via Control Panel → Regional Settings or programmatically via the SetLanguage system function.
- Each system alarm has a unique ID (numeric, e.g., 140001, 140002) that can be used to suppress or filter the alarm in the alarm editor.
Engineers should treat system alarms as the runtime's own voice and reserve the application WAV path described in this article for project-specific process alarms. The official Siemens documentation for Unified Comfort Panels – System Alarms is available at docs.tia.siemens.cloud – System Alarms. The Classic Comfort Panel (TP 700) has an equivalent section in the WinCC Comfort V18 manual under "Configuring alarms → System alarms".
11. Troubleshooting Matrix
| Symptom | Likely cause | Resolution |
|---|---|---|
| No audio at all on alarm | Volume muted in HMI Control Panel; line-out not connected; firmware audio driver not loaded | Open Volume & Sounds Properties; raise all sliders; verify with the internal buzzer first (mute external jack to test internal piezo) |
| ceplayer.exe window visible over HMI | StartProgram Mode = Default | Switch Mode to Hidden, or use the VBScript wrapper with SW_HIDE (0) |
| Sound plays once, does not repeat | WAV is short and the alarm re-triggers only on rising edge | Loop the WAV with the ceplayer menu (operator-side) or schedule repeated StartProgram calls via a 1-second scheduled task |
| Sound does not stop on acknowledge | ceplayer.exe looping; no terminate call | Disable loop in ceplayer; attach the WMI Terminate script to the Acknowledge event |
| Second alarm triggers but no sound | ceplayer.exe is a single-process loop; second StartProgram call may not start a new instance cleanly | Terminate the previous instance first (Acknowledge) before allowing a new trigger, or use a different executable for each severity class |
| WAV file not found at runtime | File not deployed, or target path on device is wrong | Verify path in Control Panel → Show system folders → \Windows; confirm the file appears in the project Files & scripts view |
| Compressed audio (MP3/WMA) silent | CE 7 mixer does not include the required codec | Re-encode to 16-bit PCM WAV at 11.025 kHz or 8 kHz |
| Alarm is triggered but no system message visible | No alarm view configured on any screen | Add an Alarm View object to a screen; system alarms only render in a configured view |
| Wrong language for system alarm | HMI device language is not the operator's working language | Switch language via Control Panel → Regional Settings, or wire the operator's login to a SetLanguage call |
12. Commissioning Verification Procedure
After wiring audio to alarms, run the following verification:
- Volume check. From the HMI main screen, open the Volume & Sounds Properties applet and click Test on each event. Confirm the piezo buzzer and line-out both produce sound.
- Single-shot playback. Manually fire the alarm (force the PLC bit via watch table or simulate a tag value in the HMI simulation). Confirm the WAV plays once and the player window is not visible (Hidden mode).
- Acknowledge stop. Acknowledge the alarm. Confirm the audio stops within one second. If the WAV was looping, verify that the looping stops (VBScript Terminate).
- Re-trigger path. Clear and re-fire the alarm. Confirm a second playback occurs. If a single instance is shared, restart the player process on every Incoming event regardless of whether the previous one is still running.
- System alarm coexistence. Disconnect PROFINET to trigger system alarm 140001 ("Connection to PLC disrupted"). Confirm the system alarm text appears in the alarm view and is suppressed if no alarm view is configured on any screen.
- Language switch. Switch the panel's runtime language to a non-default language. Trigger a system alarm and confirm the text matches the active language (per the System Alarms documentation).
- Power-cycle resilience. Power-cycle the panel and re-trigger the alarm. Confirm the WAV file persists on flash and the StartProgram call resolves the path correctly after a cold start.
Which Windows CE executable plays WAV files on a TP 700 Comfort?
The built-in player is \Windows\ceplayer.exe. Launch it via the WinCC system function StartProgram with the WAV path as the first argument, e.g. StartProgram("\Windows\ceplayer.exe", "\Windows\alarm_high.wav").
How do I keep ceplayer.exe invisible during runtime?
In TIA Portal V17 and later, set the StartProgram "Window mode" to Hidden. On V16, use a VBScript wrapper that calls WScript.Shell.Run with the second argument set to 0 (SW_HIDE).
Why does my alarm sound not stop on Acknowledge?
ceplayer.exe has no API to stop from outside. Either use a single-shot WAV (no Repeat) or attach a VBScript to the Acknowledge event that enumerates and terminates Win32_Process entries with Name = 'ceplayer.exe' via the WMI provider on Windows Embedded Compact 7.
Where are the system event WAVs stored on the panel?
Under \Windows. Enable "Show system folders" in the Control Panel to see them. Default files include asterisk.wav, exclam.wav, critical.wav, notify.wav, and question.wav. Do not overwrite these – deploy alarm tones under distinct names such as alarm_high.wav.
Why are system alarms not visible on the screen?
System alarms are only rendered if an Alarm View (or alarm window) is configured on at least one screen. They are also output in the HMI device's currently set language, so a missing translation can make the alarm appear in the wrong language. See the official Siemens System Alarms documentation for the full list of IDs and language behavior.