Das Gateway fungiert als Bindeglied zwischen einer Datenquelle (z.B. einer Steuerung) und der smartPLAZA. Das Gateway kommuniziert mit der Datenquelle, ruft die eingestellten Daten selbständig ab, transformiert diese und sendet die Daten an die smartPLAZA. Das Gateway kann auf dem gleichen Server wie die smartPLAZA installiert sein oder auf einem anderen Server laufen. Falls keine Verbindung zur smartPLAZA aufgebaut werden kann, puffert das Gateway die Daten lokal, bis sie weitergeleitet werden können.
Das Gateway kann in Windows-, Linux- und Docker-Umgebungen betrieben werden.
Die Konfiguration für alle Datenquellen ist in der Datei config.json hinterlegt. Die Datenquellen sind als JSON-Objekte mit den folgenden Parametern gelistet:
Die folgende Beispielkonfiguration schreibt in eine Tabelle "Anlage2". Der Schreibschlüssel ist bekannt und die Daten werden von einer OPC UA Quelle geholt. Die Daten werden an den DatenBerg Cloud Service gesendet. Die Parameter der OPC UA Quelle sind im Abschnitt "OPC UA" näher definiert.
"bucket": "Anlage2",
"writeKey": "1111111",
"source": "opcua",
"params": {}
Folgende Parameter müssen für eine CSV- bzw. Excel-Datei definiert werden:
Mögliche Werte für "monitoring":
Eine OPC UA Datenquelle wird über einen OPC Verbindungsstring angesprochen. Das Gateway funktioniert dabei als Client, um Daten von einem OPC UA Server abzurufen. In der Antwort werden dann die einzelnen angefragten Datenpunkte übertragen.
Die allgemeinen Parameter sind wie folgt zu definieren:
Optional können die folgenden Parameter mit übergeben werden:
Für das Monitoring können folgende Parameter definiert werden:
Optionen für "ignore":
Im folgenden Beispiel werden Daten von einer Siemens S7-Steuerung mit der IP-Adresse 10.255.112.113 übertragen. Die Abfrage erfolgt alle 5 Sekunden über den Port 4840. Dabei werden zwei OPC UA Variablen (z.B. ns=4, i=4) übertragen. Die Variablennamen werden direkt über ein Label übergeben. Auch wenn kein Benutzer für die Authentifizierung benötigt wird, muss ein leerer Benutzer mit leerem Passwort übergeben werden.
{"bucket": "Anlage2",
"writeKey": "123456",
"source": "opcua","params": {
"monitoring": "timer",
"interval": 5,
"servers": [
{
"connection": "opc.tcp://10.255.112.113:4840",
"data": [
"ns=4;i=4",
"ns=4;i=6"
],
"labels": [
"Temperatur 1",
"Druck"
],
"user": "",
"password": ""
}
]
}
},
Der Datenaustausch mit MQTT erfolgt über einen zentralen MQTT Broker, an den ein Gerät Daten sendet und der diese an Empfänger weiterleitet. Das Gateway " subscribed " sich auf ein zu definierendes Topic und leitet alle empfangenen Daten an die smartPLAZA weiter. In diesem Blogbeitrag gehen wir näher auf die Funktionsweise von MQTT ein.
Für den Empfang von Daten via MQTT müssen folgende Parameter definiert werden:
Optional können diese Parameter definiert werden:
Im folgenden Beispiel wird eine Verbindung zu einem MQTT Broker mit der IP-Adresse 10.123.45.20 auf Port 1883 hergestellt. Es werden alle Daten empfangen die auf dem auf Untertopics des Topic "Data" kommuniziert werden. Die Daten werden bereits als JSON versendet und können direkt weitergeleitet werden.
[
{
"bucket": "mqtt_daten",
"writeKey": "123456789",
"source": "mqtt",
"params": {
"host": "10.123.45.20",
"port": 1883,
"topic": "Data/#",
"type": "json"
}
}
]
Für den Abruf von Daten via HTTP müssen folgende Parameter definiert werden:
Optional können diese Parameter definiert werden:
Mögliche Werte für "monitoring:
Bei der Modbus-Kommunikation fordert ein Modbus-Client Daten von einem Modbus-Master an. In der Antwort überträgt der Master die aktuellen Prozesswerte. Das Gateway fungiert als Client, der die Verbindung zu einem Master herstellt. In diesem Blogbeitrag finden Sie ausführliche Informationen zum Modbus-Protokoll.
Die Konfiguration legt fest, welche Daten von welchen Adressen des Modbus-Masters abgefragt und in eine Tabelle geschrieben werden sollen. Für den Datenempfang über Modbus müssen folgende Konfigurationsparameter definiert werden:
Im folgenden Beispiel werden von einem Kompressor mit der IP-Adresse 10.123.9.11 verschiedene Parameter über Modbus abgefragt. Aus der Modbusbeschreibung geht hervor, dass unter der Adresse 54 die Gesamtstunden, unter der Adresse 57 der Netzsolldruck und unter der Adresse 32 Fehlermeldungen abgerufen werden können. Die Fehlermeldungen sind codiert und können in menschenlesbaren Text übersetzt werden. Im Beispiel werden diese Anforderungen in eine Beispielkonfiguration übersetzt.
{
"bucket": "Modbus",
"server": "http://localhost",
"writeKey": "12345678",
"source": "modbus",
"params": {
"server": "10.123.9.11",
"interval": 5,
"variables": [
{
"id": "Gesamtstunden",
"type": "decimal",
"address": 53
},
{
"id": "Netzsolldruck",
"type": "sint16",
"address": 57
},
{
"id": "Betriebsmeldungen",
"address": [
32
],
"type": "map",
"map": {
"32": {
"0": "Externe Meldung 1",
"1": "Externe Meldung 2"
}
}
},