Descargas
¿Para qué sirve?
Demo MQTT es un ejemplo que consta de dos proyectos: Field Application y Data Aggregator Application. El objetivo de esta demostración es simplemente mostrar un ejemplo de comunicación mediante el protocolo MQTT entre una aplicación hipotética que se ejecuta en una máquina/planta (Field Application) y una aplicación que recopila los datos enviados por la máquina, mostrándolos en forma de tablero (Data Aggregator Application). Normalmente, esto se haría solo con la visualización de datos históricos (datos históricos), pero en este proyecto también quisimos mostrar un ejemplo de recepción de datos directos.
Utilice MQTT para la visualización de dato en tiempo real y la comunicación entre aplicaciones, haciendo hincapié en la seguridad y la implementación práctica usando FT Optix.
Características generales
MQTT para la comunicación en tiempo real entre aplicaciones de campo y de agregador de datos, con un enfoque en la configuración práctica y la seguridad.
Limitaciones/desventajas
El ejemplo se proporciona tal cual y puede ser una referencia útil para crear su aplicación. El ejemplo tal cual no se puede utilizar en una máquina real, sino que debe adaptarse para el propósito, respetando los más altos estándares de seguridad requeridos. En el proyecto se utiliza un broker MQTT público y de código abierto solo con fines de demostración, no está protegido y no se puede garantizar su tiempo productivo. Le recomendamos encarecidamente que cambie los nombres de los tópicos y servidores usando su proveedor antes de implementar la aplicación final.
¿Cómo iniciar el proyecto?
Para configurar la Field Application y/o resolver problemas de compilación/referencias perdidas, lea la documentación MQTT_Field.
Tenga en cuenta:
Esta aplicación funciona emparejada con la Field Application, mostrando los datos recibidos mediante el protocolo MQTT en forma de tablero de control. Esta aplicación se puede encontrar en el Innovation Center bajo el siguiente título: Real-Time Data Implementation and Visualization with MQTT in Optix.
Tenga en cuenta: Deberá aceptar los Términos & Conditions para cada descarga.
¿Necesita ayuda?
Si necesita ayuda con una aplicación o tiene comentarios del Innovation Center, por favor contáctenos.
Guía de implementación
Paso 1
Inicie la aplicación de campo.
Paso 2:
Paso 3:
Información detallada
MQTT BrokerLogic
Servidor MQTT
Debe activarse (TRUE) solo si desea utilizar su aplicación Uniqo como Broker (por lo tanto, no usar un Broker MQTT existente, en este ejemplo test.mosquitto.org).
Parámetros:
- IPAddress: dirección IP donde se instanciará el Broker.
- Port: número del puerto en el que el Broker está escuchando
- UseSSL: habilita el uso de certificados.
- Certificate
- CertificatePassword
- AutoStart DEJAR EN TRUE
- UserAuthentication: si es verdadero, solo los usuarios especificados pueden acceder
- AuthorizedUsers
- IsRunning: estado del servidor
- IsDebuggingMode NO SE USA
- MaxNumberOfConnections: número máximo de clientes que pueden conectarse al Broker
- NumberOfConnections: número de conexiones activas
MQTT Client
Siempre debe estar activo (TRUE) porque es la conexión con el Broker al que se publica o al que se suscribe. Si desea conectar dos aplicaciones, debe configurar el mismo broker y el mismo puerto en ambos proyectos. En cambio, el parámetro ClientID debe ser diferente (único) en cada aplicación.
Parámetros:
- IPAddress: dirección del broker (test.mosquitto.org), que podría ser externa como en este caso, o interna si la aplicación funciona como broker (por ejemplo, MQTTBrokerLogic.MQTTServer.IPAddress)
- Port: puerto del broker (1883 para test.mosquitto.org)
- UseSSL: Cambie a TRUE si el broker requiere certificados
- CaCertificate
- ClientCertificate
- ClientCertificatePassword
- AllowUntrustedCertificates
- UserAuthentication: Cambie a TRUE si el broker requiere usuarios autorizados.
- AuthorizedUsers: arreglo de cadenas que contiene usuarios Uniqo (User1; User2; User […]);
- IsRunning NO USADO
- IsDebuggingMode NO USADO
- ClientId: este es el Id único, diferente para cada aplicación que desea participar en el intercambio de datos
- Connected: estado de conexión con el broker
- SentPackages STATS
- ReceivedPackages STATS
Suscriptor
Debe estar activo (TRUE) si su aplicación necesita recibir datos publicados en el broker.
Parámetros:
- LiveTags: TRUE = recibir datos directos
- LiveTagsFolder: esta carpeta/nodo contiene una copia del parámetro Publisher LiveTagsFolder, en el que Netlogic copiará los valores leídos del broker.
- LiveTagsTopic: en este parámetro se debe especificar el tópico al que está suscrito y del que desea recibir valores de variables/tags datos directos.
- LastPackageTimestamp: marca de tiempo del último paquete publicado
- StoreTables: TRUE = recibir datos históricos
- Store: DataStore en el que se guardan los datos recibidos. Las tablas deben renombrarse con el parámetro “TablesPrefix”, más el nombre de las tablas de la aplicación del Publisher. A continuación, un ejemplo:
- Nombres de tablas DataStore de la aplicación Publisher: Datalogger, AlarmsEventLogger
- Parámetro “TablesPrefix” del Publisher: Station1
- Nombres de tablas DataStore de la aplicación Suscriptor: Station1_DataLogger, Station1_EventLogger. Verifique que tengan las mismas columnas que la aplicación del Publisher.
- StoreTablesTopic: en este parámetro se debe especificar el tópico al que está suscrito y del que desea recibir valores de variables/tags datos históricos.
- Store: DataStore en el que se guardan los datos recibidos. Las tablas deben renombrarse con el parámetro “TablesPrefix”, más el nombre de las tablas de la aplicación del Publisher. A continuación, un ejemplo:
- CustomPayload: mensaje personalizado sin formato predefinido
- CustomPayloadMessage: mensaje de texto personalizado de CustomPayloadTopic
- CustomPayloadTopic: en este parámetro se debe especificar el tópico al que está suscrito y del que desea recibir mensajes personalizados.
Publisher
Debe estar activo (TRUE) si su aplicación necesita publicar datos al broker.
Parámetros:
- LiveTags: TRUE = publicar datos directos
- LiveTagsPeriod: Frecuencia de envío (si 0000:00:00.000 envía datos al cambiar el valor).
- LiveTagsFolder: carpeta (o nodo) que contiene los datos que se enviarán
- LiveTagsTopic: /UniqoFieldHmiLiveTopic es el tópico en el que enviamos/publicamos datos
- QoS: MQTT Quality of Service (0,1,2)
- Retain: Retener el mensaje en el tópico incluso después de leerlo
- StoreTables: TRUE = publicar datos históricos
- Store: DataStore en el que guardamos nuestros datos
- TableNames: Tablas del Store que se enviarán
- Table1: Datalogger
- Table2: AlarmsEventLogger
- Se puede agregar oeliminar la Table (…)
- PreserveData NO USADO
- MaximumItemsPerPacket: define cuántas filas por paquete se envían
- MaximumPublishTime: Tiempo máximo de espera antes de publicar datos, incluso si no se alcanza el valor de MaximumItemsPerPacket.
- MinimumPublishTime: Tiempo mínimo de espera antes de publicar datos cuando se alcanza el valor de MaximumItemsPerPacket.
- StoreTablesTopic: /UniqoFieldHmiDataLoggerTopic es el tópico en el que enviamos/publicamos datos
- QoS: MQTT Quality of Service (0,1,2)
- Retain: Retener el mensaje en el tópico incluso después de leerlo
- TablesPrefix: Una variable modelo que contiene el nombre hipotético de diferentes sitios de producción, en este caso, será “Station1”. En el paquete enviado aparecerá la tabla enviada con el prefijo único correspondiente a la máquina/sitio correcto desde el cual llega el paquete (Station1_AlarmsEventLogger). Esto es útil cuando tenemos más de un modelo de máquina/ más de una configuración de planta y necesitamos distinguir de qué máquina/planta llegan los datos.
- AllRows: Cuando es TRUE, publica todos los datos ya presentes en las Store Tables. Establezca en FALSE para publicar solo los datos almacenados después de la implementación de MQTTBrokerLogic.
- CustomPayload: Mensaje personalizado sin formato predefinido
- CustomPayloadMessage: Mensaje de texto personalizado publicado en el CustomPayloadTopic
- CustomPayloadTopic: El tópico en el que se publicará el mensaje.
- CustomPayloadPeriod: Frecuencia de envío del mensaje personalizado (si 0000:00:00.000 envía datos al cambiar el valor)
- QoS: MQTT Quality of Service (0,1,2)
- Retain: Retener el mensaje en el tópico incluso después de leerlo