Zum Hauptinhalt springen

Kommunikation · OPC UA

OPC UA auf der S7-1500: Grenzen, die selten dabeistehen

Strukturen sind nicht konsistent lesbar, der Server läuft im CPU-STOP weiter, Zeitstempel meinen etwas anderes: Was vor einer MES-Anbindung zu klären ist.

Stand:

„Die Steuerung kann OPC UA“ steht in fast jedem Lastenheft, und es stimmt. Was dort selten steht, sind die Eigenschaften, an denen MES-Anbindungen später scheitern — und zwar nicht mit einer Fehlermeldung, sondern still.

Still heißt hier: Die Verbindung steht, der Client bekommt Antworten, und auf Protokollebene ist jede einzelne davon korrekt. Falsch wird erst, was das übergeordnete System daraus schließt. Dieser Artikel sammelt die Stellen, an denen das geschieht, bevor sie im Anlauf auffallen. Für den Vergleich mit der klassischen S7-Kommunikation lohnt der Blick auf die Frage, warum ein Snap7-Zugriff scheitert — die beiden Wege lösen dieselbe Aufgabe mit gegensätzlichen Nachteilen.

Was an welche Firmware gebunden ist

Die Aussage „die S7-1500 kann OPC UA“ ist zu grob für eine Zusage. Der Funktionsumfang hängt an der Firmware, und die Grenzen liegen an unerwarteten Stellen — am deutlichsten dort, wo die Steuerung nicht antworten, sondern selbst fragen soll. Wer eine CPU als OPC-UA-Client plant, prüft deshalb Firmware-Stand und Artikelnummer, nicht nur die Typbezeichnung.

Firmware-Bindung

Woran der Funktionsumfang hängt.

OPC-UA-Server
ab Firmware V2.0 (TIA Portal V14)Die Funktion, die im Lastenheft gemeint ist, wenn dort „kann OPC UA" steht.
Serverseitige Methoden
ab Firmware V2.5 (TIA Portal V15)Aufrufbare Funktionen statt reiner Variablen — der Unterschied zwischen Datenabholung und Auftragsübergabe.
OPC-UA-Client
ab Firmware V2.6 (TIA Portal V15.1)Die Steuerung fragt selbst an. Der Fall, der bei der Auslegung am häufigsten übersehen wird.
Erweiterte Mengengerüste
ab Firmware V3.0 (TIA Portal V18); ab V4.0 erneut, aber nur auf der CPU-Generation 151x-3 PN
Kleinstes Abtastintervall
100 ms (CPU 1511–1516), 10 ms (CPU 1517/1518)An die Leistungsklasse gebunden — Siemens-FAQ 109755846, Stand 02/2024 (Tabellen bis Firmware V3.1).

Stände nach dem Siemens-Funktionshandbuch „Kommunikation" (S7-1500/ET 200, Beitrag 59192925, Ausgabe 11/2025), Kapitel OPC UA-Kommunikation, Anwendungsbeispiel 109756885 (Methoden) und Siemens-FAQ 109755846 (Intervalle); sie verschieben sich mit neuen Ständen — vor jeder Zusage gegen die aktuelle Fassung prüfen.

Der Sprung von V2.9 auf V3.0 ist dabei ein starkes technisches Argument für ein Firmware-Update, das kaum jemand kennt: Die von Siemens empfohlene Zahl überwachter Elemente steigt von 1.000 auf 4.000 (CPU 1511 bis 1513), von 2.000 auf 4.000 (CPU 1515/1516) und von 10.000 auf 24.000 (CPU 1517/1518), die Subscriptions je Session von 20 auf 50; das kleinste Sendeintervall sinkt von 500 auf 200 ms (1511 bis 1513) und von 200 auf 100 ms (1515/1516). Sessions, Subscriptions je Server, die Obergrenze von 10.000 Elementen je Subscription und das kleinste Abtastintervall bleiben gleich — und die Elementzahlen sind Empfehlungen, keine harten Grenzen: Wer darüber liegt, bekommt BadOutOfMemory.

