Integration · PLC

OPC UA mit Siemens S7-1500 verbinden

ProduktSiemens S7-1500
KategoriePLC
OPC-UA-RolleServer

Die S7-1500 hat einen OPC-UA-Server in der CPU-Firmware, aktiviert im TIA Portal und erreichbar unter opc.tcp://<plc-ip>:4840. Der Haken ist kommerzieller und nicht technischer Natur: Für den Server ist in der Regel eine Runtime-Lizenz oder Option erforderlich, und sowohl diese als auch der Mindest-Firmwarestand sind mit Siemens zu klären.

Bevor Sie starten

  • Ein CPU-Firmwarestand, der den OPC-UA-Server enthält, und die Runtime-Lizenz oder Option, die ihn aktiviert. Keines von beiden lässt sich sicher aus einem einmal gelesenen Datenblatt ableiten; beides hängt an der genauen Bestellnummer der CPU.
  • TIA Portal in einer Version, die zur CPU-Firmware passt. Ein Projekt, das auf einer älteren TIA-Version projektiert wurde, zeigt die gesuchten Servereinstellungen möglicherweise gar nicht.
  • Die Lizenz muss auf der CPU vorhanden sein, bevor der Server läuft. Behandeln Sie die Lizenzbeschaffung als Vorlaufzeit im Projektplan und nicht als Konfigurationsschritt am Tag der Inbetriebnahme.
  • Ein Netzwerkweg auf TCP 4840 von dort, wo der Client läuft, oder eine Reverse-Connect-Lösung, wenn die CPU unterhalb einer Purdue-Ebenengrenze sitzt, die nur ausgehende Verbindungen zulässt.
  • Eine disziplinierte Uhr. Die CPU prüft die Gültigkeitszeiträume von Zertifikaten, ein Uhrenversatz zwischen SPS und Client zeigt sich daher als Zertifikatsfehler und nicht als Zeitproblem.

Die Einrichtung

  1. Den Server in den CPU-Eigenschaften aktivierenÖffnen Sie in der Gerätekonfiguration die CPU-Eigenschaften und suchen Sie die Einstellungen des OPC-UA-Servers. Aktivieren Sie den Server und notieren Sie den Endpunkt, den TIA meldet, normalerweise opc.tcp://<plc-ip>:4840. Setzen Sie den Anwendungsnamen bewusst: Er wandert in die ApplicationUri und in das eigene Anwendungsinstanzzertifikat der CPU, und ihn später zu ändern macht jede aufgebaute Vertrauensbeziehung ungültig.
  2. Pro Tag entscheiden, was bereitgestellt wirdSPS-Tags und Datenbausteinelemente tragen Zugriffsattribute, die steuern, ob sie für HMI und OPC UA sichtbar sind und ob sie geschrieben werden dürfen. Ein Tag mit abgewähltem Sichtbarkeitsattribut erscheint schlicht nicht im Adressraum; ein Tag, das sichtbar, aber nicht schreibbar ist, erscheint und verweigert dann den Schreibzugriff. Setzen Sie diese Attribute als bewusste Schnittstellenentscheidung und nicht dadurch, dass Sie die Voreinstellungen stehen lassen.
  3. Bauen Sie eine Server-Schnittstelle, statt das ganze Programm offenzulegenTIA erlaubt es, eine Server-Schnittstelle zu definieren: eine kuratierte Menge von Knoten mit Namen Ihrer Wahl, entkoppelt von internen Symbolnamen. Tun Sie das. Sie erhalten einen stabilen Vertrag, sodass internes Umbauen des Programms den Client nicht bricht, und der Adressraum bleibt klein genug, damit ein eingebetteter Server ihn schnell browsen kann.
  4. Eine Companion Specification auf die Schnittstelle abbilden, sofern vorhandenImportieren Sie die NodeSet2-Datei der Companion Specification mit SiOME, bilden Sie SPS-Tags auf die Variablen des Modells ab und exportieren Sie das Ergebnis als Server-Schnittstelle zurück in das TIA-Projekt. Der Client browst dann MachineIdentificationType und eine Zustandsmaschine statt eines Datenbausteinbaums, und derselbe Client-Code funktioniert bei der nächsten Maschine.
  5. Sicherheit und Zertifikate vor den Daten konfigurierenWählen Sie die SecurityPolicies und Sicherheitsmodi, die die CPU anbieten soll, entscheiden Sie zwischen anonymen Identity Tokens und Username-Tokens und erzeugen Sie das Serverzertifikat der CPU über die globalen Sicherheitseinstellungen des Projekts. Das Zertifikat muss jeden Hostnamen und jede IP-Adresse, die ein Client tatsächlich anspricht, im Subject Alternative Name führen, dazu die ApplicationUri als URI-Eintrag.
  6. Übersetzen, laden, dann mit einem unabhängigen Client browsenLaden Sie die Hardwarekonfiguration, verbinden Sie sich dann mit UaExpert oder opcua-commander zuerst auf einem Endpunkt mit Security None, um die Erreichbarkeit nachzuweisen, und erst danach auf einem signierten und verschlüsselten Endpunkt. Der erste sichere Versuch scheitert normalerweise mit BadCertificateUntrusted; verschieben Sie das Client-Zertifikat aus der Rejected-Liste der CPU in deren Vertrauensliste und vertrauen Sie clientseitig dem CPU-Zertifikat.
  7. NamespaceArray lesen und Indizes zur Laufzeit auflösenLesen Sie das NamespaceArray des Servers einmal je Verbindung, bauen Sie eine Zuordnung von Namespace-URI zu Index auf und speichern Sie in Ihrer Konfiguration Namespace-URI plus Identifier. Speichern Sie niemals die rohe ns=-Nummer. Genau das verhindert, dass der nächste Programm-Download Ihren Client bricht.
  8. Die Grenzen der CPU prüfen, bevor Sie Subscriptions dimensionierenDie technischen Daten der CPU nennen die maximale Anzahl Sessions, Subscriptions und MonitoredItems sowie die minimal unterstützten Abtast- und Publishing-Intervalle. Dimensionieren Sie den Client auf diese Zahlen, und denken Sie daran, dass sich der Server die CPU mit dem zyklischen Programm teilt.

