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 den Firmware-Stand, nicht das Typenschild.

Firmware-Bindung

Woran der Funktionsumfang hängt.

OPC-UA-Server
kam mit einem frühen StandDie Funktion, die im Lastenheft gemeint ist, wenn dort „kann OPC UA“ steht.
Serverseitige Methoden
deutlich späterAufrufbare Funktionen statt reiner Variablen — der Unterschied zwischen Datenabholung und Auftragsübergabe.
OPC-UA-Client
erst danachDie Steuerung fragt selbst an. Der Fall, der bei der Auslegung am häufigsten übersehen wird.
Erweiterte Mengengerüste
mit dem Stand V3.0
Kleinstes Abtastintervall
an die Leistungsklasse der CPU gebunden

Welcher Stand welche Funktion mitbringt, steht im Siemens-Funktionshandbuch „S7-1500 OPC UA“ und verschiebt sich mit neuen Ständen — vor jeder Zusage gegen die aktuelle Fassung prüfen.

Der Sprung auf den Stand V3.0 ist dabei das stärkste technische Argument für ein Firmware-Update, das kaum jemand kennt: Die Subscription-Grenzen vervielfachen sich bei gleicher Hardware. Man bekommt ein Vielfaches der überwachbaren Datenpunkte, ohne eine neue CPU zu kaufen.

Aber: Diese Mengengerüste gelten unter Bedingungen, die Siemens ausdrücklich nennt.

Das Kleingedruckte

Unter diesen Bedingungen gilt das Mengengerüst.

Kommunikationsart
ausschließlich OPC UA
Parallel dazu
keine HMI- oder S7-Kommunikation
Abtast- und Sendeintervalle
gemächlich gewählt
Kommunikationslast
begrenzt

Bedingungen nach dem Siemens-Funktionshandbuch „S7-1500 OPC UA“.

Eine harte Grenze dagegen ist das kleinste Abtastintervall, und sie liegt nicht beim Client. Wer auf einer kleineren CPU eine Erfassung im Bereich weniger Millisekunden zusagt, kann das prinzipbedingt nicht halten — unabhängig davon, was der Client anfordert.

Der teuerste stille Fehler: Strukturen

SIMATIC-Strukturen sind über OPC UA nicht konsistent lesbar oder schreibbar. Betroffen sind anwenderdefinierte Typen, unbenannte Strukturen, Systemdatentypen wie Datum-und-Uhrzeit-Strukturen oder Zeitgeber — und auch Zeichenketten.

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; 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.

Die Lösung liegt 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 derselbe Mechanismus, den man auch bei der klassischen S7-Kommunikation braucht — nur erwartet ihn bei OPC UA 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. Er beantwortet Anfragen wie gewohnt und liefert die eingefrorenen Werte von vor dem Stopp. Schreibzugriffe nimmt er an, der Client bekommt eine Erfolgsmeldung — die Steuerung verarbeitet die Werte aber 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.

Zeitstempel bedeuten nicht, was man denkt

Werden CPU-Variablen wie üblich in den Adressraum des Servers abgebildet, setzt der Server den Zeitstempel der Quelle nicht auf den Zeitpunkt der Wertänderung, sondern auf den Zeitpunkt, zu dem der Wert im Server erfasst wurde — 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 den Client 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 „S7-1500 OPC UA“ — Zeitstempel der Quelle 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: Wer mit Subscriptions im Sekundenbereich arbeitet, bekommt Zeitstempel mit sekundengrober Auflösung, die zudem systematisch später liegen als das Ereignis. Wo der Änderungszeitpunkt Teil des Nachweises ist, muss er aus dem Anwenderprogramm kommen und als eigener Wert übertragen werden.

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 des Servers

    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 des Servers, 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 Wert in den Übergabebereich.

  • Wenn

    Frage, ob die Steuerung überhaupt noch rechnet

    Dann

    Kein Zeitstempel, sondern das Lebenszeichen

    Der Server beantwortet Anfragen auch im Betriebszustand STOP. Nur ein Wert, den das Anwenderprogramm selbst fortschreibt, belegt, dass es läuft.