Ein Firmware-Update genügt dafür allerdings nur, wenn die CPU den Stand überhaupt annimmt. Siemens gibt V3.x für die Hardware-Generation mit Artikelnummer …03 (6ES751x-xxx03-0AB0) sowie für CPU 1516T, 1517 und 1518 frei; ältere Baugruppen der Klassen 1511 bis 1516 (…02 und früher) bleiben bei V2.9. Projektiert wird V3.0 ab TIA Portal V18 — das Projekt zieht also mit. Mit Firmware V4.0 (TIA Portal V20) hebt Siemens die Mengengerüste für die CPUs 151x-3 PN und 151xT-3 PN erneut an. Vor der Zusage deshalb Artikelnummer, Firmware-Stand und den Siemens-Firmware-Beitrag 109478459 prüfen.

Aber: Die empfohlene Gesamtzahl überwachter Elemente gilt unter Bedingungen, die Siemens ausdrücklich nennt.

Das Kleingedruckte

Unter diesen Bedingungen gilt die empfohlene Höchstzahl überwachter Elemente.

Kommunikationsart
ausschließlich OPC UA — keine andere Kommunikation, auch kein TCP
Abtast- und Sendeintervall
je 1 Sekunde
Organisationsbausteine
keine OBs mit Priorität über 15
Zyklusbelastung durch Kommunikation
höchstens 50 %
Datentyp der Elemente
WSTRING

Bedingungen nach Siemens-FAQ 109755846 „TIA Portal OPC UA system limits" (V1.0, 02/2024), auf das das Funktionshandbuch „Kommunikation" verweist. Die Elementzahlen sind Empfehlungen; harte Grenze sind 10.000 Elemente je Subscription — darüber antwortet der Server mit BadTooManyMonitoredItems, bei erschöpftem Mengengerüst mit BadOutOfMemory.

Zwei Grenzen dagegen sind hart, und sie liegen beim Server, nicht beim Client. Die eine ist das kleinste Abtastintervall: 100 ms bei CPU 1511 bis 1516 (und dem Software Controller 1505S), 10 ms erst bei CPU 1517 und 1518 (und 1507S) — darunter geht es auf keiner S7-1500. Die andere ist das kleinste Sendeintervall, in dem der Server Änderungen überhaupt ausliefert: ab Firmware V3.0 200 ms bei 1511 bis 1513 (bis V2.9: 500 ms), 100 ms bei 1515/1516 (bis V2.9: 200 ms), 10 ms bei 1517/1518. Dazu kommt der Wert, den der Projekteur in den Server-Einstellungen als kleinstes Abtast- und Sendeintervall einträgt: Fordert ein Client weniger, bleibt der Server bei seinem Minimum; ein Client, der kein Abtastintervall vorgibt, wird im Sendeintervall abgetastet; kommt der Server mit der Abtastung nicht nach, quittiert er das mit dem Statuscode GoodOverload. Wer auf einer 1513 oder 1516 eine Erfassung im 10-ms-Raster zusagt, kann das prinzipbedingt nicht halten — unabhängig davon, was der Client anfordert. Beide Grenzen gehören in die Schnittstellenbeschreibung.

Der teuerste stille Fehler: Strukturen

SIMATIC-Strukturen sind über OPC UA nicht konsistent lesbar oder schreibbar. Betroffen sind anwenderdefinierte Typen, unbenannte Strukturen, strukturierte Systemdatentypen wie DTL, IEC_TIMER und IEC_COUNTER — und auch Zeichenketten (Array of Char). Konsistent bleiben dagegen alle elementaren Typen einschließlich LDT, DATE, TIME und TIME_OF_DAY: Ein Zeitstempel im Übergabebereich gehört deshalb als LDT hinein, nicht als DTL.

Was das praktisch heißt: Ein Rezept- oder Auftragsdatensatz, der als Struktur abgeholt wird, kann Werte aus zwei verschiedenen Zyklen enthalten. Auftragsnummer neu, Sollmenge alt. Es gibt keine Fehlermeldung zur Laufzeit; das Rezept ist einfach falsch.