Wie der Adressraum aussieht

Solange Sie keine Server-Schnittstelle aufbauen, ist der Adressraum ein Siemens-geprägter Baum und kein Companion-Specification-Modell: ein Knoten mit dem Namen der SPS, darunter Ordner für Global- und Instanz-Datenbausteine, Eingänge, Ausgänge, Merker, Zähler und Zeiten. Die Identifier sind Strings, die die TIA-Symbolnamen abbilden, sodass ein Datenbausteinelement etwa als ns=3;s="MyDB"."Speed" ankommt, mit im Identifier indizierten Array-Elementen. Im Programm deklarierte Strukturen erscheinen als strukturierte Werte, die Ihr Client nur dekodieren kann, wenn er den vom Server gewählten Mechanismus zur Typbeschreibung unterstützt. Eine Server-Schnittstelle ersetzt all das durch die von Ihnen definierten Namen und Hierarchien, und ein mit SiOME abgebildetes Companion-Modell ersetzt es durch Standardtypen unter den Standard-Namespace-URIs.

Die Fallen

  • Die Lizenz ist das häufigste Terminrisiko der gesamten Integration. Ein Server, der nicht startet, weil eine Option nie bestellt wurde, sieht den ersten Nachmittag lang genau wie ein Firewall-Problem aus. Klären Sie die aktuellen Lizenz- und Firmware-Anforderungen mit Siemens, bevor jemand Zeit für die Inbetriebnahme einplant.
  • Namespace-Indizes werden beim Serverstart vergeben und können sich nach einem Programmdownload oder einem Firmware-Wechsel verschieben. Ein Client mit einer hartcodierten ns=-Nummer scheitert dann mit BadNodeIdUnknown an Knoten, die nach wie vor vorhanden sind. Lösen Sie Indizes beim Verbindungsaufbau aus dem NamespaceArray auf.
  • Die CPU dazu zu bringen, das Zertifikat des Clients zu akzeptieren, ist in der Praxis die größte Hürde bei der Inbetriebnahme, und es ist eine zweiseitige Operation: Der Client muss der CPU vertrauen und die CPU muss dem Client vertrauen. Planen Sie ein Verfahren für die Vertrauensliste oder eine PKI vor der ersten Maschine, nicht nach der zehnten.
  • Ein Tag, das sichtbar, aber nicht als schreibbar markiert ist, nimmt die Schreibanforderung an und liefert einen Bad-Status zurück. Lesen Sie bei der Inbetriebnahme nach jedem Schreiben zurück und prüfen Sie den zurückgegebenen StatusCode, statt darauf zu vertrauen, dass keine Exception ausgelöst wurde.
  • Eingebettete Server haben weit niedrigere Grenzen für Sessions, Subscriptions und MonitoredItems als ein PC-basierter Server. Drei Clients, die je eine eigene Session mit eigenem Publishing-Intervall öffnen, können eine CPU erschöpfen, die ein einzelner, gut entworfener Client nicht einmal bemerken würde.
  • Das Zeitstempelverhalten in SPS-integrierten Servern ist oft dürftig: SourceTimestamp ist unter Umständen nicht aussagekräftiger als ServerTimestamp, und die CPU-Uhr läuft womöglich auf Lokalzeit ohne Offset. Entscheiden Sie, welchen Zeitstempel Sie speichern, prüfen Sie nach, was die CPU tatsächlich füllt, und halten Sie überall NTP aktiv.
  • Die Gültigkeitszeiträume von Zertifikaten werden gegen die CPU-Uhr geprüft. Eine CPU, die ihre Uhr über eine lange Spannungsfreiheit verloren hat, weist gültige Zertifikate mit einem Zeitfehler ab, bis die Uhr korrigiert ist.

