Você está na página 1de 9

Traduzido do Inglês para o Português - www.onlinedoctranslator.

com

MQTT Sample Code User Manual

Introdução

O código de amostra que acompanha este manual permite que um controlador Logix com capacidade de soquete se
conecte a um broker ou servidor MQTT. Os tópicos podem ser assinados, cancelados e publicados. As atualizações de
tópicos inscritos podem ser monitoradas para atualizações.

Requisitos
Para usar este código, o controlador deve ter uma interface Ethernet compatível com Sockets. Os controladores
CompactLogix 5370 e 5380 e ControlLogix 5580 têm isso integrado. Outros controladores ControlLogix podem ser
adaptados para soquetes com um cartão 1756-EN2T ou similar. Para obter mais informações, consulte o artigo 470690 da
base de conhecimento. O controlador deve ter o firmware 24 ou superior.

O ambiente de desenvolvimento necessário é Studio 5000 Logix Designer, versão 24 ou superior.

Princípio

O código de amostra consiste em duas partes, um Programa que atua como um backbone de comunicação e Instruções
Add-On que tratam dos comandos relacionados ao tópico.

Ao conectar-se a vários brokers ou servidores, várias instâncias do Programa são necessárias.


Descrição do identificador
O UDT público 'Hndl' é construído com os seguintes membros de dados

Endereço de IP DINT [4] Endereço IP do servidor mqtt Configuração


ID do Cliente FRAGMENTO Identificador de cliente, parâmetro de conexão necessário Configuração
WillTopic FRAGMENTO Parâmetro de conexão opcional Configuração
WillMessage FRAGMENTO Parâmetro de conexão opcional Configuração
WillQos SINT Parâmetro de conexão opcional Configuração
WillRetain BOOL Parâmetro de conexão opcional Configuração
CleanSession BOOL Parâmetro de conexão opcional Configuração
Nome do usuário FRAGMENTO Parâmetro de conexão opcional Configuração
Senha FRAGMENTO Parâmetro de conexão opcional Configuração
Conectar BOOL Definir para conectar, cancelar para desconectar Comando
Cmd FORÇA Tipo de pacote de controle mqtt Comando
qos SINT qualidade de serviço solicitada Comando
Reter BOOL Reter bandeira para publicar Comando
Dup BOOL Bandeira Dup para publicar Comando
EU IRIA INT identificador de pacote Comando
Tema FRAGMENTO tema Comando
carga útil FRAGMENTO carga útil Comando
Conectado BOOL Alto enquanto conectado Status
SessionPresent BOOL Alto quando a bandeira SP está presente no Connect Ack Status
DN BOOL Comando executado com sucesso Status
ER BOOL O comando falhou Status
ERRAR FORÇA Erro de código Status
replybufferindex FORÇA índice para a última entrada recebida Status

A tabela também mostra quais parâmetros são para configuração, comandos e status. Os termos específicos do MQTT não
são explicados aqui. Presume-se que o usuário esteja familiarizado com a terminologia MQTT.
Incluindo o código de comunicação MQTT em um projeto
Clique com o botão direito na Tarefa que executará o programa de comunicação e selecione Adicionar - Importar Programa.

Selecione o arquivo mqtt01_comms_Vxx.L5X e inicie o processo de importação.

Opcional - renomeie o código


Isso só é necessário ao usar várias instâncias do código para várias conexões. Clique em Localizar /

Substituir e configure a caixa de diálogo conforme abaixo.

Clique em substituir tudo.

Agora clique em OK para finalizar o processo de importação.


Configurando o código de comunicação

Obrigatório
Na linha 0 da MainRoutine do programa de comunicações, na última instrução da segunda ramificação, defina
o número do slot da placa de interface de rede com capacidade de soquetes.

Para controladores CompactLogix, é sempre 0. Para controladores 5580, é o número do slot do


controlador. Para outros controladores ControlLogix, é o número do slot da placa EN2T.