Die Suche beginnt danach an der falschen Stelle: Ein Auftrag, der beim MES widersprüchlich ankommt, sieht dort wie ein Fehler des MES aus. Erst wenn dort alles geprüft ist, wandert der Verdacht zur Steuerung — und in der Steuerung funktioniert sichtbar alles.

Der Server verschweigt das allerdings nicht ganz, er sagt es nur vorher, an einer Stelle, die kaum ein Client liest: Ab Firmware V2.6 setzt er bei nicht konsistent lesbaren Knoten das Bit 8 (NonatomicRead) und bei nicht konsistent schreibbaren das Bit 9 (NonatomicWrite) im Attribut AccessLevelEx; im XML-Export der Server-Schnittstelle steht dieselbe Information im 32 Bit breiten Attribut AccessLevel. Wer die Anbindung einrichtet und diese Bits beim Browsen auswertet, findet die Strukturen, bevor das MES sie findet.

Zwei Wege bleiben. Wo die Gegenseite Methodenaufrufe beherrscht, übergibt eine serverseitige OPC-UA-Methode (ab Firmware V2.5) einen Datensatz konsistent — laut Funktionshandbuch der einzige Weg, der über elementare Datentypen hinaus Konsistenz sichert. Für alles andere — Lesen, Schreiben, Subscriptions — liegt die Lösung im Anwenderprogramm, nicht in der Anbindung: Zusammengehörige Daten in einem Zug in einen Übergabebereich kopieren und mit einem Gültigkeitskennzeichen versehen, das der Client zuerst prüft. Das ist in der Sache derselbe Mechanismus, den man auch bei der klassischen S7- und HMI-Kommunikation braucht — dort nimmt die S7-1500 einem einen Teil ab, weil sie Blöcke bis 512 Byte systemseitig konsistent kopiert, sofern das Programm sie in einem Zug schreibt; bei OPC UA gilt er für jede Struktur, egal wie klein. Nur erwartet ihn dort kaum jemand. Wie ein solcher Bereich aussieht, steht weiter unten.

Der Server antwortet auch im STOP

