Configura il flusso di pubblicazione dei dati - AWS IoT SiteWise

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configura il flusso di pubblicazione dei dati

Il flusso di pubblicazione dei dati utilizza tre nodi per creare una pipeline che invia i dati industriali al cloud. Questo flusso è essenziale per consentire l'analisi basata sul cloud, l'archiviazione a lungo termine e l'integrazione con altri servizi. AWS Innanzitutto, i dati simulati del dispositivo vengono inviati al broker SiteWise Edge MQTT. Il gateway raccoglie i dati dal broker e li trasmette al AWS IoT SiteWise cloud, dove è possibile sfruttare potenti funzionalità di analisi e visualizzazione.

  • Inserimento dati: riceve i dati del dispositivo dalle apparecchiature industriali o dai simulatori

  • Traduttore di dati per AWS IoT SiteWise: traduce i dati in AWS IoT SiteWise formato per garantire la compatibilità con il gateway Edge SiteWise

  • Editore MQTT: pubblica i dati sul broker SiteWise Edge MQTT, rendendoli disponibili sia agli utenti locali che a quelli cloud

Un diagramma che mostra il flusso di pubblicazione dei dati Node-RED. Invia i dati simulati del dispositivo al broker SiteWise Edge MQTT per il ritiro tramite SiteWise Edge Gateway e quindi sul cloud. AWS IoT SiteWise

Configura il nodo di immissione dei dati

In questo esempio, il nodo di immissione dei dati utilizza un dispositivo simulato di turbina eolica che genera dati sulla velocità del vento. Questo nodo funge da punto di ingresso per i dati industriali, indipendentemente dal fatto che provengano da fonti simulate (come nel nostro esempio) o da apparecchiature industriali reali negli ambienti di produzione.

Utilizziamo un formato JSON personalizzato per il payload di dati per fornire una struttura standardizzata che funzioni in modo efficiente sia con gli strumenti di elaborazione locali che con il servizio cloud. AWS IoT SiteWise Questo formato include metadati essenziali come timestamp e indicatori di qualità oltre ai valori di misurazione effettivi, consentendo una gestione completa dei dati e il monitoraggio della qualità in tutta la pipeline. Importa il nodo di iniezione per ricevere dati simulati in questo formato JSON standardizzato con timestamp, indicatori di qualità e valori.

Per ulteriori informazioni sul nodo di iniezione Node-RED, consulta la sezione Inject nella Documentazione. Node-RED

Il simulatore di turbine genera dati sulla velocità del vento ogni secondo in questo formato JSON standardizzato:

Esempio : Payload di dati sulla turbina
{ name: string, // Property name/identifier timestamp: number, // Epoch time in nanoseconds quality: "GOOD" | "UNCERTAIN" | "BAD", value: number | string | boolean }

Questo formato offre diversi vantaggi:

  • Il name campo identifica la proprietà o la misurazione specifica e consente di tracciare più punti dati dallo stesso dispositivo

  • La misurazione timestamp in nanosecondi garantisce un tracciamento preciso del tempo per un'analisi storica accurata

  • L'qualityindicatore consente di filtrare e gestire i dati in base alla loro affidabilità

  • Il value campo flessibile supporta diversi tipi di dati per adattarsi a diverse uscite di sensori

Esempio : Nodo di iniezione di un simulatore di turbina
[ { "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" ] ] } ]

Configura un nodo per la traduzione dei dati

Il gateway SiteWise Edge richiede dati in un formato specifico per garantire la compatibilità con il AWS IoT SiteWise cloud. Il nodo Translator è un componente importante che converte i dati di input nel formato di AWS IoT SiteWise payload richiesto. Questa fase di traduzione garantisce che i dati industriali possano essere elaborati, archiviati e successivamente analizzati correttamente nell' AWS IoT SiteWise ambiente cloud.

Standardizzando il formato dei dati in questa fase, si abilita l'integrazione tra i dispositivi edge e il servizio cloud, dove è possibile utilizzare funzionalità di modellazione, analisi e visualizzazione degli asset. Usa questa struttura:

Esempio : Struttura del payload per l'analisi dei dati SiteWise Edge
{ "propertyAlias": "string", "propertyValues": [ { "value": { "booleanValue": boolean, "doubleValue": number, "integerValue": number, "stringValue": "string" }, "timestamp": { "timeInSeconds": number, "offsetInNanos": number }, "quality": "GOOD" | "UNCERTAIN" | "BAD", }] }
Nota

Abbinala propertyAlias alla tua gerarchia di argomenti MQTT (ad esempio,). /Renton/WindFarm/Turbine/WindSpeed Ciò garantisce che i dati siano associati correttamente alla proprietà corretta dell'asset in. AWS IoT SiteWise Per ulteriori informazioni, consulta il concetto «Alias del flusso di dati» inAWS IoT SiteWise concetti.

  1. Importa il nodo funzionale di esempio per la traduzione del AWS IoT SiteWise payload. Questa funzione gestisce la conversione dal formato di input standardizzato al formato AWS IoT SiteWise compatibile, garantendo la corretta formattazione del timestamp, gli indicatori di qualità e la digitazione dei valori.

    [ { "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. Verificate che il JavaScript codice traduca correttamente i dati sulla velocità del vento. La funzione svolge diverse attività importanti:

    • Estrae il nome della proprietà dall'input e lo imposta come PropertyAlias

    • Converte il timestamp da millisecondi al formato richiesto di secondi e nanosecondi

    • Conserva l'indicatore di qualità per il monitoraggio dell'affidabilità dei dati

    • Rileva automaticamente il tipo di valore e lo formatta in base ai requisiti AWS IoT SiteWise

  3. Connetti il nodo al flusso, collegandolo tra il nodo di input dei dati e l'editore MQTT.

Per indicazioni sulla scrittura di una funzione specifica per le vostre esigenze aziendali, consultate Writing Functions nella documentazione Node-RED

Configurare l'editore MQTT

Dopo la traduzione, i dati sono pronti per la pubblicazione sul broker SiteWise Edge MQTT.

Configura l'editore MQTT con queste impostazioni per inviare dati al broker SiteWise Edge MQTT:

Per importare il nodo di uscita MQTT
  1. Importa un nodo di configurazione in uscita MQTT utilizzando. "type": "mqtt out" I nodi di uscita MQTT consentono di condividere la configurazione di un broker.

  2. Inserite le coppie chiave-valore per le informazioni relative alla connessione del broker MQTT e al routing dei messaggi.

Importa il nodo di esempio. 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": "" } ]

Il nodo di uscita MQTT di esempio crea la connessione MQTT con le seguenti informazioni:

  • Server: 127.0.0.1

  • Porta: 1883

  • Protocollo: MQTT V5

Quindi, il nodo di uscita MQTT configura il routing dei messaggi con le seguenti informazioni:

  • Argomento: /Renton/WindFarm/Turbine/WindSpeed

  • QoS: 1

Implementa e verifica i nodi

Dopo aver configurato i tre nodi del flusso di pubblicazione dei dati, segui questi passaggi per distribuire il flusso e verificare che i dati vengano trasmessi correttamente a AWS IoT SiteWise

Per distribuire e verificare le connessioni
  1. Connect i tre nodi come mostrato nel flusso di pubblicazione dei dati.

    Data publish flow diagram showing input from turbine simulator to AWS IoT SiteWise to MQTT broker.
  2. Scegli Deploy per applicare tutte le modifiche alla connessione dei nodi.

  3. Vai alla AWS IoT SiteWise console e scegli Flussi di dati.

  4. Assicurati che il prefisso Alias sia selezionato nel menu a discesa. Quindi, cerca l'alias. /Renton/WindFarm/Turbine/WindSpeed

Se vedi l'alias corretto nella tua ricerca, significa che hai distribuito il flusso e verificato la trasmissione dei dati.