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

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

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

  1. Physische Verbindung der Steuerung in ein Maschinennetzwerk via Ethernet Kabel
  2. Zuweisen der richtigen IP-Adressen auf die Steuerung
  3. Konfiguration der OPC UA Server Schnittstelle auf der S7-1500
  4. Aktivieren des OPC UA Server mit Passwortsicherung
  5. Aufsetzen des OPC UA Clients (DatenBerg Gateway)

1) Physische Verbindung der Steuerung in ein Maschinennetzwerk

Prinzipiell muss eine Verbindung via Ethernet (aka LAN-Kabel) zwischen Steuerung und dem Server / Workstation für den OPC UA Client bestehen. Die Verbindung kann über ein Maschinennetzwerk erfolgen oder direkt für Testzwecke zwischen Steuerung und Workstation bestehen. Wichtig ist zu beachten, dass die Kommunikation über OPC im Netzwerk freigegeben ist. Als Port wird typischerweise 4840 verwendet.

2) Zuweisen der richtigen IP-Adressen auf die Steuerung

Damit die Kommunikation im Maschinennetzwerk reibungslos funktioniert, sollten eigene IP-Adressen für die Anlagen vergeben werden. Als Default ist bei der S7-1500 die IP-Adresse 192.168.0.1 vergeben. Die Adresse lässt sich auf verschiedene Arten ändern, am Einfachsten ist es diese im TIA-Projekt anzupassen und auf die Steuerung herunterzuladen.

Hinweis: Wenn die IP-Adresse der Steuerung geändert wird, muss diese auch wahrscheinlich im HMI und eventuell angeschlossene weitere Geräte (z.B. Daten-Logger) nachgezogen werden.

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

Wird der OPC UA Server auf der S7-1500 aktiviert, werden standardmäßig alle Variablen und Datenblöcke via OPC UA freigegeben. Dies kann zwar individuell per Datenpunkt ausgeschaltet werden, nur betrifft dies dann sowohl die Sichtbarkeit via OPC UA als auch via HMI. Daher empfehlen wir die Konfiguration einer eigenen OPC UA-Server Schnittstelle im TIA-Projekt. Damit kann spezifisch definiert werden, welche Variablen und Datenpunkte freigegeben werden sollen.

Dazu geht man wie folgt vor – hier im TIA V16.

  1. Neue Server-Schnittstelle hinzufügen im TIA Projekt unter der Steuerung auswählen. Falls Sie dies nicht sehen, müssen Sie die Firmware Version der CPU noch aktualisieren.
  2. Nun öffnet sich ein Fenster. Hier den Namen für die Schnittstelle (Empfehlung eindeutiger Anlagenname) vergeben und den Typ “Schnittstelle” (in Lila) auswählen. Companion Spezifikation sind vordefinierte OPC UA Schnittstellen.
  3. Nun Können Sie die gewünschten Variablen in die Server-Schnittstelle per Drag & Drop ziehen.

4) Aktivieren des OPC UA Server mit Passwortsicherung

Nun muss der OPC UA Server auf der CPU aktiviert werden. Dazu wählen Sie die “Gerätekonfiguration” der CPU und anschließend den Reiter “OPCUA” unter dem Tab “Allgemein”. Unter dem Reiter “Server / Allgemein” können Sie den Server mit Klick auf “OPC UA-Server aktivieren” erreichbar schalten. Im Reiter “Security” empfehlen wir nach erfolgreichem Test die Option “Gast-Authentifizierung aktivieren” zu deaktivieren. Als Sicherheitsmaßnahmen empfehlen wir mindestens die Authentifizierung über Benutzername und Passwort, noch besser ist die Authentifizierung mit Zertifikaten.

Nach Konfiguration von Schritt 3) und 4) im TIA-Portal übersetzen Sie das Projekt und laden es auf die Steuerung.

Hinweis: Hier kann es notwendig sein, dass eine OPC UA Lizenz für die Steuerung vergeben werden muss.

5) Anbindung des OPC UA Server an DatenBerg Gateway

Der OPC UA Server steht nun im Netzwerk bereit. Starten Sie nun Ihr DatenBerg Gateway und konfigurieren Sie eine neue OPC UA Datenquelle. Dazu benötigen Sie den Verbindungsstring (z.B. opc.tcp://192.168.0.1:4840) und Nutzername sowie Passwort. Danach können Sie im graphischen Editor die einzelnen Knotenpunkte auswählen und abspeichern. Mit Neustart des Gateways wird die Konfiguration geladen und die Datenpunkte abgerufen. Die Datenpunkte können dann im Data Warehouse der smartPLAZA abgerufen und sicher abgespeichert werden.

Fazit – OPC UA Server auf S7-1500 einrichten

Um einen OPC UA Server auf einer S7-1500 einzurichten bedarf es mehreren Schritten, um ein gesamtheitliches Bild zu erreichen. Es müssen die IP-Adressen der Steuerung und Peripherie geändert, eine Server-Schnittstelle konfiguriert und anschließend Sicherheitsmaßnahmen sowie die Aktivierung des OPC UA Servers auf der Anlage durchgeführt werden. Anschließend können die Daten von einem Software Gateway, wie von DatenBerg, abgerufen und visualisiert werden.