Overview: SMS Alarm Notification from WinCC V7.0 with S7-300
WinCC V7.0 combined with an S7-300 CPU forms a classic Siemens SCADA / HMI architecture that is still in operation across process plants, water utilities, and discrete-factory lines. When the application demands that an operator or on-call engineer receive a short text message on a private cell phone whenever a critical process alarm is raised, the standard WinCC installation does not provide this capability out of the box. The feature is delivered by a separately licensed AddOn called Alarm Control Center (ACC), previously marketed as Alarm Management System.
ACC extends the WinCC Alarm Logging subsystem with multi-channel notification services: SMS via a GSM modem, e-mail via SMTP, and fax via telephony hardware. For an S7-300 based installation, ACC is the only officially supported Siemens path for converting a live process alarm into a free-form text message delivered to a mobile handset. This reference documents the architecture, licensing, configuration, and verification steps required to take an alarm bit coming from the S7-300 CPU and turn it into an SMS string delivered to a smartphone.
System Architecture and Data Flow
The end-to-end flow for an SMS alarm is:
- The S7-300 CPU detects a process condition (for example a high temperature on an analog input module) and writes a status bit or message number to a defined data block.
- WinCC V7.0 polls the S7-300 via Industrial Ethernet, PROFIBUS, or MPI using the S7 communication channel. The status change is captured in WinCC Alarm Logging as an alarm event with the configured message text, priority, and timestamp.
- The ACC AddOn subscribes to the WinCC Alarm Logging event stream. Based on its routing table, ACC determines that the alarm class triggers an SMS notification.
- ACC dispatches the alarm text to the configured GSM modem attached to the WinCC station (COM port or USB).
- The GSM modem transmits the SMS over the cellular network to the destination MSISDN.
The complete chain is therefore: S7-300 → Industrial Ethernet / PROFIBUS → WinCC V7.0 Alarm Logging → ACC Notification Service → GSM modem → cellular SMSC → mobile phone.
Prerequisites: Hardware, Software, and Licensing
Before any configuration begins, the following items must be present and verified.
| Component | Requirement | Notes |
|---|---|---|
| WinCC version | V7.0 SP3 or higher | ACC ships in versions aligned to specific WinCC releases; the ACC build must match the installed WinCC build exactly. |
| SIMATIC S7-300 station | CPU 31x or CPU 31xT, firmware V2.x or higher recommended | Older firmware may not support the message-number function block pattern that simplifies alarm generation. |
| PC station running WinCC | Windows 7 / Windows Server 2008 R2 or newer, x64 | ACC installs as a Windows service; .NET Framework and Microsoft Message Queuing are prerequisites. |
| GSM modem | Siemens TC35i, MC35i, MD720 or any AT-command compatible modem on the supported hardware list | The modem must accept standard GSM 07.05 / 07.07 AT commands for SMS PDU or text-mode submission. |
| SIM card | Active cellular subscription, no PIN lock (or PIN handled by modem) | Most industrial deployments use a dedicated M2M SIM; the originating carrier must support SMS termination (no VoLTE-only carriers). |
| ACC AddOn license | One licensed ACC seat per WinCC server | License is a floating license in the standard model and is enforced via the Automation License Manager. |
| Free communication port | COM (RS-232) or USB with manufacturer driver | USB-to-serial adapters must support the baud rate configured in ACC (typically 19200 or 9600 bps). |
Installing the Alarm Control Center AddOn
Insert the ACC installation media or mount the downloaded image. The installer detects the existing WinCC installation and matches the ACC version to it. During installation the following components are placed on the PC:
- Windows service
Siemens ACC Notification Service - Configuration tool ACC Configurator, accessed from the WinCC start menu group
- Plug-in for the WinCC Alarm Logging editor
- SQL tables in the WinCC archive database for notification history
- The Notification node in the WinCC Explorer tree
After installation, transfer the ACC license to the local license container using the Automation License Manager. Until the license is recognized, ACC starts in a degraded mode in which it logs incoming events but does not dispatch any notifications.
- Start the Automation License Manager.
- Connect to the local PC.
- Drag the license file (.zip or .alf) onto the destination container.
- Restart the ACC Notification Service.
- Verify the service status with
sc query "Siemens ACC Notification Service"from an elevated command prompt.
Configuring the GSM Modem Interface
The GSM modem is the physical bridge between the WinCC station and the cellular network. ACC must be told how to find the modem and how to talk to it.
- Open the ACC Configurator from the Siemens start menu group.
- Select Notification Channels → SMS → Modem.
- Create a new modem entry and enter:
- Port: COM1, COM2, or the COM number assigned to the USB adapter (verify in Windows Device Manager → Ports).
-
Baud rate: Match the modem's autobaud detection. Most Siemens industrial modems default to
19200. -
Initialization string:
AT+CMGF=1for SMS text mode (preferred for ASCII) orAT+CMGF=0for PDU mode (required for non-ASCII character sets). - PIN: The 4-digit SIM PIN, or blank if the SIM has been unlocked in a phone first.
- Click Test connection. A successful test returns the modem's
AT+CGMI(manufacturer),AT+CGMR(firmware), and the current signal strengthAT+CSQ. A return value of+CSQ: 15,99or higher indicates a usable signal. - Save the configuration.
If the test connection fails, the most common root causes are an incorrect COM port number, a USB-to-serial driver mismatch, a locked SIM (three failed PIN attempts will require a PUK), or insufficient power on the modem's 12 V / 24 V supply rail.
Defining SMS Recipients and Routing Rules
ACC uses a two-stage model: a recipient is a person or role with a phone number, and a routing rule is the condition under which a particular recipient receives a particular class of alarm.
| Field | Description | Example |
|---|---|---|
| Recipient name | Free text label | Shift_Engineer_OnCall |
| MSISDN | Full international number with country code, no leading + | 4917123456789 |
| Active window | Time-of-day mask and weekday mask | Mon–Fri 17:00–06:00, all day Sat / Sun |
| Escalation delay | Seconds to wait before next recipient if not acknowledged | 120 s |
| Escalation chain | Ordered list of recipients for a single alarm | Shift_Engineer_OnCall → Plant_Manager |
Routing rules can filter on:
- Alarm class (for example Error, Warning, System)
- Alarm priority (numeric 0–16)
- Specific message number or text-pattern match
- Source area (the AS name from the S7-300 program)
- Value of an associated process tag (for example only fire when tag value > 80)
A typical rule for a high-priority pump trip is: If class = Error AND priority ≥ 12 AND text contains "PUMP_01" AND time is outside office hours → send SMS to Shift_Engineer_OnCall; if not acknowledged within 120 s, escalate to Plant_Manager.
S7-300 Program Structure for Alarm Generation
On the S7-300 side, the cleanest implementation is to use the standard SFB 9 / SFB 10 message-block pattern or the WR_USMSG style of STEP 7 instruction. Each alarm condition is a single bit on a data block that is then mapped to a WinCC message number.
Sample STL excerpt for one alarm bit:
// DB100 "AlarmBits"
A I 0.0 // E-Stop pressed
S DB100.DBX0.0 // Bit 0.0 latched
// Optional: also write message number directly
CALL "MSG_SEND" // Custom FB wrapping SFB 9
EV_ID := W#16#1000
SIG := DB100.DBX0.0
SD := W#16#1
...
The EV_ID is the message event ID that WinCC reads in its alarm configuration. With the standard S7 message-number method, the message text is configured entirely on the WinCC side, which keeps the PLC program language-agnostic and makes it possible to re-translate the texts without re-programming the CPU.
For chronological ordering of messages (essential for shift-handover logs and for SMS dispatch order), the S7-300 CPU time must be synchronized. Reference configuration patterns are documented in the Siemens support entry How do you implement chronological messaging with S7-300 CPUs and WinCC? (Siemens support entry ID 23730649).
Integrating WinCC Alarm Logging with ACC
Once the S7-300 alarm bits are wired into WinCC Alarm Logging, the integration with ACC is a single attribute in the Alarm Logging editor. In WinCC Explorer open Alarm Logging, then for each relevant message row set the Notify attribute to Yes. ACC subscribes to all such messages and applies the routing rules defined in the ACC Configurator.
The message text can include placeholder fields that are expanded at notification time:
-
@1%s@→ substitute process tag value 1 (string) -
@2%f@→ substitute process tag value 2 as float -
@3%t@→ substitute timestamp from the alarm event -
@4%d@→ substitute process tag value 4 as decimal integer
For example, a message text of Boiler 1 temperature high: @2%f@ C at @3%t@ produces an SMS of the form Boiler 1 temperature high: 91.4 C at 14:23:07. SMS length is limited to 160 characters in 7-bit GSM encoding or 140 in 8-bit UCS-2, so alarm texts should be planned within that envelope; long texts are split into concatenated segments by the modem.
Time-Scheduled and Escalation-Based SMS Dispatch
ACC keeps a state machine per active alarm. The state transitions are:
- Triggered — the alarm event was received from WinCC Alarm Logging and matches at least one routing rule.
-
Dispatched — the SMS has been submitted to the GSM modem and the modem has acknowledged with
+CMGS. - Pending acknowledgement — the dispatch timer is running; if no operator acknowledgement is received from the WinCC HMI within the escalation delay, the alarm is escalated to the next recipient in the chain.
- Acknowledged — the operator pressed the acknowledge button on a WinCC client; SMS dispatch stops.
- Cleared — the underlying process condition returned to normal; the clear event is also captured and can be sent as a separate SMS.
Time-of-day routing is implemented with calendar entries. A common pattern is one calendar for office hours (07:00–17:00 Monday–Friday) and another for out-of-hours. Two routing rules then target the same alarm: the office-hours rule routes the SMS to the desk phone of the on-shift operator, and the out-of-hours rule routes to the on-call engineer's mobile.
Verification and Commissioning Procedure
Before the system is handed over to operations, run the following verification sequence on the live plant.
-
Modem registration check. From the ACC Configurator run Test connection and confirm
AT+CREG?returns0,1(registered on home network) or0,5(registered, roaming). - Self-test SMS. Use the ACC Configurator Send test message button. The destination phone must receive the test text within 30 s in the same country, 60 s internationally.
-
End-to-end alarm test. Force the S7-300 alarm bit (for example by setting DB100.DBX0.0 from the STEP 7 online monitor) and confirm:
- The alarm appears in WinCC Alarm Logging with the correct timestamp.
- ACC dispatches the SMS within 5 s of the alarm event.
- The SMS body contains the substituted process values.
- The operator's acknowledgement on the WinCC HMI halts the escalation timer.
- Escalation test. Trigger the alarm, do not acknowledge on the HMI, and confirm the second recipient receives the SMS after the configured escalation delay.
- Failure-mode test. Unplug the GSM antenna and trigger the alarm. ACC should record Dispatch failed: modem not responding in the notification log and retry per the configured retry policy (default 3 attempts, exponential backoff).
- Power-loss test. Power-cycle the WinCC station. On reboot ACC must reconnect to the modem, restore its configuration, and resume dispatch.
The notification log is held in the WinCC archive database and can be exported to CSV for the SAT (Site Acceptance Test) documentation. Record the SIM card ICCID, MSISDN of each test recipient, and the time-stamped result of each verification step.
Troubleshooting Common SMS Dispatch Failures
| Symptom | Likely root cause | Action |
|---|---|---|
| ACC Configurator reports Modem not responding | Wrong COM port, baud-rate mismatch, or driver issue | Verify COM port in Device Manager; try a lower baud rate; reinstall the USB-to-serial driver |
| Test connection OK, but no SMS reaches the phone | SIM PIN still required, or destination number malformed | Insert the SIM in a phone and remove the PIN; verify MSISDN is in international format without a leading + |
| Alarms visible in WinCC but never reach ACC | The message number has the Notify attribute set to No | Open Alarm Logging, set Notify = Yes on every relevant message row |
| Dispatch succeeds but the operator phone never displays the text | Message body contains unsupported characters; SMSC rejected the PDU | Restrict to the GSM 03.38 7-bit alphabet; avoid emoji and accented characters; enable PDU logging in ACC |
| SMS arrives with corrupted timestamp | WinCC station time is not synchronized | Configure an NTP or SICLOCK time source; reference Siemens support entry 23730649 for S7-300 time-of-day synchronization |
| Multiple recipients in the escalation chain all receive the SMS at once | Acknowledgement timer not configured | In the routing rule, set Escalation delay > 0 and Require acknowledgement = Yes |
| ACC service stops on reboot | License not transferred, or service set to Manual | Set service to Automatic; verify license in Automation License Manager |
| SMS arrives hours after the alarm | SIMCARD SMSC number not configured on the modem | Set the SMSC in the modem with AT+CSCA="+49xxxxxxxxxx" and persist with AT&W
|
Alternative Approaches Without the ACC AddOn
Although ACC is the official Siemens path, two workaround patterns appear in the field where the ACC license is not available or where the project budget does not permit the AddOn.
- Third-party VBScript inside WinCC. A cyclic WinCC action can read the current alarm list via the WinCC OLE DB provider and submit an SMS through a generic GSM modem connected to the same PC. The implementation must handle retries, time-of-day filtering, and the absence of escalation, all of which ACC provides natively.
- S7-300 with a CP 340 / CP 341 serial module and a modem on the field side. The PLC itself sends an SMS by writing AT commands to the serial module. This approach is fragile (no buffering, no retry, PLC scan-time dependent) and is not recommended for safety-relevant alarms.
For new installations the ACC AddOn remains the recommended path because the cost of the license is small compared with the engineering effort of building a custom notification engine that must be maintained for the next 10–15 years of plant life.
FAQ
Is the ACC AddOn included in the standard WinCC V7.0 installation?
No. The Alarm Control Center (ACC) AddOn is a separately licensed component that must be installed on top of an existing WinCC V7.0 base installation. The base system runs and displays alarms normally without it; only the SMS / e-mail / fax notification subsystem is absent.
Which GSM modems does WinCC ACC support?
ACC is designed for AT-command compatible industrial modems such as the Siemens TC35i, MC35i, and MD720 series, and any third-party modem that implements the GSM 07.05 / 07.07 SMS PDU or text-mode command set. The modem must be installed on a COM port or via a vendor-supported USB driver.
Can ACC send SMS messages to a private cell phone, and what is the maximum message length?
Yes. ACC dispatches SMS to any reachable MSISDN, including private mobile numbers. A single SMS is limited to 160 characters in the GSM 7-bit alphabet, or 140 characters in 8-bit UCS-2. Longer texts are split into concatenated segments by the modem.
How do I make sure the S7-300 alarm timestamp is correct in the SMS?
Synchronize the S7-300 CPU time and the WinCC station time from the same NTP or SICLOCK source. Chronological messaging configuration for S7-300 CPUs is documented in Siemens support entry 23730649.
What happens if the GSM modem loses the cellular network while an alarm is active?
ACC logs the dispatch failure, retries the SMS per the configured retry policy (default 3 attempts with exponential backoff), and continues trying until the modem re-registers or the operator acknowledges the alarm on a WinCC client. All attempts are recorded in the notification history for later audit.