Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
German

Maschinen per MQTT mit Assets verbinden

Wenn eine Maschine mit einem Asset verbunden werden soll stehen nun 2 Wege zur Verfügung.

  1. die indirekte Anbindung über x4remote, welche in diesem Artikel beschrieben wird x4remote Connections .

  2. die Anbindung direkt per MQTT an die Plattform

Die Anbindung per MQTT am Beispiel des Lenze x500 ist Thema dieses Artikels.

Allgemein

Ein MQTT-Telegramm besteht aus ein Topic und eine Nutzlast (Payload). Außerdem benötigt ein Router auch Verbindungsdaten, wie URL, Zugangsdaten um seine Telegramme an einen Broker senden zu können. All diese Infromationen URL, Zugangsdaten, Server-Zertifikat und Topic werden von der Asset Performance Plattform vorgegeben und sind im Router einzustellen.

MQTT selbst definiert nicht wie die Payload gestalltet sein muss, damit die Systeme sich verstehen. Der Lenze x500 überträgt seine Daten in der MQTT-Payload Sparkplug-B konform. Die Asset Performance Plattform kann die Nutzlast im Sparkplug B Format einlesen. Ausnahme ist die Formatierung im JSON. Die Verwendung des Google Protocol Buffer Schema wie in der Spezifikation beschrieben ist in Vorbereitung.

Die Spezifikation zu Sparkplug B ist hier zu finden https://sparkplug.eclipse.org/specification/

Eine Payload nach Sparkplug B format stellt sich wie folgt dar:

Code Block
languagejson
{
  "timestamp": <send timestamp>,
  "metrics": [{
    "name": <metric_name>,
    "alias": <alias>,
    "timestamp": <collect timestamp>,
    "dataType": <datatype>,
    "value": <value>
  }],
  "seq": <sequence_number>
}

Die Keys von oben nach unten sind folgendermaßen zu verstehen:

Key

Bedeutung

<send timestamp>

zwingend

Zeitstempel wann das Telegramm versendet wurde

metrics

zwingend

Array von Datenpunktobjekten. Es können 1..n Datenpunktojekte hier eingefügt werden.

<metric_name>

zwingend

Name des Datenpunkts

<alias>

optional

Ersatznummer für den Datenpunkt.

<collect timestamp>

zwingend

Zeitstempel wann die Daten gelesen / bereitgestellt wurden

<datatype>

zwingend

Datentyp des Datums. Sie dazu die Liste am Ende. https://ll-public.atlassian.net/wiki/spaces/X4/pages/edit-v2/415203329#Data-type-list

<value>

optional

Wert des Datenpunkts, sofern ein Wert publiziert werden soll.

<sequence_number>

zwingend

Sequenznummer. Fortlaufend steigend.

Payload Beispiel:

Code Block
languagejson
{
	"metrics": [
		{
			"alias": 2,
			"datatype": 9,
			"name": "scCloud_rOEErt",
			"timestamp": 1721829360000,
			"value": 75.28211975097656
		},
		{
			"alias": 11,
			"datatype": 10,
			"name": "scCloud_lrQuantityOK",
			"timestamp": 1721829360000,
			"value": 3589.0
		}
	],
	"seq": 215,
	"timestamp": 1721829360042
}

Einstellungen in der Asset Performance Plattform

Einstellungen im x500 bzw. x4remote

Datentypenliste

English

Comming soon.

Data type list

Expand
titleDatatypes - Datentypen
Code Block
Unknown   = 0;
Int8      = 1;
Int16     = 2;
Int32     = 3;
Int64     = 4;
UInt8     = 5;
UInt16    = 6;
UInt32    = 7;
UInt64    = 8;
Float     = 9;
Double    = 10;
Boolean   = 11;
String    = 12;
DateTime  = 13;
Text      = 14;
UUID      = 15;
DataSet   = 16;
Bytes     = 17;
File      = 18;
Template        = 19;
PropertySet     = 20;
PropertySetList = 21;
Int8Array       = 22;
Int16Array      = 23;
Int32Array      = 24;
Int64Array      = 25;
UInt8Array      = 26;
UInt16Array     = 27;
UInt32Array     = 28;
UInt64Array     = 29;
FloatArray      = 30;
DoubleArray     = 31;
BooleanArray    = 32;
StringArray     = 33;
DateTimeArray   = 34