Loading
FT Optix | FT Vault | FT Hub | Logix

Troca de dados MQTT: painel em tempo real e dados históricos

Revisão: A (11/10/2022) - Tempo de implantação: 60 minutos |Este guia detalha o uso do MQTT para troca e visualização eficiente de dado em tempo real e dados históricos entre aplicativos.
Uma mulher sentada em uma mesa em frente a um computador, digitando no teclado
Nesta página:
  • Visão geral
  • Guia de instalação
Página inicial do Centro de Inovação

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.

Etapa 1 - captura de tela

Downloads

Observe: Você precisará concordar com os Termos & Condições para cada download.

Arquivos para download ›
Aviso legal Aceitação. A ROCKWELL AUTOMATION FORNECERÁ ACESSO AOS PRODUTOS ROCKWELL (MELHORES PRÁTICAS, APLICAÇÕES E CONHECIMENTO) SOB A CONDIÇÃO DE QUE VOCÊ ACEITE E CUMPRA OS SEGUINTES TERMOS E CONDIÇÕES. VOCÊ ACEITA E CONCORDA EM FICAR VINCULADO AOS TERMOS DESTE ACORDO AO FAZER O DOWNLOAD, INSTALAR, COPIAR OU DE OUTRA FORMA USAR OS PRODUTOS. SE VOCÊ ESTIVER ACEITANDO ESTES TERMOS EM NOME DE OUTRA PESSOA, EMPRESA OU OUTRA ENTIDADE JURÍDICA, VOCÊ DECLARA E GARANTE QUE TEM PLENA AUTORIDADE PARA VINCULAR ESSA PESSOA, EMPRESA OU ENTIDADE JURÍDICA A ESTES TERMOS. SE VOCÊ NÃO CONCORDAR COM ESTES TERMOS, NÃO FAÇA O DOWNLOAD, NÃO INSTALE, NÃO COPIE, NÃO ACESSE OU NÃO USE OS PRODUTOS, SOFTWARE E/OU SERVIÇOS DE NUVEM. 1. A Rockwell Automation mantém a propriedade e o título completos de todos os Produtos e documentação relacionada. Nenhum direito ou licença é concedido além daqueles estabelecidos neste Acordo. A Empresa concede à Rockwell Automation uma licença não exclusiva, mundial, livre de royalties, perpétua e irrevogável para usar qualquer feedback que a Empresa forneça em relação aos Produtos, mesmo que a Empresa tenha designado o feedback como confidencial. A Rockwell Automation terá o direito de usar o feedback sem restrição ou compensação à Empresa. 2. A Empresa não pode alugar, sublocar, ceder, licenciar, sublicenciar ou de outra forma transferir qualquer um dos Produtos sem o consentimento prévio por escrito da Rockwell Automation. A Empresa não pode ceder ou de outra forma transferir direitos de acesso aos Produtos sem o consentimento prévio por escrito da Rockwell Automation. Qualquer montagem reversa, engenharia reversa, descompilação e criação de trabalhos derivados com base nos Produtos pela Empresa é proibida. 3. A Empresa reconhece que os Produtos fornecidos sob este Acordo são Informações Confidenciais da Rockwell Automation e são cobertos por direitos autorais, patentes, marcas comerciais e/ou segredos comerciais vigentes ou pendentes da Rockwell Automation, e a Empresa concorda em manter a confidencialidade não divulgando os Produtos ou a documentação a terceiros sem o consentimento prévio por escrito da Rockwell Automation e em proteger a confidencialidade dos Produtos como protegeria as próprias informações confidenciais da Empresa. A Empresa concorda que sua obrigação de confidencialidade sob este parágrafo sobreviverá à expiração ou rescisão deste Acordo. 4. A Empresa concorda que os Produtos fornecidos sob este Acordo são protótipos e exemplos e que sua aplicação e resultados podem variar dependendo de cada cliente e das condições do projeto. A Rockwell Automation não garante os mesmos resultados. Este Acordo não deve ser interpretado de forma alguma como um compromisso da Rockwell Automation, em qualquer momento, de fabricar e/ou oferecer Produtos para venda. Não há nenhum acordo do nível de serviço explícito ou implícito associado ao uso dos Produtos. A Rockwell Automation não garante que as funções contidas nos Produtos atenderão aos requisitos da Empresa. A Empresa concorda em usar todos os Produtos apenas de acordo com as instruções e apenas para os usos pretendidos identificados na documentação. 5. EXCLUSÃO DE GARANTIAS E LIMITAÇÃO DE RESPONSABILIDADE. OS PRODUTOS SÃO FORNECIDOS "NO ESTADO EM QUE SE ENCONTRAM". A ROCKWELL AUTOMATION RENUNCIA A TODAS E QUAISQUER GARANTIAS, EXPRESSAS, IMPLÍCITAS OU LEGAIS, INCLUINDO, SEM LIMITAÇÃO, QUAISQUER GARANTIAS DE COMERCIALIZAÇÃO OU ADEQUAÇÃO A UM PROPÓSITO ESPECÍFICO. A ROCKWELL AUTOMATION RENUNCIA EXPLICITAMENTE A TODAS AS GARANTIAS DE NÃO INFRAÇÃO E EXPRESSAMENTE NÃO GARANTE QUE OS PRODUTOS, TOTAL OU PARCIALMENTE, ESTARÃO LIVRES DE ERROS OU VULNERABILIDADES DE SEGURANÇA. EM NENHUM CASO A ROCKWELL AUTOMATION SERÁ RESPONSÁVEL POR (i) LUCROS CESSANTES, ECONOMIAS PERDIDAS, TEMPO DE PARADA, DANOS ESPECIAIS, INDIRETOS OU CONSEQUENCIAIS DE QUALQUER TIPO, OU (ii) QUALQUER LESÃO PESSOAL, DANOS À PROPRIEDADE OU DANOS AMBIENTAIS DECORRENTES OU EM CONEXÃO COM ESTE ACORDO, SEJA EM UMA AÇÃO CONTRATUAL, RESPONSABILIDADE OBJETIVA OU EM RESPONSABILIDADE CIVIL, INCLUINDO NEGLIGÊNCIA. 6. A EMPRESA CONCORDA EM INDENIZAR E MANTER A ROCKWELL AUTOMATION ISENTA DE TODOS OS CUSTOS, INDENIZAÇÕES, DANOS, DESPESAS E HONORÁRIOS (INCLUINDO HONORÁRIOS ADVOCATÍCIOS) RESULTANTES OU RELACIONADOS A QUALQUER REIVINDICAÇÃO DE TERCEIROS (INCLUINDO FUNCIONÁRIOS E AGENTES DA EMPRESA) CONTRA A ROCKWELL AUTOMATION, SEUS DISTRIBUIDORES, AGENTES, DIRETORES OU FUNCIONÁRIOS POR LESÃO PESSOAL (INCLUINDO MORTE), DANOS À PROPRIEDADE OU DANOS AMBIENTAIS RELACIONADOS OU RESULTANTES DO USO DOS PRODUTOS. 7. No caso de um Produto ser exportado, a Empresa concorda em cumprir todas as Leis e Regulamentações de Controle de Exportação dos Estados Unidos aplicáveis, bem como as leis de controle de exportação aplicáveis de outros países. Este Acordo será regido pelas leis do estado de Wisconsin. Este Acordo é o acordo completo e exclusivo entre a Rockwell Automation e a Empresa, e substitui todos os acordos anteriores, sejam eles escritos ou orais, relacionados aos Produtos.

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:

