SPS-Störmeldungen gelangen per SMS aufs Handy der Bereitschaft, indem das SMS-Gateway die Signalkette zwischen Steuerung und Mobilfunknetz schließt. Für Siemens S7-1200 und S7-1500 ist der TMAIL_C-Funktionsbaustein in TIA Portal der schnellste Weg, für Beckhoff TwinCAT empfiehlt sich IotHttpRequest als aktiver HTTP-Push, und für Wago 750 Feldbuscontroller genügt ein einziger Konfigurationsschritt am SMSEagle, weil der Modbus-TCP-Slave bereits werksseitig aktiv ist.
Warum SMS für SPS-Störmeldungen der zuverlässigste Alarmkanal ist
Eine Hebeanlage fällt nachts aus, eine Kompressorsteuerung meldet Druckverlust, eine Abwasserpumpe steht still. Ob jemand die Meldung sieht, hängt davon ab, wie der Alarmweg aufgebaut ist. E-Mail landet im Posteingang, Scada-Fenster sind nachts unbeobachtet, und App-Benachrichtigungen scheitern, wenn kein Internet im Büro verfügbar ist. SMS kommt auch auf dem Sperrbildschirm an, ohne App und ohne Internetverbindung auf Empfängerseite, solange der Empfänger Mobilfunknetz hat. Laut Branchenerhebungen liegt die Öffnungsrate von SMS-Nachrichten bei über 90 Prozent, weit vor E-Mail. Für industrielle Anwendungen kommt hinzu, dass das SMS-Gateway im eigenen Netz sitzt und nicht von einem externen Clouddienst abhängt.
Vier Wege von der SPS zur SMS: ein Überblick
Zwischen einer SPS und dem SMSEagle-Gateway gibt es vier technische Wege, die je nach vorhandener Hardware und Programmierkenntnissen unterschiedlich gut passen:
| Weg | Voraussetzung SPS-seitig | Konfigurationsaufwand | Bewertung |
|---|---|---|---|
| Digitaleingang am SMSEagle | Potenzialfreier DO-Ausgang der SPS auf DI-Eingang des Gateways | Kabel legen, Trigger-Regel am Gateway anlegen | Sehr einfach, kein Netzwerk |
| E-Mail (Email-to-SMS) | SPS-Programm oder CP kann SMTP senden (z. B. TMAIL_C) | SMTP-Ziel auf SMSEagle-IP setzen | Einfach, push-basiert |
| Modbus-TCP-Polling | MB_SERVER (Siemens) oder eingebauter Slave (Wago) auf Port 502 | Probe am SMSEagle anlegen, Register konfigurieren | Gut, kein SPS-Code-Änderung bei Wago |
| HTTP-REST-API (aktiver Push) | SPS-Programm kann HTTP senden (TwinCAT IotHttpRequest, Wago CODESYS) | API-Baustein oder Skript im SPS-Programm | Sehr gut, sofortiger Push |
Siemens S7-1200 und S7-1500: welcher Weg funktioniert wie?
Die Siemens SIMATIC S7-1200 und S7-1500 sind die aktuellen Baureihen für den Einstiegs- bis Hochleistungsbereich. Beide werden in TIA Portal programmiert und haben eine integrierte PROFINET/Ethernet-Schnittstelle, über die TCP/IP-basierte Kommunikation ohne CP-Modul möglich ist. Drei Wege führen von dort zum SMSEagle:
Weg 1: TMAIL_C sendet E-Mail an SMSEagle
Ab TIA Portal V13 steht der Funktionsbaustein TMAIL_C für S7-1200 (CPU-Firmware V4.0 und höher) und S7-1500 zur Verfügung. TMAIL_C öffnet eine SMTP-Verbindung zum angegebenen Mailserver und versendet eine E-Mail. Der interne SMTP-Server des SMSEagle akzeptiert diese E-Mail und wandelt sie sofort in eine SMS um. Die Empfängeradresse folgt dem Format +4915112345678@IP-DES-SMSEAGLE, also zum Beispiel +491511234@192.168.1.100. So landet die Rufnummer automatisch im Empfängerfeld.
- TMAIL_C im TIA Portal unter Kommunikation, Weitere, E-Mail einbinden
- Verbindungsparameter SMTP_Server auf IP-Adresse des SMSEagle setzen, Port 25 (oder 587 mit TLS)
- SENDER und TO gemäß Format RUFNUMMER@SMSEAGLE-IP befüllen
- Baustein in OB1 oder im Störfall-OB (OB82, OB86) aufrufen
- Flankengetriggert auslösen, damit nicht bei jeder SPS-Zykluszeit eine SMS entsteht
Beispiel: Drucksensor an I 0.3 signalisiert Unterschreitung. OB82 wird ausgelöst, TMAIL_C sendet an +49151@192.168.10.50. SMSEagle sendet binnen Sekunden die SMS.
Weg 2: MB_SERVER macht die S7 zum Modbus-TCP-Slave
Ab TIA Portal V12 steht der Funktionsbaustein MB_SERVER für die S7-1200 bereit, die S7-1500 unterstützt ihn ab TIA Portal V13. MB_SERVER aktiviert einen Modbus-TCP-Listener auf Port 502 und exponiert einen frei definierbaren Datenbereich (MB_HOLD_REG) als Holding-Register. Das SPS-Programm beschreibt diese Register mit Störbits oder Messwerten. SMSEagle fragt die Register ab Version 6.30 direkt ab, ohne Middleware.
- MB_SERVER in OB1 einbinden, PORT auf eine freie TCP-Verbindungsnummer setzen (z. B. 255)
- MB_HOLD_REG zeigt auf einen Datenblock, der die Störbits enthält, z. B. DB10.DBX0.0 für Bit 0
- SMSEagle: unter Network Monitoring neue Modbus-TCP-Probe anlegen, Ziel-IP und Port 502 der S7 eintragen
- Funktionscode 3 (Read Holding Registers) oder 1 (Read Coils) wählen, Registeradresse des Störbits eintragen
- Alarmbedingung festlegen, z. B. Register 0 gleich 1, SMS-Text und Empfängernummer hinterlegen
Beckhoff TwinCAT: aktiver HTTP-Push oder passives Modbus-Polling
Beckhoff TwinCAT läuft auf Windows-basierten Industrial PCs und hat deshalb Zugriff auf den vollen TCP/IP-Stack der Windows-Netzwerkschicht. Das erleichtert den aktiven HTTP-Push erheblich, weil keine serielle oder proprietäre Verbindung nötig ist.
Weg 1: IotHttpRequest sendet HTTP-POST an SMSEagle-API
Mit der Lizenz TF6760 (TC3 IoT Communicator) steht in TwinCAT 3 der Funktionsbaustein FB_IotHttpRequest zur Verfügung. Dieser Baustein baut eine HTTP-Verbindung zum SMSEagle auf und sendet einen HTTP-POST an den API-Endpunkt /api/v1/alarm mit dem Bearer-Token des Gateways. Die Nachricht wird als JSON im Requestbody übergeben. Das Ergebnis ist ein sofortiger Push ohne Polling-Verzögerung.
- TF6760-Lizenz auf dem TwinCAT-Rechner aktivieren, Bibliothek Tc2_IotBase einbinden
- FB_IotHttpRequest-Instanz anlegen, URI auf http://SMSEAGLE-IP/api/v1/alarm setzen
- HTTP-Method auf POST setzen, Authorization-Header mit Bearer-Token befüllen
- RequestBody als JSON: { "to": "+4915112345678", "message": "Störung: Pumpe P1 ausgefallen" }
- Baustein flankengesteuert aus dem Störfall-Taskkontext aufrufen
- Alternativ ohne TF6760: TF6310 (TC3 TCP/IP) und FB_SocketConnect/FB_SocketSend für rohes HTTP, mehr Implementierungsaufwand
Weg 2: Modbus-TCP-Server, passiv von Connect oder SMSEagle gepollt
Wer keine TF6760-Lizenz einsetzen möchte, kann in TwinCAT 3 einen Modbus-TCP-Server aktivieren. Mit der Bibliothek TF6250 (TC3 Modbus TCP) ist das in wenigen Schritten erledigt. TwinCAT exponiert dann Prozessvariablen als Modbus-Register, die SMSEagle oder die smsreach-Plattform zyklisch abfragen. Störbits werden als Coils oder Holding-Register abgebildet.
Wago 750 und PFC: Modbus-TCP-Polling ohne einen Programmierungsschritt
Wago 750 Feldbuscontroller wie der 750-841, 750-880 oder 750-852 bringen Modbus-TCP-Slave-Funktionalität ohne zusätzliche Programmierung mit. Die am I/O-Knoten gesteckten Eingangs- und Ausgangsmodule werden automatisch als Modbus-Register gemappt. Die digitalen Eingänge liegen ab Adresse 0x0000 als Read Discrete Inputs (Funktionscode 2), die Ausgänge ab 0x0200 als Read Coils (Funktionscode 1).
SMSEagle muss nur wissen, an welcher Registeradresse das Störbit liegt. Eine Probe im Webinterface genügt:
- SMSEagle Webinterface öffnen, unter Network Monitoring neue Modbus-TCP-Probe anlegen
- Ziel-IP des Wago-Controllers eintragen, Port 502, Unit ID 1 (Standard bei Wago TCP)
- Funktionscode 2 (Read Discrete Inputs) für digitale Eingänge wählen
- Registeradresse des Störbits eintragen, zum Beispiel 0 für den ersten digitalen Eingang (DI 1)
- Alarmbedingung Wert gleich 1 setzen, SMS-Text und Empfängernummer hinterlegen, Abfrageintervall 10 Sekunden
- Kein einziger Schritt am Wago oder in e!COCKPIT nötig
Die Wago PFC100 und PFC200 (Linux-basiert, CODESYS 3.5) erlauben darüber hinaus einen aktiven E-Mail- oder HTTP-Push aus dem CODESYS-Programm. Die CODESYS-Standardbibliothek bietet SmtpClient-Bausteine, WAGO veröffentlicht auf GitHub unter dem Account WAGO eigene IEC-61131-3-Bibliotheken für E-Mail, HTTP und MQTT, die kostenfrei verfügbar sind.
Einfachester Weg für ältere SPS und LOGO!: Digitaleingang am SMSEagle
Für Siemens LOGO!, S7-300/400 ohne TCP/IP-fähige CPU oder ältere Beckhoff- und Wago-Geräte ohne Ethernet ist ein Netzwerkweg manchmal nicht praktikabel. In solchen Fällen genügt ein potenzialfreier Relaiskontakt: Ein Digitalausgang der SPS schließt bei Störung einen Kontakt, der auf einen der vier Digitaleingänge des SMSEagle-NXS-Gateways geführt wird. Das Gateway erkennt den Pegelwechsel und löst sofort eine SMS aus.
- Zwei Kabeladern von einem DO-Relaisausgang der SPS zum DI-Klemmanschluss des SMSEagle legen
- Im SMSEagle-Webinterface unter I/O Control, Digital Inputs den entsprechenden Eingang auswählen
- Trigger-Bedingung auf steigende Flanke oder High-Pegel setzen
- SMS-Text und Empfängernummern hinterlegen
- Kein Netzwerk, keine IP-Adresse, keine Programmänderung in der SPS nötig
Die vier Digitaleingänge des SMSEagle NXS können vier unabhängige Störquellen abbilden, zum Beispiel Pumpe P1, Pumpe P2, Lüftung und Heizung, jeder mit eigenem SMS-Text und eigener Empfängerliste.
Hersteller und Protokolle im direkten Vergleich
| SPS / Hersteller | Empfohlener Weg | Voraussetzung | Alternativweg |
|---|---|---|---|
| Siemens S7-1200 (V4.0+) | TMAIL_C in TIA Portal, E-Mail an SMSEagle-SMTP | Integriertes PROFINET, kein CP-Modul | MB_SERVER, Modbus-TCP-Polling durch SMSEagle |
| Siemens S7-1500 | TMAIL_C oder MB_SERVER | Integriertes PROFINET, TIA Portal V13+ | Digitaleingang am SMSEagle |
| Siemens LOGO! 0BA8 | Potenzialfreier Kontakt an SMSEagle DI | Relaisausgang am LOGO! | E-Mail wenn LOGO! 8.FS4 mit Ethernet |
| Beckhoff TwinCAT 3 | IotHttpRequest (TF6760), HTTP-POST an API | TF6760-Lizenz, TwinCAT 3.1 Build 4022+ | Modbus-TCP-Server (TF6250), passives Polling |
| Wago 750 Feldbus | Modbus-TCP-Polling, kein Programmieraufwand | IP-Adresse am Wago, SMSEagle v6.30+ | Potenzialfreier DO-Kontakt an SMSEagle DI |
| Wago PFC100/PFC200 | Modbus-TCP-Polling oder CODESYS SmtpClient | Ethernet, CODESYS 3.5 | WAGO Open-Source HTTP-Bibliothek auf GitHub |
Wann reicht SMSEagle direkt, wann braucht man eine Alarmierungsplattform?
Die direkte Anbindung von SPS an SMSEagle sendet die Störmeldung an eine oder mehrere feste Rufnummern. Was sie nicht leistet: nachprüfen, ob jemand reagiert hat, bei fehlender Reaktion an die nächste Person eskalieren oder einen rotierenden Bereitschaftsplan berücksichtigen. Sobald diese Anforderungen bestehen, schaltet man eine Alarmierungsplattform zwischen SPS und Gateway.
| SMSEagle direkt | SMSEagle mit smsreach Connect | |
|---|---|---|
| Empfänger | Feste Rufnummern pro Alarm | Bereitschaftsplan mit Rotation und Lückenwarnung |
| Quittierung | Keine, SMS ist Einbahnstraße | Per SMS-Antwort mit Quittierungscode, Reaktionszeitmessung |
| Eskalation | Weitere Rufnummern im selben Alert | Automatisch bei fehlender Quittierung, mehrstufig |
| Protokoll | Versandlog am Gateway | Lückenloses Protokoll mit Delivery-Reports und PDF-Export |
| Mehrere SPS und Standorte | Je SPS und Gateway einzeln konfigurieren | Zentrale Plattform für alle Quellen |
| Störungsquellen differenzieren | Bis zu 16 Modbus-Proben oder 4 DI am Gateway | Beliebig viele Quellen über API oder Connect |
Wie SMS-Alarm und Quittierung in der Praxis aussehen, zeigt die Live-Demo unter smsreach.io/demo: Ein echter Alarm geht aufs Handy, die Quittierung läuft per SMS-Antwort, die Plattform zeigt den Eingang in Echtzeit. Geeignete SMSEagle-Hardware für SPS-Anbindungen, vom NXS-9700 mit vier Digitaleingängen bis zum NXS-9750 mit zwei Mobilfunkmodulen für Redundanz, gibt es mit Beratung vom autorisierten SMSEagle Gold Partner unter smsreach.io/geraete. Was die Plattform hinter dem Gateway für Dienstplan, Eskalation und Protokollierung leistet, beschreibt smsreach.io/plattform.
Häufig gestellte Fragen
Kann ich eine Siemens S7-1200 ohne CP-Modul an SMSEagle anbinden?
Ja. Die S7-1200 hat ab CPU-Firmware V4.0 eine integrierte PROFINET/Ethernet-Schnittstelle, über die zwei Wege möglich sind. Erstens: Der TMAIL_C-Funktionsbaustein sendet eine E-Mail an den internen SMTP-Server des SMSEagle, das Gateway wandelt sie in eine SMS um. Zweitens: Der MB_SERVER-Baustein aktiviert einen Modbus-TCP-Server auf Port 502, den das SMSEagle ab Version 6.30 direkt pollt. Beide Wege benötigen kein CP-Modul und keinen Cloud-Dienst.
Welche TwinCAT-Lizenz brauche ich für den HTTP-Alarm an SMSEagle?
Für den IotHttpRequest-Funktionsbaustein benötigen Sie die Lizenz TF6760 (TC3 IoT Communicator), die neben HTTP auch MQTT abdeckt. Ohne diese Lizenz ist der Weg über TF6310 (TC3 TCP/IP) möglich: Dabei baut der Baustein FB_SocketConnect, FB_SocketSend und FB_SocketClose eine eigene HTTP-Verbindung auf, was mehr Implementierungsaufwand bedeutet. Die einfachere Alternative ohne Lizenzkosten ist der passive Modbus-TCP-Weg, bei dem Connect oder SMSEagle die TwinCAT-Register pollt.
Wie verbinde ich einen Wago 750 ohne Programmierkenntnisse mit SMSEagle?
Wago 750 Feldbuscontroller (z. B. 750-841, 750-880, 750-852) haben Modbus-TCP-Slave-Funktionalität werksseitig aktiv. Die digitalen Eingangs- und Ausgangsmodule des I/O-Knotens sind automatisch als Modbus-Register gemappt. Im SMSEagle öffnen Sie unter Network Monitoring eine neue Modbus-TCP-Probe, tragen IP-Adresse und Port 502 des Wago ein und wählen die Registeradresse des Störbits. Kein einziger Programmierschritt am Wago nötig.
Wann reicht der Digitaleingang am SMSEagle, wann brauche ich Modbus TCP?
Der Digitaleingang genügt für einen Sammelstörmelder: ein Ausgang der SPS schließt einen potenzialfreien Kontakt, der auf einen der vier DI-Eingänge des SMSEagle-Gateways liegt. Das Gateway löst bei jedem Pegelwechsel eine SMS aus. Modbus TCP ist die bessere Wahl, wenn mehrere Störbits einzeln unterschieden werden müssen, Messwerte wie Druck, Temperatur oder Drehzahl mit überwacht werden sollen oder die SPS kein Feld-I/O zum Gateway führen kann. Ab SMSEagle Version 6.30 lassen sich bis zu 16 Modbus-Proben parallel abfragen.
Wann ist eine Alarmierungsplattform sinnvoll, wann reicht SMSEagle direkt?
SMSEagle direkt genügt für feste Rufnummern und einfache Störbitkombinationen. Sobald ein rotierender Bereitschaftsplan besteht, automatische Eskalation bei fehlender Quittierung gefordert ist oder ein lückenloses Protokoll zum Nachweis benötigt wird, schaltet man eine Alarmierungsplattform dazwischen. Die Plattform ermittelt, wer Dienst hat, sendet die SMS über das SMSEagle, wartet auf Quittierung per SMS-Antwort und eskaliert bei Ausbleiben automatisch an die nächste Stufe.
