Maschinen per MQTT mit Assets verbindenWenn eine Maschine mit einem Asset verbunden werden soll stehen nun 2 Wege zur Verfügung. die indirekte Anbindung über x4remote, welche in diesem Artikel beschrieben wird x4remote Connections . die Anbindung direkt per MQTT an die Plattform
Die Anbindung per MQTT am Beispiel des Lenze x500 ist Thema dieses Artikels. AllgemeinEin 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 |
---|
| {
"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 |
---|
| {
"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 im x500 bzw. x4remoteDatentypenliste |