Daten über eine REST-API in die smartPLAZA laden

DatenBerg Store stellt eine Schnittstelle mit temporärem Speicher bereit, der es erlaubt Daten von überall in Cloud- und On Premise-Instanzen von DatenBerg smartPLAZA zu übertragen. Die Übertragung erfolgt über die hier dokumentierte REST-API, sowie von DatenBerg bereitgestellte Tools.

Funktionsprinzip

Beim Import über die REST-API Schnitstelle werden drei Begriffe unterschieden:

  1. Store: Der kundenspezifische Datenspeicher
  2. Bucket: Das Pendant zu den einzelnen Tabellen in der smartPLAZA im DatenBerg Store (Pufferdatenquelle)
  3. Daten: Inhalte in den einzelnen Tabellen, wie beispielsweise Messmerkmale

Store

Ein Store stellt die nötigen Schnittstellen und Speicher für Ihre Daten bereit. Der Store agiert als Puffer zwischen der Datenaufnahme und den Import-Funktionalitäten in smartPLAZA, wo er als Datenquelle hinzugefügt werden kann. Zudem gibt es für jeden Store eine Richtlinie die besagt, wie lange aufgenommene Daten behalten werden.

Für jeden Store erhalten Sie einen Lese- und einen Schreibschlüssel. Diese erlauben jeweils ausschließlich das Auslesen der Daten zur Übertragung in smartPLAZA, beziehungsweise das Hinzufügen von neuen Daten.

Bucket

Um aufgenommene Daten logisch voneinander zu trennen, können diese beliebig vielen Buckets innerhalb eines Stores zugeordnet werden. Jeder Bucket erscheint später als eigene Datenquelle in smartPlaza.

Beispiel: An einer Produktionslinie werden Umweltdaten, Maschinenparameter und Qualitätsdaten in jeweils eigene Buckets innerhalb eines Stores aufgenommen.

Daten

Die Store API arbeitet mit einer Zeile von Name-Wert-Paaren als kleinste Dateneinheit. Dies können beispielsweise aufgenommene Sensordaten, aber auch Metadaten wie Text und Datumsangaben sein. Beim Einspielen der Daten wird von der API automatisch ein Zeitstempel hinzugefügt.

Verbindung mit smartPLAZA

Um Daten aus einem Store in smartPlaza zu übertragen, öffnen Sie das Data-Warehouse Modul und wählen Sie "Datenquelle hinzufügen". Wählen Sie nun als Quelle "DatenBerg Store", geben Sie Ihren Leseschlüssel ein und klicken Sie auf "Verbinden". Wenn die Verbindung erfolgt ist, können Sie im nächsten Schritt jeden Ihrer erstellten Buckets als Datenquelle für den weiteren Import verwenden. Zum Upload können die Daten über zwei Wege übertragen werden:

Upload als JSON-Datei

Die JSON-Schnittstelle nimmt eine Zeile an Daten als JSON-Dokument an. Zur Identifikation benötigen Sie Ihren Schreibschlüssel sowie eine Bucket-ID. Neue Buckets werden bei der ersten Verwendung automatisch erstellt. Tritt ein Fehler auf, wird dieser als Text zurückgegeben. Ansonsten bleibt die Antwort leer.

POST Befehl des JSON-Uploads

POST https://api.datenberg.eu/v1-put-json?key=writeKey&bucket=bucket'

Umsetzung des JSON-Uploads in curl

curl -X POST -d $'{"sensor": "a1", "measurement": 1.05}' 'https://api.datenberg.eu/v1-put-json?key=writeKey&bucket=bucket'

Umsetzung des JSON-Uploads in Python

from requests import post
from json import dumps
post(
 "https://api.datenberg.eu/v1-put-json?key=writeKey&bucket=bucket",
    dumps({
        "sensor": "a1",
        "measurement": 1.05
    })
)

Upload als CSV-Datei

Die CSV-Schnittstelle erwartet eine Zeile von Spaltenüberschriften und eine zugehörige Zeile an Daten in UTF-8-Kodierung. Zur Identifikation benötigen Sie Ihren Schreibschlüssel, sowie eine Bucket-ID. Neue Buckets werden bei der ersten Verwendung automatisch erstellt.