Diese Eigenschaft verdient einen eigenen Abschnitt, weil ihre Folgen so weitreichend sind: Der OPC-UA-Server läuft im Betriebszustand STOP weiter. Lese- und Schreibanfragen beantwortet er wie gewohnt und liefert die letzten Werte von vor dem Stopp. Schreibzugriffe nimmt er an, der Client bekommt eine Erfolgsmeldung, und ein Rücklesen zeigt den geschriebenen Wert — eine Rücklese-Prüfung im MES bestätigt den Auftrag also scheinbar. Die Steuerung verarbeitet ihn aber nicht, und beim Anlauf überschreibt sie mit den Startwerten, was im STOP geschrieben wurde. Nur Methodenaufrufe weist der Server im STOP mit dem Statuscode BadInvalidState (16#00AF_0000) zurück, weil ihr Programmteil nicht läuft: Eine Anbindung, die Aufträge per Methode übergibt, bemerkt den Stopp also — eine, die nur Variablen schreibt, nicht.

Die Gegenmaßnahme ist einfach und gehört in jede Anbindung: ein Lebenszeichen im Datenmodell — ein Zähler, den das Anwenderprogramm zyklisch hochzählt und den der Client auf Änderung überwacht. Steht der Zähler, steht die Steuerung. Den Betriebszustand der CPU stellt der Server zwar auch über seine Geräteinformationen bereit, und ein Client kann ihn überwachen; das Lebenszeichen ersetzt das nicht, es ergänzt es: Es belegt, dass das Anwenderprogramm tatsächlich rechnet und nicht nur die CPU in RUN steht.

Zeitstempel bedeuten nicht, was man denkt

Werden CPU-Variablen wie üblich in den Adressraum des Servers abgebildet, setzt der Server den Zeitstempel der Quelle (SourceTimestamp) nicht auf den Zeitpunkt der Wertänderung, sondern auf den Zeitpunkt, zu dem der Wert im Server erfasst wurde — durch einen Lesedienst oder die Abtastung einer Subscription, also auf den Abtastzeitpunkt.

SignalwegZwischen Wertänderung und Meldung liegt eine Abtastung.Der Client erfährt eine Änderung frühestens mit der nächsten Abtastung — und liest an ihr einen Zeitstempel ab, der den Abtastzeitpunkt nennt, nicht den der Änderung. Geht die CPU in STOP, ändert sich am Bild für einen Client, der nur Prozesswerte liest, nichts.
WERTÄNDERUNG IM PROGRAMMCPU GEHT IN STOPANWENDER-PROGRAMMZyklusWert im ÜbergabebereichProgramm rechnet nicht mehrOPC-UA-SERVERAbtastungAbtastintervallHIER ENTSTEHT DER ZEITSTEMPELTASTET WEITER ABWert eingefrorenVerzug bis zur Abtastung — der Zeitstempel nennt nur sein rechtes EndeCLIENT · MESSubscriptionWert beim ClientAntworten kommen weiter — der Wert bleibt stehent1 Änderungt2 Abtastung = Zeitstempelt3 CPU-STOPZEIT
  • Wert im Anwenderprogramm und beim Client
  • Abtastung durch den Server
  • Zeitstempel, CPU-STOP und seine Folgen

Eigene Darstellung nach Siemens-Funktionshandbuch „Kommunikation" (S7-1500/ET 200, Beitrag 59192925, Ausgabe 11/2025), Kapitel OPC UA-Kommunikation — SourceTimestamp beim Abbilden von CPU-Variablen, Verhalten des Servers im Betriebszustand STOP.

Für Anzeigen ist das gleichgültig. Für Aufzeichnungen, Rückverfolgbarkeit und Chargennachweise ist es das nicht: Die Auflösung des Zeitstempels ist das Abtastintervall — und das ist, sobald der Client es nicht ausdrücklich setzt, das Sendeintervall der Subscription. Wer also im Sekundenbereich abtastet, bekommt Zeitstempel im Sekundenraster, die zudem systematisch später liegen als das Ereignis; ein kürzeres Abtastintervall verfeinert das Raster, hebt den Verzug aber nicht auf. Wo der Änderungszeitpunkt Teil des Nachweises ist, muss er aus dem Anwenderprogramm kommen.

Zwei Wege gibt es dafür. Der eine funktioniert auf jeder Firmware: den Zeitpunkt als eigenen Wert vom Typ LDT in den Übergabebereich schreiben, den der Client neben dem Nutzwert liest. Der andere setzt Firmware V3.0 (TIA Portal V18) und eine eigene Server-Schnittstelle voraus: Dort kann das Anwenderprogramm mit der Anweisung OPC_UA_WriteList über die lokale Verbindung Wert, StatusCode und SourceTimestamp (LDT) gemeinsam in einen Knoten schreiben — der Zeitstempel steht dann im OPC-UA-Attribut selbst, wo Archiv und MES ihn ohnehin suchen. Der Knoten darf dabei nicht auf eine CPU-Variable abgebildet sein und ist für Clients nur lesbar.

Welcher Zeitstempel gilt für welchen Zweck?

Die Reihenfolge zählt: Der erste Fall, der zutrifft, ist die Antwort.

  • Wenn

    Anzeige, Bedienbild, Zustandsübersicht

    Dann

    Zeitstempel der Quelle (SourceTimestamp), wie ihn der Server beim Abtasten setzt

    Was angezeigt wird, ist ohnehin der zuletzt erfasste Wert — der Abtastzeitpunkt beschreibt ihn richtig.

  • Wenn

    Verlaufsaufzeichnung, deren Auflösung deutlich gröber ist als das Abtastintervall

    Dann

    Zeitstempel der Quelle (SourceTimestamp), mit bekanntem Verzug

    Der Versatz ist systematisch und damit einschätzbar. Er gehört in die Schnittstellenbeschreibung, nicht in die spätere Diskussion.

  • Wenn

    Nachweis, zu dem der Zeitpunkt der Wertänderung gehört

    Dann

    Zeitstempel aus dem Anwenderprogramm

    Nur dort ist der Änderungszeitpunkt bekannt. Er gehört als eigener LDT-Wert in den Übergabebereich — oder ab Firmware V3.0 per OPC_UA_WriteList direkt als SourceTimestamp des Knotens.

  • Wenn

    Frage, ob die Steuerung überhaupt noch rechnet

    Dann

    Kein Zeitstempel, sondern das Lebenszeichen

    Der Server beantwortet Lese- und Schreibanfragen auch im Betriebszustand STOP; nur Methodenaufrufe scheitern dort (BadInvalidState), und der Betriebszustand ist über die Geräteinformationen lesbar. Dass das Anwenderprogramm tatsächlich rechnet, belegt aber nur ein Wert, den es selbst fortschreibt.

Der vom Server gesetzte SourceTimestamp wird dadurch nicht wertlos: Aus dem Abstand zum Zeitstempel des Programms lässt sich der Verzug der Abtastung ablesen. Nicht zu verwechseln mit dem ServerTimestamp, dem zweiten Zeitstempelfeld eines Werts — der ist hier nicht gemeint.

Ein Übergabebereich, der drei Fehlerbilder zugleich abstellt

Gültigkeitskennzeichen, Lebenszeichen und Änderungszeitpunkt lösen drei verschiedene Probleme — aber sie liegen an derselben Stelle: in dem Bereich des Anwenderprogramms, den der Client liest. Deshalb entstehen sie zusammen und nicht nacheinander.

Anleitung

Was in der Steuerung entsteht, bevor sich der erste Client verbindet.

Der Aufwand liegt im Anwenderprogramm, nicht in der Anbindung. Wer die Reihenfolge umdreht, baut die Prüfungen später in ein laufendes System ein.

  1. Einen Übergabebereich aus elementaren Datentypen anlegen

    TIA Portal

    Nicht den gewachsenen Rezept- oder Auftragsbaustein nach außen geben, sondern einen eigenen Bereich anlegen, der nur die Werte enthält, die das übergeordnete System braucht — und zwar einzeln. Was in der Steuerung eine Struktur ist, wird beim Kopieren in Einzelwerte aufgelöst.

    Zeichenketten sind dabei Arrays, keine elementaren Werte: Wo eine Auftragsnummer als Text übertragen werden muss, gilt für sie dasselbe Kennzeichen wie für alles andere.

    Das kostet Schreibarbeit im Programm und nimmt der Anbindung die gesamte Fehlerklasse aus dem Abschnitt über Strukturen ab: Jeder einzelne Wert ist für sich konsistent, und die Zusammengehörigkeit stellt nicht das Protokoll her, sondern das Kennzeichen daneben.

  2. Lebenszeichen und Änderungszeitpunkt mitschreiben

    Anwenderprogramm

    Drei Werte im Übergabebereich sind keine Nutzdaten und trotzdem die wichtigsten: das Gültigkeitskennzeichen, das Lebenszeichen und der Zeitpunkt der letzten Änderung (als LDT, nicht als DTL — nur so bleibt er konsistent). Sie kosten wenige Zeilen und beantworten die drei Fragen, die der Client sonst raten muss.

    Die Reihenfolge ist keine Kosmetik: Vor dem Kopieren wird das Kennzeichen auf ungültig gesetzt, nach dem Kopieren auf gültig — besser als laufende Satznummer statt als Bit. Erwischt der Server den Bereich mittendrin, steht das Kennzeichen auf ungültig, und der Client wartet, statt einen halben Satz zu verarbeiten. Und der Bereich bleibt danach stehen, bis der Client den Satz quittiert hat; sonst kann zwischen dem Lesen des Kennzeichens und dem Lesen der Werte schon der nächste Satz beginnen, denn Konsistenz sagt der Server nur je einzelnem Wert zu, nie über mehrere Knoten. Wo keine Quittung möglich ist, ersetzt ein Folgezähler das Kennzeichen: einmal vor, einmal nach den Nutzdaten — nur wenn beide gleich sind, ist der Satz vollständig.

  3. Den Client auf die Reihenfolge verpflichten

    Anbindung

    Der Übergabebereich wirkt nur, wenn die Gegenseite ihn benutzt. Vier Punkte gehören deshalb in die Schnittstellenbeschreibung und nicht in die spätere Fehlersuche:

    • Erst das Gültigkeitskennzeichen beziehungsweise den vorderen Zähler lesen, dann die Werte, dann den hinteren Zähler — stimmen sie nicht überein, verwerfen und neu lesen; danach quittieren. Für das Abholen eines Datensatzes keine Subscription: Sie darf melden, dass ein neuer Satz vorliegt, sichert aber keinen Zusammenhalt zwischen mehreren Knoten zu.
    • Das Lebenszeichen auf Änderung überwachen und mit einer Frist versehen. Steht es länger als vereinbart, gilt die Steuerung als nicht rechnend — unabhängig davon, dass Lese- und Schreibzugriffe weiter beantwortet werden.
    • Für den Nachweis den Zeitstempel aus dem Programm verwenden, nicht den vom Server gesetzten SourceTimestamp.
    • Beim Abnahmetest alle abonnierten Knoten auf AccessLevelEx prüfen: Bei keinem Nutzdatenknoten darf NonatomicRead gesetzt sein.

Voreinstellungen des OPC-UA-Servers, die man kennen sollte

Voreinstellung

Vier Punkte, die vor dem Produktivgang bewusst gesetzt gehören.

  • Die Sichtbarkeit des Datenhaushalts einschränken

    Das Attribut, das eine Variable für HMI und OPC UA erreichbar macht, ist beim Anlegen standardmäßig aktiv; sobald der Server läuft, veröffentlicht die Steuerung alles, was freigegeben ist. Einschränken lässt sich das auf drei Ebenen: je Variable über das Häkchen, je Datenbaustein über das Bausteinattribut „DB erreichbar aus OPC UA" (überstimmt die Einzelhäkchen, verbirgt auch Instanz-DBs und lässt sich in der Detailansicht des Ordners „Programmbausteine" für viele Bausteine auf einmal setzen) — oder ganz, indem die Standard-SIMATIC-Server-Schnittstelle abgewählt wird und nur eine eigens modellierte Server-Schnittstelle nach außen geht; dann bleibt das Anwenderprogramm für Clients unsichtbar, allgemeine Geräteinformationen bleiben lesbar. Laut Siemens ist das der flexiblere und übersichtlichere Weg. Die Voreinstellung für neue Variablen und Bausteine lässt sich unter „Extras > Einstellungen > PLC-Programmierung" ändern.

  • Den ungesicherten Endpunkt abschalten

    Solange er angeboten wird, greift die Zertifikatsprüfung an diesem Endpunkt nicht, die Anwendung des Clients bleibt ungeprüft, und der Verkehr ist weder signiert noch verschlüsselt. Ob sich dann jeder verbinden kann, entscheidet die Einstellung daneben: die Gast-Authentifizierung. Bis Firmware V4.0 ist der Endpunkt in der Voreinstellung aktiv, ab V4.1 abgewählt — bei hochgerüsteten Projekten nachsehen.

  • Überholte Verschlüsselungsverfahren gegenprüfen

    Basic128Rsa15 und Basic256 gelten in der OPC-UA-Spezifikation (Part 7) als überholt; nach dem Funktionshandbuch (Ausgabe 11/2025) sind sie beim S7-1500-Server in der Voreinstellung bereits abgewählt. Verlassen sollte man sich darauf nicht: In migrierten und älteren Projekten steht die Auswahl so, wie sie einmal gesetzt wurde — nachsehen und alles abwählen, was der Client nicht braucht. Siemens empfiehlt, wo der Client es kann, Aes256Sha256RsaPss, sonst Basic256Sha256, jeweils mit „Signieren und Verschlüsseln".

  • Den anonymen Zugang prüfen

    Mit Gast-Authentifizierung darf jeder Client, der den Kanal aufbaut, ohne Anmeldung zugreifen; Siemens sieht sie nur für den Ausnahmefall vor. Für den Produktivbetrieb Benutzer mit Passwort anlegen — bei CPUs bis Firmware V3.0 im Server-Dialog unter Benutzer-Authentifizierung, ab V3.1 in der lokalen Benutzerverwaltung der CPU über das Funktionsrecht „OPC UA-Server-Zugriff"; der anonyme Zugang ist dort der Benutzer „Anonymous". Ab Firmware V4.0 lassen sich Rechte zusätzlich rollenbasiert je Namensraum vergeben.

