Configuring WinCC Horn Alarms: Single, Redundant, and Client Stations
The SIMATIC WinCC Horn Editor is the dedicated tool for triggering audible alarm signaling on operator stations. In distributed topologies, however, the Horn Editor is frequently the source of recurring field issues: horns that fire only on the engineering server, horns that stay silent on OS clients in a redundant pair, or horns that fail entirely after a server failover. This reference consolidates the configuration procedure for single-user stations, redundant servers, and OS clients, and provides the proven C-script workaround that activates audible alarms on clients when the standard horn assignment fails.
1. Horn Editor Architecture in WinCC / PCS 7
The Horn Editor is a WinCC subsystem that ties acoustic signaling to message-class events. Each instance of WinCC Explorer on a server, redundant server, or OS client runs its own Horn Editor, and the runtime behavior of the audible alarm depends on which instance owns the message class assignment.
| Component | Function | Scope |
|---|---|---|
| Horn Editor | Maps message classes to .wav resources and runtime actions |
Per WinCC station (single, server, redundant, client) |
| Horn runtime | Plays .wav file on station-local audio hardware |
Local to the station running WinCC Runtime |
| Message classes | Defines which alarm categories trigger the horn | Project-wide, evaluated locally |
| Global Script C actions | Trigger horn via API as fallback when editor mapping fails on clients | Project-wide, executes on each station |
Critical architectural constraint: in a multi-station project, the Horn Editor must be opened and configured on every WinCC station that is expected to emit the audible signal. A configuration present only on the master server will not propagate acoustic playback to OS clients or to the standby partner in a redundant pair.
2. Prerequisites
Before configuring the Horn Editor, verify the following:
- WinCC Explorer installed and project opened on the target station (single, server, redundant server, or OS client).
- Audio hardware (sound card, speakers, headset) installed and functional on the OS. Test playback with a standard
.wavfile in Windows Media Player first. - Project message classes already defined in the Alarm Logging editor (e.g., "Alarm", "Warning", "Fault").
- For redundant systems: WinCC Redundancy package licensed on both partners and redundant server pair active.
- For OS clients: WinCC Client license installed and OS client project loaded on each client.
- Valid
.wavfile (PCM, 8/16-bit, 11.025/22.05/44.1 kHz) of small size to avoid latency on message bursts.
3. Horn Editor Configuration Procedure
The standard procedure, derived from the Siemens PCS 7 Horn FAQ, is identical for single-user stations, servers, redundant servers, and OS client stations. The procedure is executed on the local WinCC Explorer of each station.
Step 1 - Open the Horn Editor
- Start WinCC Explorer on the target station.
- Double-click the Horn icon in the WinCC Explorer navigation tree.
- The Horn Editor opens with a worksheet showing message class assignments.
Step 2 - Assign Message Class
- In the Horn Editor worksheet, click the row corresponding to the desired message class (for example,
Alarm). - Open the event class pull-down menu and select the Alarm message class. Confirm the message class filter matches the alarms you want to make audible.
- Repeat for additional message classes (
Warning,Fault,System) as required.
Step 3 - Assign WAV Resource
- For each message class row, click the horn icon in the row to open the resource selection dialog.
- Browse to the project
Hornsubfolder (typically<Project>\HmiRun\Horn\or the path visible in WinCC Explorer under Horn). - Select the
.wavfile to play when a message in this class arrives. - Confirm the selection. The file is referenced by path in the Horn Editor.
Step 4 - Activate Runtime
- Start WinCC Runtime on the configured station.
- Trigger an alarm of the configured message class to verify playback.
- If playback fails on a client station, proceed to the C-script workaround in Section 6.
.wav file inside the project Horn folder, not on the desktop or a network share that is not part of the project path. Network-referenced WAV files frequently fail to play on clients due to credential or path resolution issues.
4. Configuration by Station Type
4.1 Single-User Station
The simplest topology. A single WinCC station hosts engineering and runtime. Configure the Horn Editor on this station only. The .wav file must exist in <Project>\HmiRun\Horn\. There is no replication requirement because no other station exists.
4.2 Non-Redundant Server
One WinCC Server with one or more OS Clients. Configure the Horn Editor on:
- The WinCC Server if the server console must sound alarms.
- Each OS Client if the operator positions must sound alarms.
The message class assignments on each client must mirror those on the server. The alarm message itself is delivered to the client via the WinCC server-client data path; the Horn Editor on the client evaluates the message class locally and plays the local .wav.
4.3 Redundant Server Pair
Two WinCC Servers (Master and Standby) with automatic failover. Configure the Horn Editor on:
- Both server partners (Master and Standby) so the audible alarm is preserved after failover.
- Each OS Client attached to the redundant pair.
Failover behavior: When the Master fails, the Standby becomes the active server. OS clients reconnect to the new Master. Because the Horn Editor is configured on both partners and on each client, audible signaling continues without manual intervention.
| Station Type | Configure Horn Editor? | Place .wav locally? |
Action after failover |
|---|---|---|---|
| Single user | Yes | Yes | N/A |
| Server (non-redundant) | Yes | Yes | N/A |
| Redundant server pair | Yes on both partners | Yes on both partners | Standby becomes Master; horn continues |
| OS Client | Yes on each client | Yes on each client | Clients reconnect to new Master; client horn continues |
5. WinCC Version-Specific Behavior
| Version | Horn Editor Location | Notes |
|---|---|---|
| WinCC V6.0 / V6.2 | WinCC Explorer → Horn | Original Horn editor; limited .wav codec support |
| WinCC V7.0 / V7.3 | WinCC Explorer → Horn | Used in PCS 7 V7/V8; redundant server common failure point (see Section 6) |
| WinCC V7.4 / V7.5 | WinCC Explorer → Horn | Improved client horn behavior |
| WinCC / PCS 7 V8.0 / V8.1 / V8.2 | WinCC Explorer → Horn (same procedure) | Same procedure documented in the Siemens FAQ How is the horn editor configured for OS stations |
| WinCC Unified (V16+) | HMI Tags → Alarms → Horn configuration in the alarm configuration | Different editor; not covered by this article |
6. C-Script Workaround: Audible Alarms on OS Clients
Symptom: Horn Editor is configured correctly on the WinCC Server and on the OS Clients. Server console sounds the alarm as expected. OS clients receive the alarm message (visible in the Alarm Logging view) but do not produce any audible signal. This failure mode is documented in field reports against WinCC V7.3 in redundant server topologies.
Root cause: The Horn Editor message class binding does not always propagate to the OS client runtime in certain project configurations, particularly when the OS client project was created by project duplicator or imported from a previous version.
Solution: Use a Global Script C action on each OS client that triggers the horn programmatically via the WinCC API when an alarm of the target class arrives.
Step A - Create a Project Function
In WinCC Explorer on the OS client, navigate to Global Script → C Functions → Project Functions and create a new function:
// Function: TriggerHorn_AlarmClass
// Called from a global action on alarm arrival
void TriggerHorn_AlarmClass(char* lpszPictureName)
{
// Play WAV from project Horn folder
#pragma code("Winmm.dll")
BOOL bResult;
bResult = sndPlaySound("C:\\Program Files (x86)\\Siemens\\Automation\\WinCC\\WinCCProjects\\<ProjectName>\\Horn\\alarm.wav",
SND_ASYNC | SND_NODEFAULT);
#pragma code()
}
Adjust the WAV path to match the local project path on the OS client. The SND_ASYNC flag returns immediately so subsequent events can re-trigger; SND_NODEFAULT prevents the Windows default sound from being used if the file is missing.
Step B - Create a Global Action
Navigate to Global Script → C Actions → Global Actions and create a global action that calls the project function on alarm events:
// Global action: triggered on every alarm message
#include "apdefap.h"
int gscAction(void)
{
// Trigger horn for every incoming alarm
TriggerHorn_AlarmAlarm();
return 0;
}
Configure the trigger of this global action in the Global Script editor: set the trigger to OnMessage with the appropriate message class filter (for example, Alarm or Class.Alarm depending on the project schema).
Step C - Deploy to Clients
Save the project function and the global action on the engineering station, regenerate the OS client, and download to each client. Restart WinCC Runtime on the clients to activate the new actions.
7. File Path and Project Layout
| Path | Contents |
|---|---|
<ProjectRoot>\HmiRun\Horn\ |
Default Horn folder referenced by the Horn Editor |
<ProjectRoot>\HmiRun\Horn\alarm.wav |
Sample .wav referenced by class Alarm
|
<ProjectRoot>\Library\ |
Optional centralized library for cross-project WAV files |
<ProjectRoot>\Pas\ |
Project Script folder containing C functions compiled into the runtime |
On OS clients in a client-server topology, the Horn folder must exist locally on the client. The project duplicator normally copies it during project download, but if the folder is missing, manually copy the .wav file to the equivalent path on the client.
8. Troubleshooting Matrix
| Symptom | Likely Cause | Resolution |
|---|---|---|
| No sound on any station | Audio device disabled or driver missing | Verify playback in Windows; check audio service |
| No sound on server only | Horn Editor not configured on server | Open Horn Editor on server, assign WAV and message class |
| Sound on server, silent on clients | Horn Editor not configured on clients, or client project missing Horn folder | Configure Horn Editor on each client; verify .wav exists locally |
| Sound on clients, silent after server failover | Horn Editor not configured on standby partner | Configure Horn Editor on both redundant partners |
| Sound triggers only once, then stops | Single-instance .wav blocked by previous playback |
Use SND_ASYNC flag in API; close prior handle |
Wrong .wav plays |
Message class mapping overlap in Horn Editor | Review Horn Editor rows; remove duplicates |
| Horn Editor unavailable in Explorer | Horn component not licensed or not installed | Verify WinCC installation options; check license |
| Delay between alarm and sound on clients | Network latency in client-server data path | Tune client update cycle; reduce alarm burst rate |
9. Verification Procedure
After configuration or workaround deployment, perform the following verification on every station that is expected to produce audible alarms:
- Start WinCC Runtime on the target station.
- Trigger a test alarm of the target message class from the Alarm Logging editor (right-click → Simulate Message) or via a forced tag value.
- Confirm that the configured
.wavplays on the station-local speakers. - For redundant topologies, force a failover (disable the Master network interface or stop the Master WinCC service) and re-trigger an alarm on a client. Confirm playback continues.
- Inspect the Windows Event Viewer for
WinCC Runtimeerrors relating to horn playback.
10. Related PCS 7 Documentation
For projects running PCS 7 V8.0 or later, the official Siemens Knowledge Base article How is the horn editor configured for single-user stations, servers, redundant servers and client OS stations in SIMATIC PCS 7 / WinCC? provides the canonical procedure with screenshots. The WinCC Information System installed with the engineering software also documents the Horn Editor under Options → Horn in the help index.
Why does the horn sound on the WinCC server but not on the OS clients?
The Horn Editor must be configured independently on each OS client because the assignment is local to the WinCC station. Open the Horn Editor on each client, assign the same message classes and the same .wav file in the local project Horn folder, and verify playback. If the Horn Editor still fails on clients, deploy the C-script workaround in Section 6 to trigger the WAV via Global Script.
Do I need to configure the Horn Editor on both partners of a redundant server pair?
Yes. Each redundant partner is a separate WinCC station and runs its own Horn Editor. If only the Master is configured, the Standby will not emit audible alarms after failover until the new Master is reconfigured. Mirror the Horn Editor configuration on both partners and place the .wav file in the Horn folder on each.
Where should the .wav file be stored for the Horn Editor?
Place the .wav file in the project Horn subfolder, typically <ProjectRoot>\HmiRun\Horn\. On OS clients the same folder must exist locally. Network paths are not supported by the Horn Editor and frequently fail on client stations due to credential resolution.
Can a C script trigger the horn when the Horn Editor mapping fails?
Yes. Define a project function that calls sndPlaySound with SND_ASYNC | SND_NODEFAULT, then bind a global action to OnMessage for the target message class. This pattern is field-proven on WinCC V7.3 redundant topologies and remains functional across server failover.
Does the Horn Editor in WinCC Unified (V16+) use the same procedure?
No. WinCC Unified uses a different alarm and horn configuration path inside the HMI Tag and Alarm editors of the TIA Portal project. The procedure documented in this article applies to WinCC Classic (V6, V7, V7.3, V7.4, V7.5) and PCS 7 V8.0-V9.0.