Tritt ein Fehler auf, wird dieser als Text zurückgegeben. Ansonsten bleibt die Antwort leer.

POST Befehl des CSV-Uploads

POST https://api.datenberg.eu/v1-put-csv?key=writeKey&bucket=bucket'

Umsetzung des CSV-Uploads in curl

curl -X POST -d $'sensor;measurement\na1;1.05' 'https://api.datenberg.eu/v1-put-csv?key=writeKey&bucket=bucket'

Umsetzung des JSON-Uploads in Python

from requests import post
post(
    "https://api.datenberg.eu/v1-put-csv?key=writeKey&bucket=bucket",
    "sensor;measurement\na1;1.05"
)

Beschränkungen

Es gibt keine absolute Beschränkung in der Anzahl Buckets pro Store, Zeilen pro Bucket und Messwerte pro Zeile. Die Echtzeitschnittstelle zwischen Store und smartPlaza arbeitet mit einer Auflösung von etwa fünf Sekunden. Wir empfehlen daher, Messwerte ebenfalls maximal in dieser Frequenz zu schreiben. Darüber kann unerwartetes Verhalten in nachgelagerten Schritten, wie Pipelines, auftreten.

In einer Zeile können maximal 100KB Daten gespeichert werden, gemessen an der Größe der repräsentativen CSV-Datei inklusive Überschriften.

Die API nimmt ausschließlich Daten mit TLS-Verschlüsselung an. Unverschlüsselte Abfragen werden abgewiesen.

Spaltenüberschriften und Daten werden kompatibel zum CSV-Format bereinigt. Das bedeutet, dass ";" sowie Zeilenenden in Text entfernt werden, auch wenn Sie die JSON-Schnittstelle verwenden.

Daten können in manchen Fällen länger als die angegebene Zeit im Speicher behalten werden. Es gibt keine Garantie über die Verfügbarkeit dieser Daten. Diese Verhalten kann sich jederzeit ändern.

Technische Anforderungen für eine On-Premise Installation der smartPlaza

Server für die smartPLAZA:

* Bei der Verwendung von Vorhersagepipelines empfehlen wir einen Arbeitsspeicher von mindestens 32 GB.

Server / Workstation für das Gateway

Zugang zur smartPLAZA:

Rechner mit Google Chrome in der aktuellen Version als Webbrowser, unter Microsoft Edge oder Mozilla Firefox können einzelne Funktionen Einschränkungen aufweisen.

OPC UA-Schnittstelle an S7-1500 einrichten

OPC UA - Erklärung

OPC UA ist ein offener, plattformunabhängiger Kommunikationsstandard und ein Industrieprotokoll, das in der Automatisierungstechnik und im IIoT (Industrial Internet of Things) weit verbreitet ist. Dieser Standard wurde entwickelt, um die Kommunikation zwischen verschiedenen industriellen Automatisierungssystemen zu erleichtern und Interoperabilität zu gewährleisten. Die Verbindung erfolgt zwischen einem OPC UA Server (oft eine Steuerung) und einem OPC UA Client (Software oder eine andere Steuerung). Um eine Verbindung von einem Client aus aufzubauen, werden eine IP-Adresse, der freigegebene Port (oft 4840) und ggf. Zugangsdaten benötigt. Im Folgenden wird gezeigt, wie der Server in einer Siemens S7-1500 eingerichtet werden kann.

Schritte zur Aktivierung des OPC UA-Servers auf einer S7-1500

Um den OPC UA Server zu konfigurieren, sind verschiedene Schritte notwendig. Die reine Konfiguration ist einfach, jedoch müssen vor- und nachgelagerte Schritte durchgeführt werden. Nur so ist aus unserer Sicht ein sicherer Betrieb möglich. Zusammenfassend sollten folgende Schritte durchgeführt werden:

  1. Physikalischer Anschluss der Steuerung an ein Maschinennetzwerk über Ethernet-Kabel
  2. Zuweisung der richtigen IP-Adresse an die Steuerung
  3. Konfiguration der OPC UA Server Schnittstelle auf der S7-1500
  4. Aktivierung des OPC UA Servers
  5. Installation des OPC UA Clients (DatenBerg Gateway)