OEE-Daten daraus gewinnen

Aus einer S7-1500 bekommen Sie Verfügbarkeit, Stückzahlen und Ursachen, aber nur das, was das Programm berechnet. Standardmäßig ist nichts standardisiert: Der Zustand kommt aus dem Bool oder Integer, den der Programmierer verwendet hat, die Stückzahlen aus dem vorhandenen Zähler und die Ursachen aus Störwörtern. Fordern Sie ein Zustandsmodell und einen Zähler in der SPS, statt im Client eine Flankenauswertung auf ein Lauf-Bit zu legen, denn der Client sieht nur abgetastete Werte und übersieht kurze Stillstände zwischen den Abtastungen. Lässt sich der Maschinenbauer dazu bewegen, eine Server-Schnittstelle zu veröffentlichen, die auf Machinery- oder MachineTool-Typen abgebildet ist, werden Verfügbarkeit und Stückzahlen herstellerübergreifend portabel und die Zuordnung ist keine Arbeit mehr pro Maschine. Geplante Produktionszeit, Schichtkalender, Sollzykluszeiten und Auftragskontext stehen nicht in der CPU und müssen aus MES oder ERP kommen.

Prüfen, bevor Sie sich darauf verlassen:Ob für Ihre CPU eine OPC-UA-Serverlizenz oder -Option erforderlich ist, wie sie heißt und wie sie bemessen wird, der Mindest-Firmware-Stand für Server-, Client- und PubSub-Funktionen sowie die CPU-spezifischen Grenzen für Sessions, Subscriptions, MonitoredItems und das minimale Abtastintervall sind alle herstellerbestimmt und haben sich über die Firmware-Generationen verändert. Klären Sie jeden einzelnen Punkt mit Siemens anhand Ihrer genauen CPU-Bestellnummer und Firmware, bevor Sie sich auf einen Termin festlegen, und nehmen Sie keine Zahl aus einem Forenbeitrag oder von dieser Seite als Grundlage für eine Beschaffung.

Zuletzt geprüft am 7. September 2026 gegen OPC UA 1.05.07. OPC UA Connect ist ein unabhängiges Bildungsangebot und steht in keiner Verbindung zur OPC Foundation.

Kostenloser Download
OPC UA Machine Data → OEE Mapping Kit
Welche Knoten Sie abonnieren, wie daraus Verfügbarkeit, Leistung und Qualität werden und welche Companion Specification die Antwort schon liefert, damit Sie aufhören, Tags zu erfinden.
Kostenloses Mapping-Kit holen →
Kostenlos, kein Kurs, kein Login