SPS-Stoermeldungen gelangen per SMS aufs Handy der Bereitschaft, indem das SMS-Gateway die Signalkette zwischen Steuerung und Mobilfunknetz schliesst. Fuer Siemens S7-1200 und S7-1500 ist der TMAIL_C-Funktionsbaustein in TIA Portal der schnellste Weg, fuer Beckhoff TwinCAT empfiehlt sich IotHttpRequest als aktiver HTTP-Push, und fuer Wago 750 Feldbuscontroller genuegt ein einziger Konfigurationsschritt am SMSEagle, weil der Modbus-TCP-Slave bereits werksseitig aktiv ist.
Warum SMS fuer SPS-Stoermeldungen der zuverlaessigste Alarmkanal ist
Eine Hebeanlage faellt nachts aus, eine Kompressorsteuerung meldet Druckverlust, eine Abwasserpumpe steht still. Ob jemand die Meldung sieht, haengt 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 Buero verfuegbar ist. SMS kommt auch auf dem Sperrbildschirm an, ohne App und ohne Internetverbindung auf Empfaengerseite, solange der Empfaenger Mobilfunknetz hat. Laut Branchenerhebungen liegt die Oeffnungsrate von SMS-Nachrichten bei ueber 90 Prozent, weit vor E-Mail. Fuer industrielle Anwendungen kommt hinzu, dass das SMS-Gateway im eigenen Netz sitzt und nicht von einem externen Clouddienst abhaengt.
Vier Wege von der SPS zur SMS: ein Ueberblick
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-Aenderung 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 fuer den Einstiegs- bis Hochleistungsbereich. Beide werden in TIA Portal programmiert und haben eine integrierte PROFINET/Ethernet-Schnittstelle, ueber die TCP/IP-basierte Kommunikation ohne CP-Modul moeglich ist. Drei Wege fuehren von dort zum SMSEagle:
Weg 1: TMAIL_C sendet E-Mail an SMSEagle
Ab TIA Portal V13 steht der Funktionsbaustein TMAIL_C fuer S7-1200 (CPU-Firmware V4.0 und hoeher) und S7-1500 zur Verfuegung. TMAIL_C oeffnet 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 Empfaengeradresse folgt dem Format +4915112345678@IP-DES-SMSEAGLE, also zum Beispiel +491511234@192.168.1.100. So landet die Rufnummer automatisch im Empfaengerfeld.
- 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 gemaess Format RUFNUMMER@SMSEAGLE-IP befuellen
- Baustein in OB1 oder im Stoerfall-OB (OB82, OB86) aufrufen
- Flankengetriggert ausloesen, damit nicht bei jeder SPS-Zykluszeit eine SMS entsteht
Beispiel: Drucksensor an I 0.3 signalisiert Unterschreitung. OB82 wird ausgeloest, 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 fuer die S7-1200 bereit, die S7-1500 unterstuetzt 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 Stoerbits 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 Stoerbits enthaelt, z. B. DB10.DBX0.0 fuer 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) waehlen, Registeradresse des Stoerbits eintragen
- Alarmbedingung festlegen, z. B. Register 0 gleich 1, SMS-Text und Empfaengernummer hinterlegen
Beckhoff TwinCAT: aktiver HTTP-Push oder passives Modbus-Polling
Beckhoff TwinCAT laeuft 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 proprietaere Verbindung noetig 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 Verfuegung. 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 uebergeben. Das Ergebnis ist ein sofortiger Push ohne Polling-Verzoegerung.
- 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 befuellen
- RequestBody als JSON: { "to": "+4915112345678", "message": "Stoerung: Pumpe P1 ausgefallen" }
- Baustein flankengesteuert aus dem Stoerfall-Taskkontext aufrufen
- Alternativ ohne TF6760: TF6310 (TC3 TCP/IP) und FB_SocketConnect/FB_SocketSend fuer rohes HTTP, mehr Implementierungsaufwand
Weg 2: Modbus-TCP-Server, passiv von Connect oder SMSEagle gepollt
Wer keine TF6760-Lizenz einsetzen moechte, 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. Stoerbits 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-Funktionalitaet ohne zusaetzliche Programmierung mit. Die am I/O-Knoten gesteckten Eingangs- und Ausgangsmodule werden automatisch als Modbus-Register gemappt. Die digitalen Eingaenge liegen ab Adresse 0x0000 als Read Discrete Inputs (Funktionscode 2), die Ausgaenge ab 0x0200 als Read Coils (Funktionscode 1).
SMSEagle muss nur wissen, an welcher Registeradresse das Stoerbit liegt. Eine Probe im Webinterface genuegt:
- SMSEagle Webinterface oeffnen, 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) fuer digitale Eingaenge waehlen
- Registeradresse des Stoerbits eintragen, zum Beispiel 0 fuer den ersten digitalen Eingang (DI 1)
- Alarmbedingung Wert gleich 1 setzen, SMS-Text und Empfaengernummer hinterlegen, Abfrageintervall 10 Sekunden
- Kein einziger Schritt am Wago oder in e!COCKPIT noetig
Die Wago PFC100 und PFC200 (Linux-basiert, CODESYS 3.5) erlauben darueber hinaus einen aktiven E-Mail- oder HTTP-Push aus dem CODESYS-Programm. Die CODESYS-Standardbibliothek bietet SmtpClient-Bausteine, WAGO veroeffentlicht auf GitHub unter dem Account WAGO eigene IEC-61131-3-Bibliotheken fuer E-Mail, HTTP und MQTT, die kostenfrei verfuegbar sind.
Einfachester Weg fuer aeltere SPS und LOGO!: Digitaleingang am SMSEagle
Fuer Siemens LOGO!, S7-300/400 ohne TCP/IP-faehige CPU oder aeltere Beckhoff- und Wago-Geraete ohne Ethernet ist ein Netzwerkweg manchmal nicht praktikabel. In solchen Faellen genuegt ein potenzialfreier Relaiskontakt: Ein Digitalausgang der SPS schliesst bei Stoerung einen Kontakt, der auf einen der vier Digitaleingaenge des SMSEagle-NXS-Gateways gefuehrt wird. Das Gateway erkennt den Pegelwechsel und loest 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 auswaehlen
- Trigger-Bedingung auf steigende Flanke oder High-Pegel setzen
- SMS-Text und Empfaengernummern hinterlegen
- Kein Netzwerk, keine IP-Adresse, keine Programmaenderung in der SPS noetig
Die vier Digitaleingaenge des SMSEagle NXS koennen vier unabhaengige Stoerquellen abbilden, zum Beispiel Pumpe P1, Pumpe P2, Lueftung und Heizung, jeder mit eigenem SMS-Text und eigener Empfaengerliste.
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 Stoermeldung an eine oder mehrere feste Rufnummern. Was sie nicht leistet: nachpruefen, ob jemand reagiert hat, bei fehlender Reaktion an die naechste Person eskalieren oder einen rotierenden Bereitschaftsplan beruecksichtigen. Sobald diese Anforderungen bestehen, schaltet man eine Alarmierungsplattform zwischen SPS und Gateway.
| SMSEagle direkt | SMSEagle mit smsreach Connect | |
|---|---|---|
| Empfaenger | Feste Rufnummern pro Alarm | Bereitschaftsplan mit Rotation und Lueckenwarnung |
| Quittierung | Keine, SMS ist Einbahnstrasse | Per SMS-Antwort mit Quittierungscode, Reaktionszeitmessung |
| Eskalation | Weitere Rufnummern im selben Alert | Automatisch bei fehlender Quittierung, mehrstufig |
| Protokoll | Versandlog am Gateway | Lueckenloses Protokoll mit Delivery-Reports und PDF-Export |
| Mehrere SPS und Standorte | Je SPS und Gateway einzeln konfigurieren | Zentrale Plattform fuer alle Quellen |
| Stoerungsquellen differenzieren | Bis zu 16 Modbus-Proben oder 4 DI am Gateway | Beliebig viele Quellen ueber 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 laeuft per SMS-Antwort, die Plattform zeigt den Eingang in Echtzeit. Geeignete SMSEagle-Hardware fuer SPS-Anbindungen, vom NXS-9700 mit vier Digitaleingaengen bis zum NXS-9750 mit zwei Mobilfunkmodulen fuer Redundanz, gibt es mit Beratung vom autorisierten SMSEagle Gold Partner unter smsreach.io/geraete. Was die Plattform hinter dem Gateway fuer 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, ueber die zwei Wege moeglich 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 benoetigen kein CP-Modul und keinen Cloud-Dienst.
Welche TwinCAT-Lizenz brauche ich fuer den HTTP-Alarm an SMSEagle?
Fuer den IotHttpRequest-Funktionsbaustein benoetigen Sie die Lizenz TF6760 (TC3 IoT Communicator), die neben HTTP auch MQTT abdeckt. Ohne diese Lizenz ist der Weg ueber TF6310 (TC3 TCP/IP) moeglich: 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-Funktionalitaet werksseitig aktiv. Die digitalen Eingangs- und Ausgangsmodule des I/O-Knotens sind automatisch als Modbus-Register gemappt. Im SMSEagle oeffnen Sie unter Network Monitoring eine neue Modbus-TCP-Probe, tragen IP-Adresse und Port 502 des Wago ein und waehlen die Registeradresse des Stoerbits. Kein einziger Programmierschritt am Wago noetig.
Wann reicht der Digitaleingang am SMSEagle, wann brauche ich Modbus TCP?
Der Digitaleingang genuegt fuer einen Sammelstoermelder: ein Ausgang der SPS schliesst einen potenzialfreien Kontakt, der auf einen der vier DI-Eingaenge des SMSEagle-Gateways liegt. Das Gateway loest bei jedem Pegelwechsel eine SMS aus. Modbus TCP ist die bessere Wahl, wenn mehrere Stoerbits einzeln unterschieden werden muessen, Messwerte wie Druck, Temperatur oder Drehzahl mit ueberwacht werden sollen oder die SPS kein Feld-I/O zum Gateway fuehren 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 genuegt fuer feste Rufnummern und einfache Stoerbitkombinationen. Sobald ein rotierender Bereitschaftsplan besteht, automatische Eskalation bei fehlender Quittierung gefordert ist oder ein lueckenloses Protokoll zum Nachweis benoetigt wird, schaltet man eine Alarmierungsplattform dazwischen. Die Plattform ermittelt, wer Dienst hat, sendet die SMS ueber das SMSEagle, wartet auf Quittierung per SMS-Antwort und eskaliert bei Ausbleiben automatisch an die naechste Stufe.
