Was ist eine SPS? Aufbau, Programmierung und Anbindung an IT-Systeme
Eine speicherprogrammierbare Steuerung (SPS) ist ein Industrierechner, der eine Maschine oder Anlage nach einem gespeicherten Programm steuert. Sie liest zyklisch ihre Eingänge, rechnet das Anwenderprogramm durch und setzt danach ihre Ausgänge. Dieser Zyklus läuft im Millisekundentakt. Er macht das Zeitverhalten einer SPS vorhersagbar, und er ist der Grund, warum man sie nicht abfragen kann wie eine Datenbank.
- Langform
- speicherprogrammierbare Steuerung
- Englisch
- Programmable Logic Controller, kurz PLC
- Definition
- Industrierechner, der eine Maschine oder Anlage steuert
- Zyklus
- Eingänge lesen, Programm rechnen, Ausgänge setzen
- Bauformen
- Kompakt-SPS, modulare SPS, Soft-SPS
- Sprachen
- KOP, FBS, ST (IEC 61131-3)
- Ebene
- Steuerungsebene; in ISA-95 Level 2
- Anbindung
- OPC UA, MQTT, S7-Protokoll über RFC1006
Was heißt SPS auf Englisch?
Programmable Logic Controller, kurz PLC. Beide Begriffe meinen dasselbe Gerät. Die deutsche Abkürzung SPS steht für speicherprogrammierbare Steuerung, im Gegensatz zur früheren verbindungsprogrammierten Steuerung, bei der die Logik in der Verdrahtung lag.
Der Unterschied ist für die Suche relevant: In Deutschland wird SPS rund 14.800 Mal im Monat gesucht, PLC 5.400 Mal; in den USA kommt PLC auf rund 40.500 Suchen (Google-Suchvolumen im Monatsmittel, erhoben im September 2026). Beim Lesen internationaler Dokumentation hilft es, beide Begriffe zu kennen.
Eine Warnung zur Abkürzung
SPS ist in Deutschland auch eine Messe. Die SPS – Smart Production Solutions ist eine internationale Fachmesse für Automatisierung in Nürnberg und läuft jeden November. Eine Suche nach „SPS“ kann also auch der Messe gelten. Die Suchzahl oben unterscheidet das nicht.
Wie ist eine SPS aufgebaut?
Drei Bauformen sind üblich, und die Wahl hat Folgen für die Anbindung.
| Bauform | Was sie ist | Typisch für |
|---|---|---|
| Kompakt-SPS | Ein Gerät, feste Zahl an Ein- und Ausgängen | Kleine Anlagen, Einzelmaschinen |
| Modulare SPS | Baugruppenträger, Module nach Bedarf gesteckt | Fertigungslinien, größere Anlagen |
| Soft-SPS | Steuerungssoftware auf einem Industrie-PC | Wenn Rechenleistung oder Anbindung im Vordergrund steht |
Für die Anbindung zählt weniger die Bauform als das, was an Kommunikationsmodulen steckt. Eine modulare SPS aus den Neunzigern kann über eine nachgerüstete Kommunikationsbaugruppe durchaus Ethernet sprechen und damit moderner angebunden sein als eine zehn Jahre jüngere Kompakt-SPS, der schlicht der Steckplatz fehlt. Bei der Bewertung eines Maschinenparks lohnt deshalb zuerst der Blick in die Baugruppenträger und erst danach der auf das Typenschild. Das gilt besonders dort, wo über die Jahre erweitert statt ersetzt wurde.
Wie programmiert man eine SPS?
Die Norm IEC 61131-3 beschreibt in ihrer aktuellen Ausgabe (IEC 61131-3:2025) drei Programmiersprachen: Kontaktplan (KOP), der wie ein Stromlaufplan aussieht, Funktionsbausteinsprache (FBS) mit grafischen Blöcken, und Strukturierter Text (ST), der einer Hochsprache ähnelt. Die Ablaufsprache (AS) gliedert ein Programm in Schritte und Übergänge. Die frühere Anweisungsliste (AWL) gehört nicht mehr zur Norm, läuft in vielen Bestandsanlagen aber weiter.
Für die Anbindung ist weniger die Sprache wichtig als die Adressierung. Bei Siemens hat sie sich mit der S7-1200 und S7-1500 grundlegend geändert, dazu unten mehr.
Auf welcher Ebene sitzt die SPS?
In der Automatisierungspyramide sitzt die SPS auf der Steuerungsebene. Unter ihr liegt die Feldebene mit Sensoren und Aktoren, über ihr die Prozessleitebene mit HMI und SCADA. ISA-95 zählt anders und stellt Steuerungen auf Level 2, über Level 1 mit Sensoren, Aktoren und Ventilen.
Diese Ordnung beschreibt Zuständigkeiten, nicht mehr die Datenwege. Ein ERP kann mit der Prozessleitebene sprechen und auch direkt mit der Steuerung, wenn der Auftragsstand von jetzt gebraucht wird und nicht der von gestern Nacht.
Mehr dazu: Was ist ISA-95? Fünf Ebenen, IEC 62264 und die Automatisierungspyramide
Wie kommen Daten aus einer SPS heraus?
Welcher Weg offensteht, hängt an der Generation der Steuerung, am Modell und an der Kommunikationsschnittstelle, die verbaut und freigeschaltet ist. Am deutlichsten zeigt sich das bei Siemens, weil dort mit der S7-1200 und S7-1500 die Adressierung gewechselt hat. Die Tabelle zeigt deshalb die Siemens-Generationen. Ob Steuerungen anderer Hersteller OPC UA haben, integriert oder über ein Zusatzmodul, und welcher Treiber sie anspricht, zeigt die Übersicht weiter unten unter „Der Übersetzer: vom SPS-Protokoll zu OPC UA“.
| Siemens-Generation | Zugriffsweg | Was das bedeutet |
|---|---|---|
| S5 | AS511, 3964R über serielle Schnittstelle | Treiber nötig, langsam, aber machbar |
| S7-300 / S7-400 | S7-Protokoll (RFC1006, ISO-on-TCP) über die integrierte Ethernet-Schnittstelle neuerer CPUs (PN/DP) oder einen Kommunikationsprozessor CP 343-1 / CP 443-1 | Zugriff über feste Speicheradressen in Datenbausteinen |
| S7-1200 / S7-1500 | Der interne OPC UA Server der Steuerung, ein OPC Server mit Zugriff auf optimierte Datenbausteine, soweit sein Treiber die Firmware der CPU unterstützt, oder das klassische S7-Protokoll | Symbolischer Zugriff über OPC UA oder den OPC Server; der interne Server braucht eine Lizenz. Das klassische Protokoll liest feste Adressen, also keine optimierten Datenbausteine |
Warum die S7-1500 einen eigenen OPC UA Server hat
Der Grund liegt in der Adressierung, und er erklärt den Generationswechsel.
Bei der S7-300 und S7-400 lagen Variablen auf festen Speicherplätzen in Datenbausteinen und Merkern. Ein externes System konnte diese Adressen direkt lesen, weil sie sich nicht verschoben. Darauf baut das RFC1006-Verfahren auf.
Mit der S7-1200 und S7-1500 kam die symbolische Adressierung. Programmierer müssen ihre Variablen nicht mehr auf feste Speicherplätze legen, und in optimierten Datenbausteinen liegen sie auch gar nicht mehr an einer vorhersagbaren Stelle. Das ist für die Programmierung ein Fortschritt und für den externen Zugriff ein Bruch: Die Adresse, die man lesen wollte, gibt es so nicht mehr.
Der interne OPC UA Server löst das, indem er die symbolischen Namen nach außen anbietet. Man liest nicht mehr „Datenbaustein 12, Wort 4“, sondern Linie3.Ofen.Temperatur. Eine Programmänderung unterbricht die Anbindung damit nicht mehr unbemerkt.
Zwei Dinge sind dabei zu prüfen: Der OPC UA Server der Steuerung braucht eine Runtime-Lizenz, und er muss in der Gerätekonfiguration aktiviert werden. Ohne vorherige Prüfung fällt beides erst im laufenden Projekt auf.
Ein OPC Server vor den Steuerungen liefert statt des internen Servers eine einheitliche symbolische Sicht auf alle Steuerungen, für die er einen Treiber hat, auch auf ältere. Bei Steuerungen mit festen Adressen wie der S7-300 und S7-400 kommen die Namen dabei nicht aus der Steuerung, sie werden im OPC Server angelegt. Für diesen Fall gibt es die Treibersammlungen: Siemens-Anbindung per OPC Server.
Auch die S7-1200 und S7-1500 lassen sich über das klassische S7-Protokoll ansprechen, ein OPC Server führt sie dafür in seinem Siemens-Ethernet-Treiber. Dabei gilt dasselbe wie bei der S7-300: Gelesen werden feste Adressen. Optimierte Datenbausteine sind so nicht erreichbar, die Werte müssen in einem nicht optimierten Baustein liegen. Außerdem muss laut Siemens in den Eigenschaften der CPU unter Schutz & Security der Zugriff über PUT/GET-Kommunikation durch entfernte Partner erlaubt sein, sonst weist die Steuerung Lese- und Schreibzugriffe ab. Der Kepware-Treiber Siemens TCP/IP Ethernet verlangt laut Handbuch zusätzlich die Schutzstufe „Full access (no protection)“, weil er kein Passwort unterstützt.
Der Übersetzer: vom SPS-Protokoll zu OPC UA
Jede Steuerung spricht das Protokoll ihres Herstellers, etwa das S7-Protokoll, Modbus oder EtherNet/IP. Ein OPC Server übersetzt es nach OPC UA: Nach unten spricht er mit jeder Steuerung in deren Protokoll, nach oben bietet er alle Werte in einer einheitlichen OPC-UA-Sicht an. Dahinter kann der OPC Router als OPC UA Client weiterarbeiten und die Werte an ERP, MES oder Datenbank übergeben.
Herstellerunabhängig leistet das der Kepware Server (bis Version 6.18 KEPServerEX) mit über 150 Treibern für mehr als 300 Protokolle. Als Container-Variante für Linux gibt es Kepware Edge, das sich standardisiert ausrollen und zentral verwalten lässt.
Ob die Übersetzung nötig ist, hängt an der Steuerung. Manche bringen einen OPC-UA-Server mit, andere bekommen ihn über ein Zusatzmodul, bei den übrigen übersetzt ein OPC Server. Die Tabelle zeigt das für die Steuerungsfamilien der vier großen Hersteller: Siemens, Rockwell Automation, Mitsubishi Electric und Schneider Electric teilen sich laut Interact Analysis (Bericht von 2019) fast drei Viertel des weltweiten SPS-Markts (74,3 %). Dazu kommen Modbus in seinen Varianten und Steuerungen mit CODESYS-Laufzeit, am Beispiel WAGO. Die Angaben stammen aus Datenblättern und Handbüchern der Hersteller.
| Steuerungsfamilie | OPC UA in der Steuerung | Voraussetzung | Kepware-Treiber |
|---|---|---|---|
| Siemens S7-1200 (erste Generation) | integriert | Firmware ab V4.4, Runtime-Lizenz „SIMATIC OPC UA S7-1200 Basic“ | Siemens S7 Plus Ethernet (laut Handbuch Firmware bis 4.6), Siemens TCP/IP Ethernet, OPC UA Client |
| Siemens S7-1200 G2 | integriert | Datenblatt der CPU 1214C G2 mit Firmware V4.1 nennt den Server, Runtime-Lizenz „Basic“ | OPC UA Client; native Treiber nicht genannt |
| Siemens S7-1500, auch ET 200SP CPU | integriert | Firmware ab V2.0, Runtime-Lizenz „SIMATIC OPC UA S7-1500“ small, medium oder large je nach CPU | Siemens S7 Plus Ethernet (laut Handbuch Firmware bis 3.0.x), Siemens TCP/IP Ethernet, OPC UA Client |
| Siemens S7-300 / S7-400 | S7-400: über Zusatzmodul, S7-300: nicht genannt | S7-400: Kommunikationsprozessor CP 443-1 OPC UA, als Ersatzteil geführt | Siemens TCP/IP Ethernet |
| Siemens LOGO! 8.4 | nicht genannt | Datenblatt nennt MQTT und Cloud-Anbindung | nicht genannt |
| Rockwell ControlLogix 5580, CompactLogix 5380, auch GuardLogix 5580 und Compact GuardLogix 5380 | integriert | Firmware ab V36, Server muss eingeschaltet werden; mit V36 nicht bei 1756-L81E, 5069-L306ER und in Redundanz | Allen-Bradley ControlLogix Ethernet |
| Rockwell, ältere Logix, etwa ControlLogix 5570, CompactLogix 5370 | nicht genannt | – | Allen-Bradley ControlLogix Ethernet |
| Rockwell Micro800 | nicht genannt | Handbuch nennt OPC über FactoryTalk Linx, CIP-Symbolik ab Firmware 7.011 | Allen-Bradley Micro800 Ethernet |
| Mitsubishi MELSEC iQ-R | über Zusatzmodul | Servermodul RD81OPC96 | Mitsubishi Ethernet |
| Mitsubishi MELSEC iQ-F | über Zusatzmodul | Modul FX5-OPC | Mitsubishi Ethernet |
| Mitsubishi MELSEC Q, L | über Zusatzmodul einer iQ-R | RD81OPC96 in einer iQ-R fragt Q-CPUs (Q-Modus) und L-CPUs als Zielgeräte ab | Mitsubishi Ethernet |
| Schneider Electric Modicon M580 | über Zusatzmodul | Modul BMENUA0100 | Modbus Ethernet |
| Schneider Electric Modicon M241 | integriert | Einstellung in Machine Expert | Modbus Ethernet |
| Modbus TCP | hängt am Gerät | – | Modbus Ethernet |
| Modbus RTU, Modbus ASCII (seriell) | hängt am Gerät | – | Modbus Serial, Modbus ASCII |
| Modbus RTU über TCP (gekapselt) | hängt am Gerät | serielles Gerät an einem Terminal-Server | Modbus Serial mit Ethernet Encapsulation |
| Modbus Plus | hängt am Gerät | Adapterkarte im PC oder Ethernet-zu-Modbus-Plus-Bridge | Modbus Plus, über die Bridge Modbus Ethernet |
| CODESYS-basierte Steuerungen | in der CODESYS-Laufzeit vorgesehen, je nach Gerätefirmware | laut CODESYS mit dem Add-on CODESYS Communication im Projekt einzurichten; bei SoftPLCs aus dem CODESYS Store Lizenz „CODESYS OPC UA Server SL“ oder applikationsbasierte Laufzeitlizenz | CODESYS Ethernet |
| WAGO PFC200 G2, PFC300, CC100 | integriert | PFC200: CODESYS-OPC-UA-Server ab FW 24 (04.02.13), FW 23 ohne Server, FW 18 bis 22 (e!COCKPIT) mit WAGO-eigenem Server; PFC300: Firmware mit CODESYS 3.5; CC100: Datenblatt nennt OPC UA Server/Client, aber keinen Firmwarestand, die Release Notes verweisen auf die des PFC200 | CODESYS Ethernet, Modbus Ethernet |
„Integriert“ heißt: Der Server läuft in der Steuerung selbst, bei einer modularen SPS in der CPU. Läuft er auf einem eigenen Modul neben der CPU, steht in der Tabelle „über Zusatzmodul“. „Nicht genannt“ heißt: Die herangezogenen Unterlagen des Herstellers führen keinen OPC-UA-Server beziehungsweise keinen Treiber auf. Steht in der Spalte Voraussetzung keine Lizenz, ist damit nicht gesagt, dass keine nötig ist. Modbus ist ein Protokoll und keine Steuerung: Die Spezifikationen der Modbus Organization bilden nichts nach OPC UA ab, ob ein Gerät zusätzlich einen OPC-UA-Server hat, hängt am Gerät.
Das Handbuch des Treibers Siemens S7 Plus Ethernet (Version 1.052 von 2026) führt als unterstützte Firmware für die S7-1200 Stände bis 4.6 und für die S7-1500 bis 3.0.x. Spätere Firmware wie V4.7 bei der S7-1200 oder V3.1 bis V4.1 bei der S7-1500 steht dort nicht.
„Integriert“ heißt nicht unbegrenzt: Für die S7-1200 mit Firmware V4.5 bis V4.7 und für die S7-1200 G2 nennt Siemens höchstens 10 Sessions und 1.000 überwachte Elemente, die 1.000 in den Datenblättern als empfohlenes Maximum.
Mehr dazu: Grenzen integrierter OPC-UA-Server
Was, wenn die Steuerung älter ist als die Anforderung?
Dann hilft die Übersetzerschicht aus dem vorigen Abschnitt, und sie hat einen zweiten Nutzen: Wird eine Steuerung getauscht, ändert sich diese Schicht, das ERP dahinter bleibt unberührt. Einen Fall mit dem Wechsel von S5 auf S7 beschreibt unten der Abschnitt „Wie sieht das in echten Anlagen aus?“.
Welche Protokolle spricht eine SPS?
Die Protokolle zerfallen in zwei Gruppen.
Feldprotokolle verbinden die Steuerung mit ihren Geräten, etwa PROFINET, PROFIBUS, EtherCAT, Modbus. Sie sind auf kurze Wege und feste Zykluszeiten ausgelegt.
Anbindungsprotokolle verbinden die Steuerung mit der IT, zum Beispiel OPC UA und MQTT, herstellereigene wie das S7-Protokoll über RFC1006, das auch neuere Siemens-Steuerungen noch sprechen, und teils auch direkte Datenbankzugriffe. OPC UA und MQTT sind auf Struktur und Sicherheit ausgelegt, weniger auf kurze Zykluszeiten.
Wo Steuerung und IT-System kein gemeinsames Protokoll sprechen, sitzt dazwischen ein Übersetzer, beschrieben oben unter „Der Übersetzer: vom SPS-Protokoll zu OPC UA“.
Mehr dazu: Was ist OPC UA? · Was ist MQTT? · Was ist Modbus?
Welche Probleme treten in der Praxis auf?
Eine SPS arbeitet ihren Zyklus ab und beantwortet Anfragen von außen im Rahmen des Anteils, den die Kommunikation bekommt. Zwischen den einzelnen Telegrammen einer Leseanforderung läuft ihr Zyklus weiter. Daraus folgt vor allem, dass mehrere gelesene Werte nicht zwingend aus demselben Zyklus stammen, auch bei fehlerfreier Einrichtung. Dazu kommen Planungsfragen: wie die Schnittstelle geschnitten ist und wie oft welcher Wert gelesen wird.
Einzelne Werte kommen ohne Zusammenhang an
Zwischen SPS und lesendem System gibt es keine Transaktionsklammer. Eine Leseanforderung über mehrere Werte wird in ein oder mehrere TCP-Telegramme zerlegt. Die Steuerung beantwortet sie aus ihrem jeweils aktuellen Speicherzustand. Zwischen zwei Telegrammen läuft ihr Zyklus weiter, unter Umständen mehrfach.
Die Folge: Die Werte stammen möglicherweise nicht alle aus demselben SPS-Zyklus. Die Auftragsnummer kann aus Zyklus 4711 kommen und die zugehörige Stückzahl aus 4713. Bei den klassischen Zugriffswegen wie RFC1006 verhindert nichts im Protokoll das, und nichts zeigt es an. Der Datensatz sieht vollständig aus und ist in sich falsch.
Zehn Werte zu lesen ist deshalb nicht dasselbe wie einen Datensatz zu lesen.
Der Fehler tritt nur auf, wenn sich ein Wert zwischen zwei Telegrammen ändert, also nicht bei jeder Leseanforderung.
Was hilft. Die Abhilfe hat zwei Hälften, und die erste liegt in der Steuerung. Die SPS kopiert die zusammengehörenden Werte an einer definierten Stelle ihres Zyklus in einen eigenen Datenbereich, eine Art Momentaufnahme. Erst danach meldet sie, dass gelesen werden darf. Das steht im SPS-Programm, und kein Werkzeug auf der IT-Seite kann es ersetzen: Nur im Programm der Steuerung ist festgelegt, an welcher Stelle des Zyklus die Werte zusammenpassen.
Die zweite Hälfte liegt auf der IT-Seite: Der OPC Router liest den Datenbereich erst nach dieser Meldung und quittiert nach erfolgreichem Transfer, beschrieben unten unter „Wie holt man konsistente Daten aus einer SPS?“.
Der Aufwand verteilt sich damit auf beide Seiten. In der Steuerung sind es unter anderem ein Datenbereich, der bis zur Quittung unverändert bleibt, das Setzen des Triggers und beim Bit-Trigger sein Zurücksetzen nach der Antwort, dazu ein Timeout, das bei ausbleibender Antwort erneut sendet und nach mehreren Fehlversuchen einen Fehler meldet. Im OPC Router ist es Konfiguration statt Programmierung.
Schlecht geschnittene Schnittstellen erzeugen Netzlast ohne Gegenwert
Nicht jedes Protokoll zwischen SPS und OPC Server kennt Benachrichtigungen. Wo ein Abonnement fehlt, bleibt nur das Abfragen: Der Server fragt in festen Abständen nach, auch dann, wenn sich seit der letzten Abfrage nichts geändert hat.
Das ist verkraftbar, solange die Schnittstelle zusammenhängend entworfen ist. Liegen die benötigten Werte in einem durchgehenden Datenbereich, holt eine Anfrage sie alle auf einmal.
Liegen sie verstreut, wird aus einer Abfrage ein Dutzend. Jede einzelne kostet ein Telegramm, eine Antwort und einen Anteil der Kommunikationszeit der Steuerung. Das Ergebnis sind lange Netzwerkzyklen für wenige Werte.
Der Schnitt der Schnittstelle ist damit eine Leistungsfrage. Der Datenbereich wird am besten mit dem Programmierer der Steuerung gemeinsam festgelegt, bevor die erste Verbindung konfiguriert wird. Nachträglich zu ändern ist teuer, weil beide Seiten angefasst werden müssen.
Am meisten bringt der Schnitt: Zusammenhängende Bereiche statt verstreuter Einzeladressen senken die Zahl der Anfragen. Das ist Arbeit in der Steuerung.
Dazu kommt das Verfahren: Wo das Protokoll ein Abonnement kennt, wie OPC UA es tut, meldet die Steuerung Änderungen selbst, statt gefragt zu werden. Die S7-1200 und S7-1500 können das über ihren internen OPC UA Server. Für ältere Steuerungen bleibt das Abfragen. Ein vorgelagerter OPC Server verlegt es nur an eine einzige Stelle, dazu der nächste Absatz.
Schließlich die Bündelung über einen vorgelagerten Datenvermittler, beschrieben unten unter „Die SPS steuert. Kommunikation bekommt ihren Anteil“. Sie senkt die Last an der Steuerung auch dann, wenn das Protokoll darunter kein Abonnement kennt und weiter abgefragt werden muss, denn Werte, die die Verbraucher beim Datenvermittler abonniert haben, fragt nur noch er ab.
Die SPS steuert. Kommunikation bekommt ihren Anteil
Die Hauptaufgabe einer SPS ist die Maschine. Ihr Echtzeitanspruch gilt dem Zyklus: Eingänge lesen, Programm rechnen, Ausgänge setzen, und das verlässlich innerhalb einer festen Zeit. Die Kommunikation bekommt davon einen begrenzten Anteil.
Wie groß dieser Anteil ist, legt die Steuerung fest. Je nach Hersteller und Modell ist er einstellbar, oder ein eigener Prozessor übernimmt die Kommunikation. Bei Siemens-Steuerungen der Reihe S7-1500 etwa ist der Anteil ein Parameter der CPU, und Organisationsbausteine mit höherer Priorität unterbrechen laut Siemens die Kommunikation. Was die Kommunikation von ihrem Anteil nicht braucht, steht dem Anwenderprogramm zur Verfügung. Wird der Anteil voll genutzt, dauert der zyklische Programmteil länger, bei einem Anteil von 50 Prozent bis zum Doppelten. Welcher Wert voreingestellt ist, hängt laut Siemens von Typ und Version der CPU ab. Ein kleinerer Anteil senkt diese Verlängerung. Siemens empfiehlt im Funktionshandbuch „Zyklus- und Reaktionszeiten“ (Ausgabe 11/2024), die Kommunikationslast bei der maximalen Zykluszeit mit einzuplanen.
Die Abfragedichte ist damit eine Planungsgröße, und sie wird auf beiden Seiten eingestellt: in der Steuerung über den Kommunikationsanteil und die Zykluszeit, auf der Seite der Anbindung darüber, wie oft und auf welche Weise gelesen wird. Daraus folgt die Reihenfolge: Erst wird festgelegt, welche Werte in welchem Takt gebraucht werden, dann wird die Anbindung dazu entworfen.
Die Last sinkt, wenn weniger Stellen fragen und wenn seltener gefragt wird, wo der Wert es erlaubt. Wenn eine Datenbank, ein Dashboard und ein MES dieselben Werte brauchen, muss die Steuerung sie nicht dreimal liefern. Ein vorgelagerter Datenvermittler, etwa ein OPC Server oder eine Middleware, liest abonnierte Werte einmal und bedient die drei Verbraucher aus derselben Abfrage. Einzelne Lese- und Schreibaufträge eines Verbrauchers können dagegen bis zur Steuerung durchgehen: Der Kepware-Treiber Siemens S7 Plus Ethernet etwa fragt abonnierte Werte laut Handbuch auf Wunsch nicht schneller ab als eingestellt, einzelne Lese- und Schreibaufträge bearbeitet er unabhängig von dieser Einstellung so schnell wie möglich. Aufseiten der Anlage bleibt eine Entscheidung, die keine Software abnimmt: wie oft welcher Wert wirklich gebraucht wird. Ein Temperaturwert, der sich alle zwei Minuten ändert, muss nicht im Sekundentakt gelesen werden.
Wie holt man konsistente Daten aus einer SPS?
Gegen Werte aus verschiedenen SPS-Zyklen hilft ein Handshake: Die Steuerung meldet, dass ein Datensatz vollständig ist, und bekommt eine Quittung. Für mehrere zusammengehörende Werte sieht der OPC Router zwei Trigger vor: den Bit-Trigger für einzelne Vorgänge und den Message-Trigger für Folgen von Datensätzen, in denen eine Lücke auffallen soll. Bei beiden wartet der OPC Router nach dem Auslösen einen weiteren Lesezyklus ab, bevor er den Datensatz liest, damit die SPS alle Werte schreiben konnte.
Der Bit-Trigger ist ein Datenpunkt, den die SPS setzt, wenn die Werte vollständig geschrieben sind. Erst dann liest der OPC Router. Das Handbuch schreibt vor, den Bit-Trigger immer mit Antwortbit zu verwenden, und begründet das so: Ändert sich der Trigger-Datenpunkt in der SPS innerhalb eines Lesezyklus zweimal, bemerkt der OPC Router die zweite Änderung nicht. Der zugehörige Transfer unterbleibt und damit auch das Antwortbit. Wartet die SPS mit einem Timeout auf die Antwort, erkennt sie den Ausfall und kann den Vorgang erneut anstoßen.
Der Message-Trigger ist laut Handbuch die sicherere der beiden Varianten, weil er mit einem Zähler arbeitet statt mit einem Bit. Diesen Zähler, die Telegrammnummer, erhöht die SPS um 1, wenn ein neuer Datensatz bereitsteht, und der OPC Router kann über einen eigenen Datenpunkt antworten. Wird der Zählerstand mit aufgezeichnet, lässt sich später nachverfolgen, ob Datensätze nicht oder doppelt übertragen wurden, zum Beispiel wenn der Zähler von 5 auf 7 springt oder derselbe Zählerstand zweimal aufgezeichnet ist. Das dient der Rückverfolgung und der Diagnose. Eine Lücke vermeiden muss die SPS: Sie schreibt den nächsten Satz erst nach der Antwort und sendet erneut, wenn die Antwort innerhalb eines Timeouts ausbleibt.
Die Reihenfolge in der SPS ist dabei immer dieselbe: Erst alle zusammengehörenden Werte schreiben, dann den Trigger setzen. Der weitere Lesezyklus des OPC Router ersetzt das nicht: Steht der Trigger vorher, kann wieder ein Zwischenstand gelesen werden.
Wie meldet man aus der SPS an ERP oder MES zurück?
Das ist ein typischer Fall für den Message-Trigger.
Die Steuerung schreibt die zusammengehörenden Werte in die dafür vorgesehenen Datenpunkte, etwa Materialnummer, Auftragsnummer, produzierte Menge, verbrauchte Menge und Zeitstempel. Erst danach erhöht sie den Message-Zähler. Der OPC Router erkennt den neuen Zählerstand, liest den vollständigen Satz und übergibt ihn an das ERP. Danach meldet er der SPS über den Antwort-Datenpunkt, dass die Rückmeldung übergeben wurde.
Ein Haftmaterial-Hersteller koppelte laut Anwenderbericht (undatiert, die Firmenzahlen darin stammen von 2017) 14 Maschinen über den OPC Router mit SAP, bei rund 15.000 Datentelegrammen pro Tag und Verbuchungszeiten unter 15 Millisekunden. SAP sendete Rezepturen und Geschwindigkeiten an die Maschinen, die Maschinen meldeten Fehlstellen zurück. Die Strecke zu SAP lief laut Bericht per RFC mit Handshake.
Der Rückkanal, also Aufträge in die SPS zu schreiben, ist technisch dasselbe wie lesen, organisatorisch aber etwas anderes: Wer darf schreiben, was passiert bei einem Konflikt, und was tut die Anlage, wenn die Verbindung abbricht. Diese Fragen gehören in die Inbetriebnahme.
Im OPC Router werden Verbindungen zwischen Steuerung und ERP, MES oder Datenbank grafisch konfiguriert, Trigger, Handshake und Rückkanal sind dabei Bausteine. Die Video-Tutorials führen durch die Konfiguration, die Themen wählen Sie bei der Anforderung selbst aus. Datenbereich, Trigger und Timeout bleiben in der SPS.
Wie sieht das in echten Anlagen aus?
Ein Motorgerätehersteller prüfte laut Anwenderbericht von 2019 am Ende einer Montagelinie in bis zu neun Prüfzellen parallel, mit Prüfabläufen von bis zu fünf Minuten. Im Werk waren Steuerungen der Simatic-Reihe, Sinumerik-CNC, Simotion und Roboter im Einsatz. Der Bericht nennt 16 Installationen in Deutschland, dazu die Werke in den USA und China, je Montagelinie ein OPC Router mit eigenem lokalem Datenbankserver. Hier wurde eine Anbindung einmal entworfen und als Muster vervielfältigt.
Ein Fahrradhersteller band laut Anwenderbericht (undatiert) die S5-Steuerung seiner Elektrohängebahn zunächst über eine IBH-Schnittstelle an den OPC Router an und stellte etwa ein Jahr später auf eine S7-Steuerung um. Die Umstellung nahm er zum Anlass, die Datentransfers neu zu strukturieren.
Ein Automobilzulieferer fertigte laut Anwenderbericht (undatiert) Bodenverkleidungen just in time und just in sequence, mit zahlreichen Varianten und vollständiger Rückverfolgbarkeit. Dort waren alle SPS der Stationen über einen OPC Server angebunden, und der OPC Router übernahm die Kommunikation mit SAP.
Eine Container-Terminal-Gruppe band laut Anwenderbericht (undatiert) Umschlaggeräte und Anlagen an, also bewegliche Großgeräte statt stehender Maschinen.
Ein Verpackungshersteller band laut Anwenderbericht von 2020 auf kepware-opcserver.de rund 500 Maschinen verschiedener Hersteller in elf Werken an, darunter Spritzgussmaschinen, mit Kepware Servern in den Werken und zentral dem OPC Router.
Weitere Beispiele, nach Branchen geordnet, sammelt die Seite Internationale OPC Router Use Cases auf opc-router.de (Stand der Seite: Juli 2026).
Wie viele Daten trägt eine Anbindung?
Anhaltspunkte für die Strecke vom OPC Server zum Zielsystem geben die Benchmarks aus dem Handbuch des OPC Router:
| Aufbau | Durchsatz |
|---|---|
| 640.000 OPC-Datenpunkte alle 30 Sekunden über vier OPC-Verbindungen | rund 21.200 Datenpunkte pro Sekunde |
| 32.000 Tags über 160 Vorlagen-Instanzen, Auslösung auf Wertänderung | rund 28.500 Datenpunkte pro Sekunde |
| 1.000 Flows mit je 10 Datenpunkten, bis an die Leistungsgrenze gefahren | mehr als 19.500 Tags pro Sekunde |
Gemessen wurde mit einer älteren Version des OPC Router gegen simulierte OPC-Server, nicht gegen Steuerungen, und die Ziele waren MQTT und InfluxDB. Die Zahlen markieren die Grenze des jeweiligen Testaufbaus: Bei 21.200 Datenpunkten pro Sekunde kamen bereits nicht mehr alle Werte an, bei 28.500 war der OPC-Server der begrenzende Faktor. Was eine konkrete Anlage trägt, hängt unter anderem an der Steuerung, am Netz und daran, wie viele Werte wirklich gebraucht werden. Last entsteht dabei auch aus einem zu kurzen Leseintervall auf Werten, die sich selten ändern.
Was ist eine SPS?
Ein Industrierechner, der eine Maschine nach einem gespeicherten Programm steuert. Er liest zyklisch die Eingänge, rechnet das Programm und setzt die Ausgänge.
Was heißt SPS auf Englisch?
Programmable Logic Controller, kurz PLC. Beide Abkürzungen meinen dasselbe Gerät.
Ist SPS eine Steuerung oder eine Messe?
Beides. SPS steht für speicherprogrammierbare Steuerung und ist zugleich der Name der Automatisierungsmesse in Nürnberg, die jeden November stattfindet.
Welche Programmiersprachen gibt es für eine SPS?
Die IEC 61131-3:2025 beschreibt drei: Kontaktplan (KOP), Funktionsbausteinsprache (FBS) und Strukturierter Text (ST). Die Ablaufsprache (AS) gliedert ein Programm in Schritte und Übergänge. Die Anweisungsliste (AWL) gehört nicht mehr zur Norm, läuft in Bestandsanlagen aber weiter.
Wie liest man Daten aus einer SPS aus?
Über ein Anbindungsprotokoll, zum Beispiel OPC UA. Welcher Weg offensteht, hängt an Generation, Modell und freigeschalteter Schnittstelle. Bei Siemens: ältere Steuerungen über Treiber und feste Adressen, die S7-1200 und S7-1500 über ihren internen OPC UA Server oder einen OPC Server mit symbolischen Namen, oder über das klassische S7-Protokoll auf nicht optimierte Datenbausteine. Spricht die Steuerung kein OPC UA, übersetzt ein OPC Server wie der Kepware Server ihr Protokoll nach OPC UA.
Warum hat die S7-1500 einen eigenen OPC UA Server?
Weil die symbolische und optimierte Adressierung die festen Speicheradressen auflöst, auf denen das ältere Zugriffsverfahren aufbaut. Der OPC UA Server bietet stattdessen die Variablennamen nach außen an. Der andere Weg dorthin ist ein OPC Server mit Zugriff auf optimierte Datenbausteine, soweit sein Treiber die Firmware der CPU unterstützt.
Warum können gelesene Werte aus verschiedenen SPS-Zyklen stammen?
Weil es zwischen SPS und lesendem System keine Transaktionsklammer gibt. Eine Leseanforderung wird in ein oder mehrere TCP-Telegramme zerlegt, und zwischen ihnen läuft der Zyklus der Steuerung weiter. Zusammen angeforderte Werte bilden deshalb nicht von selbst einen stimmigen Datensatz.
Belastet eine Anbindung die SPS?
In einem Rahmen, den die Steuerung vorgibt. Die Kommunikation bekommt einen begrenzten, je nach Steuerung einstellbaren Anteil der Rechenzeit oder einen eigenen Prozessor. Wird dieser Anteil ausgeschöpft, kann der zyklische Programmteil länger dauern. Wie dicht abgefragt wird, gehört deshalb zur Planung.
Warum erzeugt eine Anbindung so viel Netzwerkverkehr?
Wenn das Protokoll keine Benachrichtigungen kennt, muss gepollt werden. Liegen die benötigten Werte dann verstreut statt in einem zusammenhängenden Datenbereich, wird aus einer Abfrage ein Dutzend. Dazu kommen zu kurze Leseintervalle und mehrere Systeme, die dieselbe Steuerung einzeln abfragen.
Wie kommen zusammengehörende Werte konsistent an?
Über einen Handshake: Die SPS schreibt erst alle Werte, meldet dann, dass der Datensatz vollständig ist, und bekommt eine Quittung. Im OPC Router wird dafür ein Bit-Trigger oder ein Message-Trigger eingestellt. Beim Bit-Trigger gehört ein Antwortbit dazu, damit die Steuerung per Timeout erkennen kann, dass ein Transfer ausgefallen ist. Der Message-Trigger, laut Handbuch die sicherere Variante, arbeitet mit einem Zähler, den die SPS bei jedem neuen Datensatz erhöht. Wird dessen Wert aufgezeichnet, lässt sich nachverfolgen, ob Datensätze fehlen oder doppelt übertragen wurden.
Kann man auch in eine SPS schreiben?
Ja. Technisch ist es dasselbe wie lesen. Organisatorisch sind vorher drei Fragen zu klären: wer schreiben darf, was bei einem Konflikt gilt, und wie sich die Anlage verhält, wenn die Verbindung abbricht.
- Was ist ISA-95?Fünf Ebenen, IEC 62264 und die Automatisierungspyramide
- Was ist ein MES?Aufgaben, Abgrenzung zum ERP und die Schnittstellen
- Was ist SCADA?Aufbau, Abgrenzung zu HMI, MES und DCS
- Was ist ein HMI?Bedienebene, Web-HMI und Anbindung an die IT
- Was ist IEC 62443?Zonen, Security Level und was NIS2 verlangt
- Unified Namespace anbindenDaten einspeisen und zurückschreiben
- Was ist ein Prozessleitsystem (DCS)?Aufbau, Abgrenzung zu SCADA und der Weg in die IT
- Was ist ein Industrial Historian?Die Prozessdatenbank für Zeitreihen