1) Physikalische Verbindung der Steuerung in einem Maschinennetzwerk

Grundsätzlich muss eine Verbindung über Ethernet (aka LAN-Kabel) zwischen Steuerung (Server) und Workstation bzw. OPC UA Client bestehen. Die Verbindung kann über ein Maschinennetzwerk oder zu Testzwecken direkt zwischen Steuerung und Workstation erfolgen. Wichtig ist, dass die Kommunikation über TCP im Netzwerk für die entsprechende IP-Adresse und Port freigegeben ist. Typischerweise wird der Port 4840 verwendet.

2) Zuweisen der richtigen IP-Adressen auf die Steuerung

Damit die Kommunikation im Maschinenverbund reibungslos funktioniert, müssen den Maschinen eigene IP-Adressen zugewiesen werden. Standardmäßig ist der S7-1500 die IP-Adresse 192.168.0.1 zugewiesen. Die Adresse kann auf verschiedene Arten geändert werden, am einfachsten ist es, sie im TIA-Projekt anzupassen und in die Steuerung zu laden. Unter Gerätekonfigurationen wird die X1- bzw. X2-Adresse definiert. Anschließend werden die Änderungen in die CPU geladen. Dazu kann es notwendig sein, die Steuerung zurückzusetzen, da sich die Hardwarekonfiguration geändert hat.

Hinweis: Wenn die IP-Adresse der CPU geändert wird, muss diese auch im HMI und anderen angeschlossenen Geräten (z.B. Datenlogger) aktualisiert werden.

3) Aktivieren der OPC UA Server-Schnittstelle auf der S7-1500

Auf der S7-1500 wird der OPC UA Server unter Gerätekonfigurationen/OPC UA/Server durch einen Haken bei "OPC UA Server aktivieren" gesetzt. Unter Serveradressen erscheint die Zugriffsadresse. Standardmäßig ist bei der Aktivierung die Option "Standard Simatic Schnittstelle" aktiviert. Mit dieser Option werden alle Variablen auf der CPU sowohl im Lese- als auch im Schreibzugriff freigegeben. Zur gezielten Freigabe von Variablen ist es daher sinnvoll, eine individuell konfigurierte Server-Schnittstelle anzulegen. Dies zeigen wir im nächsten Schritt.

4) Erstellen einer eigenen OPC UA Server-Schnittstelle

Um eine eigene Server-Schnittstelle zu definieren, müssen einige Schritte durchgeführt werden. Wir gehen dabei von der TIA V16 aus (bei neueren TIA-Versionen kann es leichte Abweichungen geben). Bei den meisten S7 CPUs steht die Möglichkeit, eine eigene Schnittstelle zu konfigurieren, erst ab Firmware V2.6 zur Verfügung. Sollten Sie eine ältere Version installiert haben, empfehlen wir ein Update.

Schritt 1: Neue Server-Schnittstelle hinzufügen

Wählen Sie in der Projektansicht unter "OPC UA Kommunikation" die Option "Neue Server-Schnittstelle hinzufügen". Falls dies Option nicht extistiert, überprüfen Sie die Firmware-Version der CPU. Eventuell ist ein Update auf eine höhere Version notwendig.

Übersicht Menü für OPC UA-Kommunikation in Siemens TIA
OPC UA-Kommunikationsmenü in Siemens TIA Portal

Schritt 2: Schnittstellentyp auswählen

Nun öffnet sich ein Fenster. Hier vergeben Sie den Namen für die Schnittstelle (Empfehlung: Eindeutiger Anlagenname). Als Schnittstellen Optionen stehen zur Verfügung:

Wir konfigurieren im Folgenden eine eigene Server-Schnittstelle.

Auswahl der Server-Schnittstelle für OPC UA in Siemens TIA
Server-Schnittstelle in Siemens TIA auswählen

Schritt 3: Variablen konfigurieren

Nun werden die einzelnen Prozesswerte, Variablen oder Datenbausteine per Drag & Drop in die Schnittstelle gezogen. Im Beispielbild wurden die beiden Variablen "IDM_ctu_1" und "IDM_ctu_2" in die Schnittstelle gezogen.