Nach dem Siemens-Funktionshandbuch „Kommunikation" (S7-1500/ET 200, Beitrag 59192925, Ausgabe 11/2025), Kapitel OPC UA-Kommunikation, und OPC UA Part 7 (Security Profiles) der OPC Foundation.

Die Runtime-Lizenz für OPC UA auf der S7-1500

Die Runtime-Lizenz gilt je CPU und deckt Server- wie Client-Funktion ab. Ihre Größe richtet sich nach einer festen Zuordnungsliste, nicht nach der Baugröße oder dem Gehäuse — wer nach Bauform kalkuliert, kalkuliert falsch. Die Liste ist kurz: „small“ für CPU 1511, 1512, 1513, alle ET-200SP-CPUs und die CPU 1515SP PC; „medium“ für CPU 1515, 1516, 1516pro-2 PN und den Software Controller CPU 1507S; „large“ nur für CPU 1517 und 1518 (Funktionshandbuch „Kommunikation“, Ausgabe 11/2025). Die 1516pro im Feldgehäuse zählt also wie eine 1516, und der Software Controller läuft bei den Mengengerüsten mit den großen CPUs, lizenziert wird er als medium. Den benötigten Typ zeigt TIA Portal für jede CPU selbst an, unter Eigenschaften > Allgemein > Runtime-Lizenzen > OPC UA.

