Konfigurieren Sie den Ablauf der Datenveröffentlichung - AWS IoT SiteWise

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Konfigurieren Sie den Ablauf der Datenveröffentlichung

Der Datenveröffentlichungsablauf verwendet drei Knoten, um eine Pipeline zu erstellen, die Ihre Industriedaten an die Cloud sendet. Dieser Ablauf ist unerlässlich, um cloudbasierte Analysen, Langzeitspeicherung und Integration mit anderen AWS Diensten zu ermöglichen. Zunächst werden simulierte Gerätedaten an den SiteWise Edge MQTT-Broker gesendet. Das Gateway empfängt die Daten vom Broker und ermöglicht so die Übertragung in die AWS IoT SiteWise Cloud, wo Sie leistungsstarke Analyse- und Visualisierungsfunktionen nutzen können.

  • Dateneingabe — Empfängt Gerätedaten von Ihren Industrieanlagen oder Simulatoren

  • Datenübersetzer für AWS IoT SiteWise — Übersetzt Daten in AWS IoT SiteWise ein Format, um die Kompatibilität mit dem SiteWise Edge-Gateway sicherzustellen

  • MQTT-Publisher — Veröffentlicht Daten auf dem SiteWise Edge-MQTT-Broker und stellt sie sowohl lokalen als auch Cloud-Nutzern zur Verfügung

Ein Diagramm, das den Node-RED-Datenveröffentlichungsablauf zeigt. Es sendet simulierte Gerätedaten an den SiteWise Edge-MQTT-Broker zur Abholung durch das SiteWise Edge Gateway und dann in die Cloud. AWS IoT SiteWise

Konfigurieren Sie den Dateneingabeknoten

In diesem Beispiel verwendet der Dateneingabeknoten ein simuliertes Windturbinengerät, das Windgeschwindigkeitdaten generiert. Dieser Knoten dient als Einstiegspunkt für Ihre Industriedaten, unabhängig davon, ob sie aus simulierten Quellen (wie in unserem Beispiel) oder aus tatsächlichen Industrieanlagen in Produktionsumgebungen stammen.

Wir verwenden ein benutzerdefiniertes JSON-Format für die Datennutzdaten, um eine standardisierte Struktur bereitzustellen, die sowohl mit lokalen Verarbeitungstools als auch mit dem AWS IoT SiteWise Cloud-Dienst effizient funktioniert. Dieses Format enthält neben den tatsächlichen Messwerten auch wichtige Metadaten wie Zeitstempel und Qualitätsindikatoren und ermöglicht so ein umfassendes Datenmanagement und eine Qualitätsverfolgung in Ihrer gesamten Pipeline. Importieren Sie den Inject-Node, um simulierte Daten in diesem standardisierten JSON-Format mit Zeitstempeln, Qualitätsindikatoren und Werten zu erhalten.

Weitere Informationen zum Node-RED-Inject-Node finden Sie im Abschnitt Inject in der Dokumentation. Node-RED

Der Turbinensimulator generiert jede Sekunde Windgeschwindigkeitdaten in diesem standardisierten JSON-Format:

