Interface MQTT

<< Clique para Mostrar o Sumário >>

 

Interface MQTT

A Interface de Comunicação MQTT permite a coleta de dados de qualquer dispositivo que opera com o protocolo MQTT ao se conectar a um Broker, tipicamente um dispositivo de Internet das Coisas (IoT) ou Internet das Coisas da Indústria (IIoT).

A criação de uma Interface de Comunicação MQTT segue um procedimento análogo à da criação de uma Interface com Banco de Dados (OLEDB), mas a etapa final de configuração consiste no mapeamento dos tópicos de interesse em conjunto com a propriedade que serve como endereço correspondente, que é utilizado na Configuração de Fonte de Dados de uma Basic Variable.

1.Para inserir esta Interface de Comunicação, clique com o botão direito do mouse no nó do Interface Server no Explorer do EPM Studio e selecione a opção New Interface, similar ao procedimento para inserir uma Interface com Banco de Dados (OLEDB). Esta mesma operação pode ser executada clicando em Interface na aba Insert da Faixa de Opções do EPM Studio.

2.A janela de criação de Interfaces é mostrada. Na opção Type, selecione o item MQTT. Nas opções Name e Description, digite um nome (obrigatório) e uma descrição (opcional) para a Interface, respectivamente.

Seleção do tipo de Interface

Seleção do tipo de Interface

3.Clique em Next para abrir uma janela informando que a Interface está pronta para ser inserida.

Janela de início de criação da Interface

Janela de início de criação da Interface

4.Por padrão, a opção Start Interface after creating it (iniciar a Interface de Comunicação após a criação) já vem selecionada. Isto permite que, logo após a criação, a Interface inicie e tente estabelecer a comunicação com a fonte de dados à qual foi configurada.

5.Para concluir a operação de criação, clique em Finish. Uma vez concluída, surge uma mensagem informando o sucesso da operação.

Mensagem de sucesso na criação

Mensagem de sucesso na criação

6.Após criada a Interface MQTT, as propriedades estão disponíveis na opção Properties do menu contextual. Uma aba com as informações sobre esta Interface se abre.

Propriedades da Interface MQTT

Propriedades da Interface MQTT

As propriedades deste tipo de Interface de Comunicação são ligeiramente diferentes da Interface com Banco de Dados (OLEDB). Além de não ter a propriedade Publishing Interval, adicionalmente devem ser configuradas a conexão com o Broker, assim como o formato da estampa de tempo e da qualidade.

A seguir são apresentados os passos necessários para configurar a conexão com um Broker, definir o formato da estampa de tempo e da qualidade, criar as consultas de tópicos e criar o mapeamento entre as inscrições nos tópicos e endereços desta Interface de Comunicação, que podem ser posteriormente utilizados pelas Basic Variables na Configuração de Fonte de Dados.

1.Para configurar a conexão desta Interface, clique em Expandir na janela de propriedades para expandir o grupo Connection Settings com os dados do Broker e do cliente.

2.Clique em Edit para abrir a janela de configuração. As opções desta janela são mostradas na figura a seguir.

Janela de configuração da conexão

Janela de configuração da conexão

As opções disponíveis nesta janela estão descritas na tabela a seguir.

Configurações do Broker

Opção

Descrição

MQTT Version

Versão do protocolo MQTT implementada no Broker

QoS

Define o nível de qualidade de serviço (QoS ou Quality of Service) que é utilizado nas inscrições da Interface. As opções disponíveis são 0: No máximo uma vez, 1: Pelo menos uma vez ou 2: Exatamente uma vez

Persistent Session

Define se a conexão com o Broker é do tipo Limpa ou Persistente

TCP/IP

Endereço TCP/IP do Broker

Port

Porta TCP/IP a ser utilizada

TLS/SSL

Define se a conexão utiliza o protocolo de segurança TLS/SSL. Selecionar esta opção habilita o grupo Certificates, descrito adiante

WebSockets Connection

Define se a conexão é realizada por meio de WebSockets

Keep Alive (s)

Determina o intervalo máximo de tempo, em segundos, que o cliente, a Interface do EPM, e o Broker podem permanecer sem comunicação, garantindo assim que ambos estejam sempre conectados

Communication Timeout (s)

Determina o intervalo máximo de tempo, em segundos, que o cliente, a Interface do EPM, espera por uma resposta após mandar uma mensagem ao Broker e antes de se desconectar

Client ID

Identificador único do cliente, a Interface do EPM, para um Broker

Username

Nome do usuário para conexão com um Broker

Password

Senha do usuário para conexão com um Broker

