Downloads
Para que serve isso?
Demo MQTT é um exemplo que consiste em dois projetos: Field Application e Data Aggregator Application. O objetivo desta demonstração é simplesmente mostrar um exemplo de comunicação via protocolo MQTT entre um aplicativo hipotético em execução em uma máquina/fábrica (Field Application) e um aplicativo que coleta os dados enviados pela máquina, mostrando-os na forma de um painel (Data Aggregator Application). Normalmente, isso seria feito apenas com a visualização de dados históricos (dados frios), mas neste projeto também quisemos mostrar um exemplo de recebimento de dado em tempo real.
Use MQTT para visualização de dado em tempo real e comunicação entre aplicativos, enfatizando a segurança e a implementação prática usando FT Optix.
Recursos gerais
MQTT para comunicação em tempo real entre aplicações de campo e agregadoras de dados, com foco em configuração prática e segurança.
Limitações/Desvantagens
O exemplo é fornecido como está e pode ser uma referência útil para a construção do seu aplicativo. O exemplo como está não pode ser usado em uma máquina real, devendo ser adaptado para o propósito, respeitando os mais altos padrões de segurança exigidos. Um broker MQTT público e de código aberto é utilizado no projeto apenas para fins de demonstração, não é seguro e sua disponibilidade não pode ser garantida. Recomendamos fortemente que você altere os nomes do tópico e do servidor usando seu provedor antes de implantar a aplicação final.
Como iniciar o projeto?
Para configurar a Field Application e/ou resolver problemas de compilação/referências ausentes, leia a documentação MQTT_Field.
Observação:
Este aplicativo funciona em conjunto com a Field Application, mostrando dados recebidos via protocolo MQTT na forma de um painel de controle. Este aplicativo pode ser encontrado no Innovation Center sob o seguinte título: Real-Time Data Implementation and Visualization with MQTT in Optix.
Observe: Você precisará concordar com os Termos & Condições para cada download.
Precisa de ajuda?
Se precisar de ajuda com um aplicativo ou tiver feedback do Innovation Center, por favor, entre em contato conosco.
Guía de implementación
Etapa 1
Inicie o Field Application.
Etapa 2:
Passo 3:
Informações detalhadas
MQTT BrokerLogic
Servidor MQTT
Deve ser ativado (TRUE) apenas se você deseja usar seu aplicativo Uniqo como Broker (portanto, não use um broker MQTT existente, neste exemplo test.mosquitto.org).
Parâmetros:
- IPAddress: endereço IP onde o Broker será instanciado.
- Port: número da porta na qual o broker está ouvindo
- UseSSL: habilita o uso de certificados.
- Certificate
- CertificatePassword
- AutoStart DEIXE TRUE
- UserAuthentication: se true, apenas os usuários especificados podem acessar
- AuthorizedUsers
- IsRunning: status do servidor
- IsDebuggingMode NÃO USADO
- MaxNumberOfConnections: número máximo de clientes que podem se conectar ao Broker
- NumberOfConnections: número de conexões ativas
Cliente MQTT
Ele deve estar sempre ativo (TRUE) porque é a conexão com o Broker para o qual você publica ou ao qual você se inscreve. Se você quiser conectar dois aplicativos, precisa definir o mesmo broker e a mesma porta em ambos os projetos. Já o parâmetro ClientID deve ser diferente (único) em cada aplicativo.
Parâmetros:
- IPAddress: endereço do broker (test.mosquitto.org) pode ser externo, como neste caso, ou interno se o aplicativo funcionar como broker (por exemplo, MQTTBrokerLogic.MQTTServer.IPAddress)
- Port: porta do broker (1883 para test.mosquitto.org)
- UseSSL: alterne para TRUE se o broker exigir certificados
- CaCertificate
- ClientCertificate
- ClientCertificatePassword
- AllowUntrustedCertificates
- UserAuthentication: alterne para TRUE se o broker exigir usuários autorizados.
- AuthorizedUsers: vetor de strings que contém usuários Uniqo (User1; User2; User […]);
- IsRunning NÃO USADO
- IsDebuggingMode NÃO USADO
- ClientId: este é o ID único, diferente para cada aplicativo que deseja participar do compartilhamento/troca de dados
- Connected: status da conexão com o broker
- SentPackages STATS
- ReceivedPackages STATS
Assinante
Deve estar ativo (VERDADEIRO) se sua aplicação precisar receber dados publicados no broker.
Parâmetros:
- LiveTags: VERDADEIRO = receber DADO EM TEMPO REAL
- LiveTagsFolder: esta pasta/Nó contém uma cópia do parâmetro LiveTagsFolder do Publicador, no qual o Netlogic copiará os valores lidos do broker.
- LiveTagsTopic: neste parâmetro, é necessário especificar o tópico ao qual você está inscrito e deseja receber valores de variáveis/tags em tempo real.
- LastPackageTimestamp: Registro de data e hora do último pacote publicado
- StoreTables: VERDADEIRO = receber DADOS HISTÓRICOS
- Store: DataStore no qual estamos salvando os dados recebidos. As tabelas da store devem ser renomeadas com o parâmetro “TablesPrefix”, mais o nome das tabelas da aplicação do publicador. Abaixo está um exemplo:
- Nomes das tabelas do DataStore da aplicação do publicador: Datalogger, AlarmsEventLogger
- Parâmetro “TablesPrefix” do publicador: Station1
- Nomes das tabelas do DataStore da aplicação do assinante: Station1_DataLogger, Station1_EventLogger Verifique se tem as mesmas colunas que você tem na aplicação do publicador.
- StoreTablesTopic: neste parâmetro, é necessário especificar o tópico ao qual você está inscrito e deseja receber valores de variáveis/tags históricos.
- Store: DataStore no qual estamos salvando os dados recebidos. As tabelas da store devem ser renomeadas com o parâmetro “TablesPrefix”, mais o nome das tabelas da aplicação do publicador. Abaixo está um exemplo:
- CustomPayload: Mensagem personalizada sem formato predefinido
- CustomPayloadMessage: Mensagem de texto personalizada do CustomPayloadTopic
- CustomPayloadTopic: Neste parâmetro, o tópico ao qual você está inscrito e deseja receber mensagens personalizadas precisa ser especificado.
Publisher
Deve estar ativo (TRUE) se sua aplicação precisar publicar dados para o broker.
Parâmetros:
- LiveTags: TRUE = publicar DADO EM TEMPO REAL
- LiveTagsPeriod: frequência de envio (se 0000:00:00.000 enviar dados na alteração de valor).
- LiveTagsFolder: pasta (ou nó) que contém os dados a serem enviados
- LiveTagsTopic: /UniqoFieldHmiLiveTopic é o tópico no qual estamos enviando/publicando dados
- QoS: qualidade de serviço MQTT (0, 1, 2)
- Retain: reter mensagem no tópico mesmo após a leitura
- StoreTables: TRUE = publicar DADOS HISTÓRICOS
- Store: DataStore no qual estamos salvando nossos dados
- TableNames: tabelas de armazenamento a serem enviadas
- Table1: Datalogger
- Table2: AlarmsEventLogger
- Table (…) pode ser adicionada ouremovida
- PreserveData NÃO USADO
- MaximumItemsPerPacket: define quantas linhas por pacote enviar
- MaximumPublishTime: tempo máximo de espera antes de publicar dados, mesmo que não atinja o valor de MaximumItemsPerPacket.
- MinimumPublishTime: tempo mínimo de espera antes de publicar dados quando o valor de MaximumItemsPerPacket é atingido.
- StoreTablesTopic: /UniqoFieldHmiDataLoggerTopic é o tópico no qual estamos enviando/publicando dados
- QoS: qualidade de serviço MQTT (0, 1, 2)
- Retain: reter mensagem no tópico mesmo após a leitura
- TablesPrefix: uma variável de modelo contendo o nome hipotético de diferentes locais de produção, neste caso, será “Station1”. No pacote enviado, aparecerá a tabela enviada com o prefixo exclusivo correspondente à máquina/local correto de onde o pacote chega (Station1_AlarmsEventLogger). Isso é útil quando temos mais de um dos mesmos modelos de máquina/mais de uma das mesmas configurações de planta e precisamos distinguir de qual máquina/planta os dados chegam.
- AllRows: quando for TRUE, publica todos os dados já presentes nas Store Tables. Defina como FALSE para publicar apenas os dados armazenados após a implementação do MQTTBrokerLogic.
- CustomPayload: mensagem personalizada sem formato predefinido
- CustomPayloadMessage: mensagem de texto personalizada publicada no CustomPayloadTopic
- CustomPayloadTopic: o tópico no qual a mensagem será publicada.
- CustomPayloadPeriod: frequência de envio da mensagem personalizada (se 0000:00:00.000 enviar dados na alteração de valor)
- QoS: qualidade de serviço MQTT (0, 1, 2)
- Retain: reter mensagem no tópico mesmo após a leitura