Technisch erzwungen wird sie nicht: In den Eigenschaften der CPU wird lediglich der Typ der erworbenen Lizenz ausgewählt — das Handbuch nennt das „Bestätigung des Erwerbs“. Ein Lizenzschlüssel wird nicht in die Steuerung geladen; eine Prüfung in der CPU beschreibt Siemens nicht. Das erklärt, warum in der Praxis Anlagen unlizenziert laufen können, ohne dass es jemandem auffällt — eine Fehlermeldung oder einen Diagnoseeintrag dafür beschreibt das Handbuch ebenso wenig. Bei einer Bestandsaufnahme im Produktionsnetz gehört dieser Punkt deshalb auf die Liste: nicht, weil etwas nicht funktioniert, sondern weil eine Lizenzlücke sonst erst beim Audit sichtbar wird.

Wenn es passt, ist es der richtige Weg

Nichts davon spricht gegen OPC UA. Für eine neue Anbindung ist es der technisch sauberste Weg an die S7-1500: symbolisch statt absolut, authentifizierbar, verträglich mit optimierten Bausteinen und ohne die Freigaben, die die klassische Kommunikation verlangt.

Die Punkte oben sind keine Argumente dagegen, sondern die Liste dessen, was in die Auslegung gehört — bevor jemand ein Mengengerüst zusagt, das aus einer Labortabelle stammt.