Anonymous

Selecione esta opção caso não sejam requisitadas as credenciais de conexão, ou seja, usuário e senha, com o Broker. Selecionar esta opção desabilita as opções do grupo Client

Client (.pfx)

Define qual certificado de cliente é utilizado na conexão

Authority (.crt)

Define qual certificado de servidor é utilizado na conexão

Use certificates

Selecione esta opção para utilizar os certificados informados nas opções Client (.pfx) e Authority (.crt) na conexão. Os certificados estão armazenados no diretório C:\ProgramData\Elipse Software\EpmInterfaceServer\Certificates

 

3.Preencha os campos necessários para conectar-se ao Broker e clique em Test Connection para testar a conexão.

4.Uma mensagem de sucesso deve ser mostrada. Clique em OK para fechar esta mensagem e clique em OK para fechar a janela de conexão com o Broker. O endereço completo do Broker e o ID do cliente são apresentados na aba de configuração.

5.Para configurar o formato da estampa de tempo e qualidade, clique em Expandir na janela de propriedades para expandir o grupo Timestamp and Quality Settings com os dados da estampa de tempo e da qualidade.

6.Clique em Edit para abrir a janela de configuração da estampa de tempo. As opções desta janela são mostradas na figura a seguir.

Janela Timestamp Template

Janela Timestamp Template

7.Na opção Date Format, a análise da estampa de tempo lida pela Interface é realizada de forma mais genérica, com apenas as opções DMY, MDY ou YMD, onde D é o dia, M é o mês e Y é o ano. Nesta opção, selecione o item correspondente à ordem utilizada nas mensagens do Broker.

8.A opção UNIX Timestamp deve ser utilizada se a estampa de tempo é um número inteiro no formato UNIX.

9.No caso da estampa de tempo ter um formato mais específico ou se o usuário deseja garantir uma análise mais fiel e restritiva ao formato utilizado, selecione a opção Manual Template. Nesta opção é possível definir manualmente o formato da estampa de tempo com base nos caracteres mostrados na figura anterior. Por exemplo, para analisar uma estampa de tempo "22/01/2019 14:35:06.000", use o formato "dd/MM/yyyy hh:mm:ss.fff".

10.Selecione a opção de formato de estampa de tempo, preencha os campos necessários e clique em OK para fechar a janela de configuração. O formato de estampa de tempo selecionado é apresentado na aba de configuração.

11.A opção Quality Template apresenta o formato em que a qualidade recebida pela Interface é analisada. As opções disponíveis são Boolean: Uma qualidade boa é representada pela expressão "true" ou um número diferente de 0 (zero) e uma qualidade ruim é representada pela expressão "false" ou por 0 (zero) e OPC DA: Os códigos de qualidade são analisados conforme a definição do padrão OPC DA Classic.

 

Após configurar a conexão com o Broker, assim como os formatos de estampa de tempo e qualidade, é necessário criar as consultas de tópicos que têm o corpo das mensagens encaminhado para os endereços mapeados na Interface de Comunicação. Este processo de mapeamento consiste na definição de um nome identificador para cada uma das colunas retornadas pela consulta. A criação de consultas de tópicos é realizada na aba interna Queries, com as opções descritas na tabela a seguir.

Opções disponíveis na aba Queries

Opção

Descrição

Insert Insert

Adiciona uma nova consulta de tópicos

Delete Delete

Remove a consulta de tópicos selecionada

Edit Edit

Edita a consulta de tópicos selecionada

 

1.Para criar uma consulta de tópicos, selecione a aba Queries e clique em Insert Insert para abrir a janela da figura a seguir.

Janela MQTT Topics

Janela MQTT Topics

2.Digite o nome do tópico a ser consultado na opção Topic filter. Esta opção permite utilizar os caracteres + (sinal de mais) e # (sinal numérico). Consulte as NOTAS a seguir para mais informações sobre estes caracteres. Na opção Payload format, defina o formato do escopo das mensagens recebidas de um tópico.

 

NOTAS

O caractere + (sinal de mais) funciona como um curinga de um nível. Quando utilizado na opção Topic filter, a Interface consulta todos os tópicos de um mesmo nível hierárquico, como por exemplo "casa/1andar/+/temperatura".

O caractere # (sinal numérico) funciona como um curinga multinível. Quando utilizado na opção Topic filter, a Interface consulta todos os tópicos de um mesmo nível hierárquico e os descendentes, como por exemplo "casa/1andar/#".