Depois disso, abra este projeto em outra janela do FT Optix e execute o aplicativo com o FT Optix Emulator.

Etapa 2 - captura de tela
Etapa 2 - captura de tela

Passo 3:

Se a conexão com a aplicação de campo estiver funcionando, o LED “Dado em tempo real” ficará verde.

Etapa 3 - captura de tela
Etapa 3 - captura de tela

Informações detalhadas

A troca de dados é baseada em um Runtime Netlogic que pode ser encontrado na pasta Netlogic. O Netlogic MQTTBrokerLogic está presente em ambos os aplicativos, mas é configurado de maneira diferente.

Etapa 4 - captura de tela
Etapa 4 - captura de tela

Aplicação de campo

Aqui o Runtime Netlogic atua como Publicador; dessa forma, ele publica dados em determinados tópicos, endereçados a um broker MQTT.

Etapa 5 - captura de tela
Etapa 5 - captura de tela

Aplicativo agregador de dados

Aqui, o Runtime Netlogic funciona como Subscriber: assinando os tópicos nos quais o Field Application publica, ele mostra todos os dados na forma de um painel.

Etapa 6 - captura de tela
Etapa 6 - captura de tela

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
Etapa 7 - captura de tela
Etapa 7 - captura de tela

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
Etapa 8 - captura de tela
Etapa 8 - captura de tela

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.
  • 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.
Etapa 9 - captura de tela
Etapa 9 - captura de tela

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
Etapa 10 - captura de tela
Etapa 10 - captura de tela
Tem uma dúvida geral?

A Rockwell Automation e nossos parceiros oferecem conhecimento excepcional do setor para ajudar a projetar, implementar e dar suporte ao seu investimento em automação.

Contate a Rockwell Automation
  1. Chevron LeftChevron Left Página inicial da Rockwell Automation
  2. Chevron LeftChevron Left Sup...
  3. Chevron LeftChevron Left Pro...
  4. Chevron LeftChevron Left Downloads
  5. Chevron LeftChevron Left Innovation Center
  6. Chevron LeftChevron Left Troca de dados MQTT: painel em tempo real e dados históricos
O conteúdo deste site foi traduzido usando inteligência artificial (IA) sem revisão nem edição humana. O conteúdo pode conter erros ou imprecisões e é fornecido “da forma como está” sem nenhum tipo de garantia. O texto oficial é a versão em inglês.
Atualize suas preferências de cookies para continuar.
Este recurso requer cookies para melhorar sua experiência. Atualize suas preferências para permitir esses cookies:
  • Cookies de Redes Sociais
  • Cookies Funcionais
  • Cookies de Desempenho
  • Cookies de Marketing
  • Todos os Cookies
Você pode atualizar suas preferências a qualquer momento. Para mais informações, consulte nosso {0} Política de Privacidade
CloseClose