Über die Schaltfläche "Schnittstelle exportieren" wird eine XML-Datei erzeugt, die die Schnittstelle semantisch beschreibt.

Konfigurierte OPC UA-Schnittstelle mit zwei Variablen
Konfigurierte OPC UA-Schnittstelle

Schritt 4: Zugriffstufen konfigurieren

Um die Anlage sicher in das Netz zu integrieren, stehen verschiedene Werkzeuge zur Verfügung. Ein Baustein ist die Zugriffsebene. Für jede Variable kann individuell festgelegt werden, ob ein reiner Lesezugriff (RD) oder ein Schreibzugriff (WR) möglich ist. Auch eine Kombination von Lese- und Schreibrechten (RD/WR) ist möglich. Nun können die gewünschten Variablen per Drag & Drop auf die Serveroberfläche gezogen werden. Als Vorschlag ist es sinnvoll, nur Lesezugriff zu gewähren. So kann ein unberechtigter Schreibzugriff sicher ausgeschlossen werden.

Tipp: In diesem Zug direkt auch den "Browse Name" und "Display Name" anpassen, um die Zuordnung im OPC UA Client zu vereinfachen.

Zugriffstufen pro Variable konfigurieren

Schritt 5: Sicherheitskonfiguration des OPC UA-Server

Nun wird der OPC UA Server auf der CPU aktiviert. Wählen Sie dazu die "Gerätekonfiguration" der CPU und anschließend unter dem Reiter "Allgemein" den Reiter "OPC UA". Unter dem Reiter "Server / Allgemein" können Sie den Server mit einem Klick auf "OPC UA Server aktivieren" erreichbar machen. Im Reiter "Security" empfehlen wir nach erfolgreichem Test die Option "Enable Guest Authentication" zu deaktivieren. Als Sicherheitsmaßnahme empfehlen wir mindestens die Authentifizierung mit Benutzername und Passwort, besser noch die Authentifizierung mit Zertifikaten.

Unter dem Reiter "Runtime Licenses" muss nun die gewünschte Lizenz für den OPC UA Server ausgewählt werden. Wird der falsche Lizenztyp ausgewählt (z.B. small statt large), wird im nächsten Schritt ein Fehler bei der Übersetzung der Software geworfen.

Schritt 6: Übersetzen und auf das Gerät laden

Um den OPC UA Server auf die CPU zu spielen, muss das Projekt übersetzt und auf das Gerät geladen werden. Wurde nur die Server-Schnittstelle konfiguriert, müssen nur die Software-Änderungen übersetzt und geladen werden. Wird der OPC UA Server zum ersten Mal aktiviert, muss auch die geänderte Hardwarekonfiguration auf die CPU geladen werden.

5) Anbindung des OPC UA Server an DatenBerg Gateway

Der OPC UA Server ist nun im Netzwerk verfügbar. Starten Sie nun Ihr DatenBerg Gateway und konfigurieren Sie eine neue OPC UA Datenquelle. Dazu benötigen Sie den Verbindungsstring (bestehend aus IP-Adresse der CPU und dem Port) z.B. opc.tcp://192.168.0.1:4840) sowie Benutzername und Passwort. Anschließend können die einzelnen Knoten im grafischen Editor ausgewählt und gespeichert werden. Nach einem Neustart des Gateways wird die Konfiguration geladen und die Datenpunkte werden abgerufen. Die Datenpunkte können dann im Data Warehouse der smartPLAZA abgerufen und dauerhaft gespeichert werden.

Fazit - OPC UA Server auf S7-1500 einrichten

Um einen OPC UA Server auf einer S7-1500 zu konfigurieren, sind mehrere Schritte notwendig. Die IP-Adressen der Steuerung und der Peripherie müssen geändert werden, eine Server-Schnittstelle muss konfiguriert werden und anschließend müssen die Sicherheitsmaßnahmen und die Aktivierung des OPC UA Servers auf der Anlage durchgeführt werden. Danach können die Daten über ein Software-Gateway wie z.B. von DatenBerg abgerufen und visualisiert werden.