Alguns tópicos podem não retornar na consulta se não foram publicados no Broker no modo Retained. Clique em Add para adicionar manualmente estes tópicos na lista ou clique em Delete para remover estes tópicos da lista.

 

3.A consulta só retorna os tópicos que tenham o escopo das mensagens no mesmo formato selecionado na opção Payload format. As opções disponíveis são JSON: consulta apenas tópicos com o escopo das mensagens no padrão JSON de um nível, XML: consulta apenas tópicos com o escopo das mensagens no padrão XML de um nível ou Single: consulta tópicos cujo escopo das mensagens contém apenas um valor.

4.Clique em Execute para executar a consulta. A figura a seguir mostra o resultado de uma consulta a todos os níveis (#) no formato JSON.

Resultado da consulta

Resultado da consulta

5.Caso a consulta tenha sido configurada no formato JSON ou XML, a aba Payload é atualizada com todas as chaves utilizadas nas mensagens do tópico ou tópicos retornados, conforme a figura a seguir.

Aba Payload

Aba Payload

A lista Result topic(s) key(s) contém as chaves utilizadas nos tópicos retornados na aba Topic. As opções Ordenação descendente e Ordenação descendente organizam as chaves em ordem alfabética descendente ou ascendente, respectivamente.

Nesta aba ocorre um pré-mapeamento das chaves em relação aos campos da Basic Variable. As chaves que estiverem na opção Value são posteriormente apresentadas como opções de mapeamento do campo de valor. Da mesma forma, as chaves que estiverem nas opções Timestamp e Quality são posteriormente apresentadas como opções de mapeamento dos campos de estampa de tempo e qualidade, respectivamente.

As opções Tranferir chave permitem transferir uma chave da lista Result topic(s) key(s) para uma das opções Value, Timestamp ou Quality. Complete cada opção com as respectivas chaves, que são utilizadas no mapeamento de campos das Basic Variables. Clique em OK para concluir a criação da consulta.

 

NOTAS

A aba Payload permanece desabilitada caso a consulta tenha sido executada no modo Single.

Nos casos de tópicos adicionados manualmente na aba Topics, pode-se adicionar as chaves de forma manual usando a opção Add para colocar as chaves diretamente no campo de interesse.

A opção Delete permite remover uma chave adicionada. Caso a chave removida não tenha sido adicionada manualmente, esta retorna para a lista Result topic(s) key(s).

 

Aba Queries da Interface MQTT

Aba Queries da Interface MQTT

Na figura anterior, a nova consulta é listada na aba Queries. A listagem ao lado apresenta as chaves selecionadas para mapeamento na consulta, assim como os respectivos campos.

Depois de concluída a criação de todas as consultas necessárias, selecione a aba Address e crie os identificadores que servem como endereços desta Interface para configurar a fonte de dados de uma Basic Variable, conforme a figura a seguir.

Aba Address

Aba Address

A barra de ferramentas da aba Address contém a opção Insert Insert, que adiciona um novo mapeamento, e a opção Delete Delete, que remove o mapeamento selecionado.

Uma vez adicionado um novo mapeamento, preencha as informações relacionadas ao tópico a ser mapeado. A coluna Query indica a consulta de tópicos e a coluna Topic indica o tópico de interesse. A coluna Value Field indica a chave que se deseja utilizar como valor da Basic Variable, e as colunas Timestamp Field e Quality Field indicam as chaves que se deseja utilizar como estampa de tempo e qualidade, respectivamente, da Basic Variable.

Mapeamento de tópicos

Mapeamento de tópicos

 

NOTAS

Se a coluna Timestamp Field não é preenchida, o valor é definido como Using machine clock.

Se a coluna Quality Field não é preenchida, o valor é definido como Using good.

Para o caso de um tópico no formato Single, selecione a opção Using topic value na coluna Value Field.

 

Assim que todos os mapeamentos da Interface MQTT tiverem sido definidos, pode-se seguir com a utilização no parâmetro de configuração da fonte de dados das Basic Variables. No exemplo a seguir, foi criada uma Basic Variable chamada Tag_From_MQTT, que recebe os dados da Interface MQTT_Interface através do mapeamento NewAddress que, por sua vez, define quais as chaves resultantes de uma consulta correspondem ao valor, à estampa de tempo e à qualidade repassados para a Basic Variable no momento da execução da consulta.

Exemplo de consulta

Exemplo de consulta

Após configurada a Interface MQTT, pode-se também realizar a importação dos Tags criados na operação de mapeamento desta Interface ou associar estes mapeamentos à Basic Variables previamente criadas no EPM Server, conforme o exemplo da figura anterior.

Esta página foi útil?