Fahrplan

Was vor einer MES-Anbindung zu klären ist

Fünf Punkte, die den Unterschied zwischen einer funktionierenden Anbindung und stiller Fehlfunktion ausmachen.

  1. Firmware und Leistungsklasse feststellen

    Server, Methoden und Client sind an unterschiedliche Firmware-Stände gebunden, das kleinste Abtastintervall an die CPU-Leistungsklasse. Beides bestimmt, was zusagbar ist.

  2. Datenstruktur auf Konsistenz prüfen

    Strukturen und Systemdatentypen werden nicht konsistent übertragen. Wo zusammengehörige Werte gebraucht werden, gehört ein Gültigkeitskennzeichen ins Programm.

  3. Erkennung eines CPU-Stopps vorsehen

    Der Server antwortet auch im Betriebszustand STOP mit eingefrorenen Werten. Ohne Lebenszeichen im Datenmodell oder Überwachung des Betriebszustands merkt das übergeordnete System den Stillstand nicht von selbst.

  4. Zeitstempel klären

    Der Zeitstempel der Quelle (SourceTimestamp), den der Server beim Abbilden von CPU-Variablen vergibt, bezeichnet den Abtastzeitpunkt, nicht den Zeitpunkt der Wertänderung. Wo es auf den Änderungszeitpunkt ankommt, muss er aus dem Programm kommen — als eigener Wert oder ab Firmware V3.0 als selbst gesetzter SourceTimestamp.

  5. Sichtbarkeit und Sicherheit einstellen

    Der OPC-UA-Server ist ab Werk abgeschaltet. Sobald er aktiviert ist, veröffentlicht er per Voreinstellung den gesamten freigegebenen Datenhaushalt und bietet bei CPUs bis Firmware V4.0 auch den ungesicherten Endpunkt an; ab V4.1 ist der ab Werk abgewählt. Beides gehört bewusst eingestellt, bevor die Anbindung produktiv geht.

