Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Configure el flujo de publicación de datos
El flujo de publicación de datos utiliza tres nodos para crear una canalización que envía los datos industriales a la nube. Este flujo es esencial para permitir el análisis basado en la nube, el almacenamiento a largo plazo y la integración con otros AWS servicios. En primer lugar, los datos simulados del dispositivo se envían al intermediario MQTT de SiteWise Edge. La puerta de enlace recoge los datos del intermediario, lo que permite su transmisión a la AWS IoT SiteWise nube, donde puede aprovechar las potentes funciones de análisis y visualización.
-
Entrada de datos: recibe datos de dispositivos de sus equipos industriales o simuladores
-
Traductor de datos para AWS IoT SiteWise: traduce los datos a un AWS IoT SiteWise formato para garantizar la compatibilidad con la puerta de enlace SiteWise Edge
-
Publicador de MQTT: publica los datos en el broker MQTT de SiteWise Edge, lo que los pone a disposición de los consumidores locales y de la nube

Configure el nodo de entrada de datos
En este ejemplo, el nodo de entrada de datos usa un dispositivo de turbina eólica simulado que genera datos de velocidad del viento. Este nodo sirve como punto de entrada para sus datos industriales, ya provengan de fuentes simuladas (como en nuestro ejemplo) o de equipos industriales reales en entornos de producción.
Usamos un formato JSON personalizado para la carga útil de datos a fin de proporcionar una estructura estandarizada que funcione de manera eficiente tanto con las herramientas de procesamiento locales como con el servicio AWS IoT SiteWise en la nube. Este formato incluye metadatos esenciales, como marcas de tiempo e indicadores de calidad, junto con los valores de medición reales, lo que permite una gestión integral de los datos y un seguimiento de la calidad durante todo el proceso. Importe el nodo de inyección para recibir datos simulados en este formato JSON estandarizado con marcas de tiempo, indicadores de calidad y valores.
El simulador de turbina genera datos de velocidad del viento cada segundo en este formato JSON estandarizado:
ejemplo : Carga útil de datos de la turbina
{ name: string, // Property name/identifier timestamp: number, // Epoch time in nanoseconds quality: "GOOD" | "UNCERTAIN" | "BAD", value: number | string | boolean }
Este formato ofrece varias ventajas:
-
El
name
campo identifica la propiedad o medida específica, lo que le permite rastrear varios puntos de datos desde el mismo dispositivo -
El valor
timestamp
en nanosegundos garantiza un seguimiento preciso del tiempo para un análisis histórico preciso -
El
quality
indicador le ayuda a filtrar y gestionar los datos en función de su fiabilidad -
El
value
campo flexible admite diferentes tipos de datos para adaptarse a las distintas salidas de los sensores
ejemplo : nodo de inyección de un simulador de 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" ] ] } ]
Configure un nodo para la traducción de datos
La puerta de enlace SiteWise Edge requiere datos en un formato específico para garantizar la compatibilidad con AWS IoT SiteWise la nube. El nodo traductor es un componente importante que convierte los datos de entrada al formato de AWS IoT SiteWise carga útil requerido. Este paso de traducción garantiza que sus datos industriales se puedan procesar, almacenar y analizar posteriormente de forma adecuada en el entorno de AWS IoT SiteWise nube.
Al estandarizar el formato de los datos en esta etapa, posibilita la integración entre sus dispositivos periféricos y el servicio en la nube, donde puede utilizar las capacidades de modelado, análisis y visualización de activos. Utilice esta estructura:
ejemplo : Estructura de carga útil para el análisis de datos de SiteWise Edge
{ "propertyAlias": "string", "propertyValues": [ { "value": { "booleanValue": boolean, "doubleValue": number, "integerValue": number, "stringValue": "string" }, "timestamp": { "timeInSeconds": number, "offsetInNanos": number }, "quality": "GOOD" | "UNCERTAIN" | "BAD", }] }
nota
Haga coincidir el propertyAlias
tema con su jerarquía de temas de MQTT (por ejemplo,). /Renton/WindFarm/Turbine/WindSpeed
Esto garantiza que sus datos estén asociados correctamente a la propiedad de activo correcta en AWS IoT SiteWise. Para obtener más información, consulte el concepto de «alias de flujo de datos» enAWS IoT SiteWise conceptos.
-
Importe el nodo de función de ejemplo para la traducción de la AWS IoT SiteWise carga útil. Esta función gestiona la conversión del formato de entrada estandarizado al formato AWS IoT SiteWise compatible, lo que garantiza que el formato de la marca de tiempo, los indicadores de calidad y la escritura de valores sean correctos.
[ { "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" ] ] } ]
-
Compruebe que el JavaScript código traduce los datos de velocidad del viento correctamente. La función realiza varias tareas importantes:
-
Extrae el nombre de la propiedad de la entrada y lo establece como PropertyAlias
-
Convierte la marca de tiempo de milisegundos al formato de segundos y nanosegundos requerido
-
Conserva el indicador de calidad para el seguimiento de la fiabilidad de los datos
-
Detecta automáticamente el tipo de valor y lo formatea según AWS IoT SiteWise los requisitos
-
-
Conecte el nodo a su flujo, vinculándolo entre el nodo de entrada de datos y el editor MQTT.
Para obtener orientación sobre cómo escribir una función específica para las necesidades de su empresa, consulte Cómo escribir funciones
Configure el editor MQTT
Tras la traducción, los datos están listos para su publicación en el broker MQTT de SiteWise Edge.
Configure el editor MQTT con estos ajustes para enviar datos al agente MQTT de SiteWise Edge:
Para importar el nodo de salida MQTT
-
Importe un nodo de configuración de salida MQTT mediante.
"type": "mqtt out"
Los nodos de salida MQTT le permiten compartir la configuración de un bróker. -
Introduzca los pares clave-valor para obtener información relevante sobre la conexión del bróker MQTT y el enrutamiento de mensajes.
Importe el nodo de ejemplo. 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": "" } ]
El nodo de salida MQTT de ejemplo crea la conexión MQTT con la siguiente información:
-
Servidor:
127.0.0.1
-
Puerto:
1883
-
Protocolo:
MQTT V5
A continuación, el nodo de salida MQTT configura el enrutamiento de mensajes con la siguiente información:
-
Tema:
/Renton/WindFarm/Turbine/WindSpeed
-
QoS:
1
Implemente y verifique los nodos
Tras configurar los tres nodos del flujo de publicación de datos, siga estos pasos para implementar el flujo y comprobar que los datos se transmiten correctamente a AWS IoT SiteWise
Para implementar y verificar las conexiones
-
Conecte los tres nodos como se muestra en el flujo de publicación de datos.
-
Elija Implementar para aplicar todos los cambios en la conexión de los nodos.
-
Navegue hasta la AWS IoT SiteWise consola
y elija Flujos de datos. -
Asegúrese de seleccionar el prefijo Alias en el menú desplegable. A continuación, busca el
/Renton/WindFarm/Turbine/WindSpeed
alias.
Si ve el alias correcto en la búsqueda, significa que ha desplegado el flujo y verificado la transmisión de datos.