Em Parâmetros e Tags locais do Programa de comunicações, expanda o tag 'Hndl'.

Configure o endereço IP e o ID do cliente.

O endereço IP é o endereço IP do broker ou servidor MQTT. O ID do

cliente é uma string que deve ser diferente para cada cliente.

Opcional
Defina os valores desejados nos membros da tag listados abaixo.

Esses são parâmetros opcionais para conexão com o servidor ou broker MQTT.
Também opcional é alterar o valor da tag 'mqttKeepAlive'. Este é o valor de tempo limite em segundos usado ao
fazer a conexão com o servidor MQTT. O código de comunicação faz ping automaticamente no servidor quando a
metade desse tempo expira. O valor padrão é 256, os valores válidos vão de 17 a 1024 segundos.
Incluindo os AOIs MQTT em um projeto

Como antes, importe o 'mqttTestProgram.L5X' para uma tarefa.

Este código possui uma única rotina que demonstra o uso do código de comunicação e das instruções
add-on.

Quando o código não for ou não for mais necessário, exclua o Programa. Os AOIs MQTT importados permanecerão
disponíveis no projeto.
AOI mqpt - Publicar tópico

A instrução mqpt permite a publicação de um tópico. Pode ser usado em Ladder e Texto Estruturado. Não deve
haver nenhuma lógica antes da instrução, por isso ela sempre executa.

Parâmetros
A tag mqtp é a tag de apoio da instrução.

Quando a tag do membro de publicação faz a transição de 0 para 1, a instrução publica o tópico. Cabe ao
usuário acionar a transição.

O Hndl é um link para o parâmetro público do programa de comunicação.

A tag par é onde o tópico é configurado.

Qos, reter e duplicar podem ser configurados de acordo com a preferência do usuário para o protocolo MQTT.

Id pode ser definido pelo usuário, se desejado. Quando deixado em 0, o programa de comunicação atribuirá automaticamente
um ID incremental. Isso é recomendado.

Tópico e carga útil são strings que podem ser preenchidas pelo código do aplicativo do usuário antes de acionar a
instrução.
AOI mqsu - assinar e cancelar a assinatura do tópico

A instrução mqsu permite assinar e cancelar a assinatura de um tópico. Pode ser usado em Ladder e Texto
Estruturado. Não deve haver nenhuma lógica antes da instrução, por isso ela sempre executa.

Parâmetros
A tag mqsu é a tag de apoio da instrução.

A instrução é executada quando o tag de inscrição ou de cancelamento faz a transição de 0 para 1. Cabe ao
usuário disparar a transição.

O Hndl é um link para o parâmetro público do programa de comunicação.

A tag par é onde o tópico é configurado.

Qos é definido com o valor preferencial do usuário.

O tópico é a string que identifica o tópico. Como essa string é passada ao servidor sem processamento,
qualquer caractere curinga pode ser usado, desde que o servidor o suporte.
AOI mqmt - monitorar tópico inscrito

A instrução mqmt monitora um ringbuffer do programa de comunicação e procura a string configurada.


Quando o servidor publica o tópico especificado, a carga útil é capturada. Pode ser usado em Ladder e Texto
Estruturado. Não deve haver nenhuma lógica antes da instrução, por isso ela sempre executa.

Parâmetros
A tag mqmt é a tag de apoio da instrução.

Quando o tópico monitorado é visto no ringbuffer, o valor das atualizações é aumentado em 1. A

tag par é onde o tópico é configurado e as informações publicadas são gravadas.

O tópico é uma sequência, definida pelo código do usuário que é o tópico exato para o qual é monitorado. Deve ser uma correspondência exata para

um único tópico, portanto, caracteres curinga não podem ser usados.

A carga útil é atualizada após o recebimento de uma publicação do servidor.

Qos, retém, dup e id são atualizados pela instrução e contêm os valores que foram recebidos do
servidor.

Você também pode gostar