Beispiel : Nutzlast der Turbinendaten
{ name: string, // Property name/identifier timestamp: number, // Epoch time in nanoseconds quality: "GOOD" | "UNCERTAIN" | "BAD", value: number | string | boolean }

Dieses Format bietet mehrere Vorteile:

  • Das name Feld identifiziert die spezifische Eigenschaft oder Messung, sodass Sie mehrere Datenpunkte von demselben Gerät aus verfolgen können

  • Die Angabe timestamp in Nanosekunden gewährleistet eine präzise Zeiterfassung für eine genaue historische Analyse

  • Der quality Indikator hilft Ihnen, Daten auf der Grundlage ihrer Zuverlässigkeit zu filtern und zu verwalten

  • Das flexible value Feld unterstützt verschiedene Datentypen, um verschiedene Sensorausgänge zu ermöglichen

Beispiel : Inject-Knoten eines Turbinensimulators
[ { "id": "string", "type": "inject", "z": "string", "name": "Turbine Simulator", "props": [ { "p": "payload.timestamp", "v": "", "vt": "date" }, { "p": "payload.quality", "v": "GOOD", "vt": "str" }, { "p": "payload.value", "v": "$random()", "vt": "jsonata" }, { "p": "payload.name", "v": "/Renton/WindFarm/Turbine/WindSpeed", "vt": "str" } ], "repeat": "1", "crontab": "", "once": false, "onceDelay": "", "topic": "", "x": 270, "y": 200, "wires": [ [ "string" ] ] } ]

Konfigurieren Sie einen Knoten für die Datenübersetzung

Das SiteWise Edge-Gateway benötigt Daten in einem bestimmten Format, um die Kompatibilität mit der AWS IoT SiteWise Cloud sicherzustellen. Der Translator-Knoten ist eine wichtige Komponente, die Ihre Eingabedaten in das erforderliche AWS IoT SiteWise Payload-Format konvertiert. Dieser Übersetzungsschritt stellt sicher, dass Ihre Industriedaten ordnungsgemäß verarbeitet, gespeichert und später in der AWS IoT SiteWise Cloud-Umgebung analysiert werden können.

Durch die Standardisierung des Datenformats in dieser Phase ermöglichen Sie die Integration zwischen Ihren Edge-Geräten und dem Cloud-Dienst, sodass Sie Funktionen zur Anlagenmodellierung, Analyse und Visualisierung nutzen können. Verwenden Sie diese Struktur:

Beispiel : Payload-Struktur für das Analysieren von SiteWise Edge-Daten
{ "propertyAlias": "string", "propertyValues": [ { "value": { "booleanValue": boolean, "doubleValue": number, "integerValue": number, "stringValue": "string" }, "timestamp": { "timeInSeconds": number, "offsetInNanos": number }, "quality": "GOOD" | "UNCERTAIN" | "BAD", }] }
Anmerkung

Ordnen Sie propertyAlias die Ihrer MQTT-Themenhierarchie zu (zum Beispiel). /Renton/WindFarm/Turbine/WindSpeed Dadurch wird sichergestellt, dass Ihre Daten ordnungsgemäß mit der richtigen Asset-Eigenschaft in AWS IoT SiteWise verknüpft sind. Weitere Informationen zum Konzept „Datenstream-Alias“ finden Sie unterAWS IoT SiteWise Konzepte.

  1. Importieren Sie den Beispielfunktionsknoten für die AWS IoT SiteWise Payload-Übersetzung. Diese Funktion übernimmt die Konvertierung von Ihrem standardisierten Eingabeformat in ein AWS IoT SiteWise-kompatibles Format und gewährleistet so die korrekte Formatierung von Zeitstempeln, Qualitätsindikatoren und Werteingabe.

    [ { "id": "string", "type": "function", "z": "string", "name": "Translate to SiteWise payload", "func": "let input = msg.payload;\nlet output = {};\n\noutput[\"propertyAlias\"] = input.name;\n\nlet propertyVal = {}\n\nlet timeInSeconds = Math.floor(input.timestamp / 1000);\nlet offsetInNanos = (input.timestamp % 1000) * 1000000;\n\npropertyVal[\"timestamp\"] = {\n \"timeInSeconds\": timeInSeconds,\n \"offsetInNanos\": offsetInNanos,\n};\n\npropertyVal[\"quality\"] = input.quality\n\nlet typeNameConverter = {\n \"number\": (x) => Number.isInteger(x) ? \"integerValue\" : \"doubleValue\",\n \"boolean\": (x) => \"booleanValue\",\n \"string\": (x) => \"stringValue\", \n}\nlet typeName = typeNameConverter[typeof input.value](input.value)\npropertyVal[\"value\"] = {}\npropertyVal[\"value\"][typeName] = input.value;\n\noutput[\"propertyValues\"] = [propertyVal]\n\nreturn {\n payload: JSON.stringify(output)\n};", "outputs": 1, "timeout": "", "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 530, "y": 200, "wires": [ [ "string" ] ] } ]
  2. Stellen Sie sicher, dass der JavaScript Code die Windgeschwindigkeitsdaten korrekt übersetzt. Die Funktion erfüllt mehrere wichtige Aufgaben:

    • Extrahiert den Eigenschaftsnamen aus der Eingabe und legt ihn als propertyAlias fest

    • Konvertiert den Zeitstempel von Millisekunden in das erforderliche Sekunden- und Nanosekundenformat

    • Behält den Qualitätsindikator für die Überwachung der Datenzuverlässigkeit bei

    • Erkennt automatisch den Wertetyp und formatiert ihn entsprechend den Anforderungen AWS IoT SiteWise

  3. Connect den Knoten mit Ihrem Flow und verknüpfen Sie ihn zwischen dem Dateneingabeknoten und dem MQTT-Publisher.

Eine Anleitung zum Schreiben einer Funktion, die auf Ihre Geschäftsanforderungen zugeschnitten ist, finden Sie in der Node-RED Dokumentation unter Funktionen schreiben

Konfigurieren Sie den MQTT-Publisher

Nach der Übersetzung sind die Daten bereit für die Veröffentlichung auf dem SiteWise Edge MQTT-Broker.

Konfigurieren Sie den MQTT-Publisher mit diesen Einstellungen, um Daten an den SiteWise Edge MQTT-Broker zu senden:

Um den MQTT-Ausgangsknoten zu importieren
  1. Importieren Sie einen ausgehenden MQTT-Konfigurationsknoten mit. "type": "mqtt out" Mit ausgehenden MQTT-Knoten können Sie die Konfiguration eines Brokers gemeinsam nutzen.

  2. Geben Sie Schlüssel-Wert-Paare für Informationen ein, die für die MQTT-Broker-Verbindung und das Nachrichten-Routing relevant sind.

Importieren Sie den Beispielknoten. mqtt out

[ { "id": "string", "type": "mqtt out", "z": "string", "name": "Publish to MQTT broker", "topic": "/Renton/WindFarm/Turbine/WindSpeed", "qos": "1", "retain": "", "respTopic": "", "contentType": "", "userProps": "", "correl": "", "expiry": "", "broker": "string", "x": 830, "y": 200, "wires": [] }, { "id": "string", "type": "mqtt-broker", "name": "emqx", "broker": "127.0.0.1", "port": "1883", "clientid": "", "autoConnect": true, "usetls": false, "protocolVersion": "5", "keepalive": 15, "cleansession": true, "autoUnsubscribe": true, "birthTopic": "", "birthQos": "0", "birthPayload": "", "birthMsg": {}, "closeTopic": "", "closePayload": "", "closeMsg": {}, "willTopic": "", "willQos": "0", "willPayload": "", "willMsg": {}, "userProps": "", "sessionExpiry": "" } ]

Der Beispiel-MQTT-Ausgangsknoten erstellt die MQTT-Verbindung mit den folgenden Informationen:

  • Server: 127.0.0.1

  • Anschluss: 1883

  • Protokoll: MQTT V5

Anschließend konfiguriert der MQTT-Ausgangsknoten das Nachrichten-Routing mit den folgenden Informationen:

  • Topic: /Renton/WindFarm/Turbine/WindSpeed

  • QoS: 1

Stellen Sie die Knoten bereit und überprüfen Sie sie

Gehen Sie nach der Konfiguration der drei Knoten für den Datenveröffentlichungsfluss wie folgt vor, um den Flow bereitzustellen und zu überprüfen, ob die Daten korrekt übertragen werden AWS IoT SiteWise

So stellen Sie Verbindungen bereit und überprüfen sie
  1. Connect die drei Knoten, wie im Datenveröffentlichungsablauf gezeigt.

    Data publish flow diagram showing input from turbine simulator to AWS IoT SiteWise to MQTT broker.
  2. Wählen Sie Deploy, um alle Änderungen an der Knotenverbindung zu übernehmen.

  3. Navigieren Sie zur AWS IoT SiteWise Konsole und wählen Sie Datenstreams aus.

  4. Stellen Sie sicher, dass das Alias-Präfix im Drop-down-Menü ausgewählt ist. Suchen Sie dann nach dem /Renton/WindFarm/Turbine/WindSpeed Alias.

Wenn Sie bei Ihrer Suche den richtigen Alias sehen, haben Sie den Flow bereitgestellt und die Datenübertragung verifiziert.