Der Zeitstempel des Servers wird dadurch nicht wertlos: Aus dem Abstand zum Zeitstempel des Programms lässt sich der Verzug der Abtastung ablesen.

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 gehören dabei zu den Strukturen: 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. Sie kosten wenige Zeilen und beantworten die drei Fragen, die der Client sonst raten muss.

    Die Reihenfolge ist keine Kosmetik: Das Gültigkeitskennzeichen wird als letztes gesetzt. Erwischt der Server den Bereich mittendrin, steht es noch auf ungültig — und der Client wartet, statt einen halben Satz zu verarbeiten.

  3. Den Client auf die Reihenfolge verpflichten

    Anbindung

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

    • Erst das Gültigkeitskennzeichen lesen, dann die Werte.
    • 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 des Servers.

Voreinstellungen, die man kennen sollte

Werkseinstellung

Drei 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. Die Steuerung veröffentlicht per Voreinstellung alles, was sie hat. Einschränken lässt sich das nur variablenweise — bei gewachsenen Projekten Arbeit, aber der einzige Weg.

  • Den ungesicherten Endpunkt abschalten

    Solange er angeboten wird, bleibt die Identität des Clients unbekannt und jeder Client kann sich verbinden — unabhängig davon, wie sorgfältig die Zertifikatsprüfung konfiguriert ist.

  • Überholte Verschlüsselungsverfahren abwählen

    In der Voreinstellung gibt der Server auch Verfahren frei, die die OPC Foundation inzwischen als überholt einstuft. Hier weicht die Werkseinstellung von der Empfehlung der Spezifikation ab — ein konkreter, prüfbarer Befund, der sich in wenigen Minuten abstellen lässt.

Nach dem Siemens-Funktionshandbuch „S7-1500 OPC UA“ und OPC UA Part 7 (Security Profiles) der OPC Foundation.

Zur Lizenz

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.

Technisch erzwungen wird sie nicht: In den Eigenschaften der CPU wird lediglich der Typ der erworbenen Lizenz ausgewählt; ein Schlüssel wird nicht in die Steuerung übertragen und nicht geprüft. Das erklärt, warum in der Praxis Anlagen unlizenziert laufen, ohne dass es jemandem auffällt — es gibt keine Fehlermeldung und keinen Eintrag. 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 merkt das übergeordnete System den Stillstand nicht.

  4. Zeitstempel klären

    Der Zeitstempel des Servers bezeichnet den Abtastzeitpunkt, nicht den Zeitpunkt der Wertänderung. Wo es auf den Änderungszeitpunkt ankommt, muss er aus dem Programm kommen.

  5. Sichtbarkeit und Sicherheit einstellen

    Ab Werk ist der gesamte Datenhaushalt sichtbar und der ungesicherte Endpunkt verfügbar. 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 richtet — nicht nach der Baugröße. 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 Datum/Uhrzeit-Strukturen und auch Zeichenketten. Konsistent sind nur elementare Datentypen.

Merkt unser MES, wenn die CPU in STOP geht?

Nicht von selbst. Der Server läuft im Betriebszustand STOP weiter und liefert die eingefrorenen Werte; Schreibzugriffe nimmt er an und quittiert sie, ohne dass die Steuerung sie verarbeitet. Ein Lebenszeichen im Datenmodell ist deshalb Pflicht.

Welches Abtastintervall können wir zusagen?

Das hängt an der Leistungsklasse der CPU und lässt sich clientseitig nicht unterlaufen. Kleinere CPUs kommen nicht unter 100 Millisekunden; nur die großen Leistungsklassen erlauben deutlich kürzere Intervalle.

Reicht der ungesicherte Endpunkt im Werksnetz?

Er hebelt die übrigen Sicherheitseinstellungen aus: Die Identität des Clients bleibt unbekannt, und jeder Client kann sich verbinden, unabhängig von der konfigurierten Zertifikatsprüfung. Es geht dabei nicht um Abhören, sondern um Zugriffskontrolle.

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