FAQ

Häufige Fragen.

Brauchen wir eine Lizenz für OPC UA auf der S7-1500?

Ja, eine Runtime-Lizenz je CPU, deren Größe sich nach einer festen Zuordnungsliste je CPU-Typ richtet (small, medium, large) — der Software Controller CPU 1507S braucht medium, obwohl er bei den Mengengerüsten mit den großen CPUs läuft. Technisch erzwungen wird sie nicht: In den Eigenschaften wird lediglich der erworbene Lizenztyp ausgewählt, ein Schlüssel wird nicht übertragen.

Warum kommen unsere Rezeptdaten manchmal unvollständig an?

Weil Strukturen über OPC UA nicht konsistent übertragen werden. Betroffen sind anwenderdefinierte Typen, Systemdatentypen wie DTL, IEC_TIMER und IEC_COUNTER und auch Zeichenketten. Konsistent sind nur elementare Datentypen — dazu zählen auch LDT, DATE, TIME und TIME_OF_DAY. Abhilfe schafft ein Übergabebereich aus Einzelwerten mit einem Gültigkeitskennzeichen, das das Programm als letztes setzt und das MES zuerst liest — oder eine serverseitige OPC-UA-Methode, wo das MES Methoden aufrufen kann.

Merkt unser MES, wenn die CPU in STOP geht?

Nicht von selbst. Der Server läuft im Betriebszustand STOP weiter, liefert die eingefrorenen Werte und quittiert Schreibzugriffe, die die Steuerung nicht verarbeitet; nur Methodenaufrufe scheitern sichtbar (BadInvalidState). Das MES muss den Betriebszustand der CPU, den der Server in seinen Geräteinformationen bereitstellt, oder ein Lebenszeichen im Datenmodell überwachen — das Lebenszeichen belegt zusätzlich, dass das Anwenderprogramm rechnet.

Welches Abtastintervall können wir zusagen?

Das hängt an der Leistungsklasse der CPU und am kleinsten Abtast- und Sendeintervall, das im Server projektiert ist; beides lässt sich clientseitig nicht unterlaufen. Nach Siemens-FAQ 109755846 tasten CPU 1511 bis 1516 nicht schneller als alle 100 Millisekunden ab, erst CPU 1517 und 1518 erlauben 10 Millisekunden — darunter kommt keine S7-1500. Kleine CPUs senden zudem frühestens alle 200 Millisekunden (bis Firmware V2.9: 500).

Reicht der ungesicherte Endpunkt im Werksnetz?

Er hebelt die Zertifikatsprüfung aus: Die Identität des Clients bleibt unbekannt, und mit aktiver Gast-Authentifizierung kann sich jeder Client verbinden. Der Verkehr ist dann weder signiert noch verschlüsselt — mitlesbar und unterwegs veränderbar. Eine Anmeldung mit Benutzername und Passwort bleibt möglich, ersetzt aber keinen gesicherten Kanal. Bis Firmware V4.0 ist der Endpunkt in der Voreinstellung aktiv, ab V4.1 abgewählt; im Werksnetz gehört er in beiden Fällen abgewählt.

Weiterlesen

Alle Beiträge im Überblick

Kontakt

Stellen Sie Ihr Vorhaben vor.

Eine erste Einschätzung zu Ihrem Vorhaben ist kostenfrei und unverbindlich.

Zum Kontaktformular

Antwort innerhalb von zwei Werktagen