O MicroLink MQTT é uma suíte transformadora de blocos de funções definidos pelo usuário (UDFBs) para controladores Micro800 que permite comunicação MQTT perfeita com qualquer agente MQTT. Este pacote inclui três blocos de funções: um para estabelecer conexões, um para assinar tópicos específicos e um para publicar dados. Ele oferece alta capacidade de personalização com configurações para IDs MQTT exclusivos, endereços IP do servidor/agente, nomes de usuário, senhas e a qualidade de serviço (QoS) escolhida.
Indicado para uso com inversores de componentes PowerFlex 523 e 525 da Rockwell Automation.
Este código pode ser usado com os seguintes equipamentos:
- PowerFlex 523
- PowerFlex 525
- Micro850
- Micro870
- PanelView 800
Qual é a finalidade disso?
MO MicroLink MQTT é uma suíte de UDFBs projetada para obter uma integração total com os controladores Micro800 da Rockwell Automation. O objetivo dele é aprimorar os recursos desses controladores, permitindo a comunicação MQTT com qualquer agente MQTT.
Essa solução é especialmente útil para casos de uso de controle remoto e no campo industrial, em que a troca de dados e a eficiência da comunicação são críticas. O MicroLink MQTT oferece três blocos de funções para estabelecer conexões, assinar tópicos específicos e publicar dados.
Com o MicroLink MQTT, os usuários podem facilmente estabelecer uma conexão com um agente MQTT, assinar os dados de que precisam e publicar os dados de volta no agente. Ele oferece opções de alta personalização para IDs MQTT, endereços IP do servidor/agente, nomes de usuário, senhas e a qualidade de serviço (QoS) escolhida, garantindo comunicação de dados eficiente e segura.
Portanto, seja você um operador industrial que procura otimizar a comunicação de dados, seja um desenvolvedor que precisa integrar uma troca de dados eficiente em suas aplicações, o MicroLink MQTT pode ser a solução perfeita.
Recursos gerais:
Nosso pacote oferece três principais blocos de funções definidos pelo usuário:
- RA_MQTT_CONNECT_v2: entre no futuro com nosso bloco de funções de conexão. Ele permite que seu controlador Micro800 estabeleça uma conexão com um agente MQTT, preparando o terreno para um intercâmbio de dados robusto.
- RA_MQTT_SUBSCRIBE_v2: aproveite nosso bloco de funções de assinatura para ficar conectado com os dados de que você precisa. Adapte suas assinaturas para tópicos específicos do agente MQTT e sempre mantenha as operações atualizadas e com muitos dados.
- RA_MQTT_PUBLISH_v2: assuma o controle com nosso bloco de funções de publicação. Transmita dados com precisão publicando tópicos para o agente MQTT, fazendo de suas operações orientadas por dados uma referência a ser seguida por outros.
Cada bloco de funções é altamente personalizável, permitindo que você especifique IDs MQTT exclusivos, endereços IP do servidor/agente, nomes de usuário, senhas e a qualidade de serviço (QoS) preferida. Com RA_MQTT v2, todos os aspectos de suas comunicações MQTT estão em suas mãos.
Limitações/desvantagens
- Limitado ao Micro820, Micro850 e Micro870.
- Depende do agente MQTT de terceiros.
Como posso fazer isso funcionar?
La arquitectura implica el uso de hardware Micro820, Micro850 y Micro870. Y este es el software necesario:
- Workbench de componente conectado, versión 21 o superior.
- El firmware del equipo utilizado debe ser compatible con la versión del Workbench de componente conectado.
- Bloque de funciones definido por el usuario:
- RA_MQTT_CONNECT_v2
- RA_MQTT_SUBSCRIBE_v2
- RA_MQTT_PUBLISH_v2
A arquitetura implica o uso de hardware Micro820, Micro850 ou Micro870. E este é o software necessário:
- Connected Component Workbench, versão 21 ou superior.
- O firmware do equipamento utilizado deve ser compatível com a versão do Connected Component Workbench.
- Blocos de funções definidos pelo usuário:
- RA_MQTT_CONNECT_v2
- RA_MQTT_SUBSCRIBE_v2
- RA_MQTT_PUBLISH_v2
Conhecimentos necessários:
Recomendamos muito ter uma compreensão básica da programação da lógica ladder e da configuração do sistema com o uso do software Connected Components Workbench. Além disso, seria vantajoso ter familiaridade com os protocolos MQTT.
Downloads
Observação: você precisará concordar com os Termos e Condições para cada download.
Precisa de ajuda?
Se você precisar de ajuda com uma inscrição ou tiver um feedback do centro de inovação, escreva para nós.
Guia de instalação
Passo 1:
Estabelecimento de configurações de conexão para se conectar ou desconectar de um agente MQTT
Um agente MQTT serve essencialmente como um servidor para gerenciar mensagens MQTT. Para se conectar a um agente MQTT, devemos inserir o número da porta e o endereço IP do agente no UDFB RA_MQTT_CONNECT_v2. O agente pode estar hospedado em seu computador (nesse caso, você precisaria instalar e operar um agente MQTT compatível com seu sistema operacional) ou pode ser um servidor remoto, como os mencionados anteriormente.
1.1 Atribua o endereço IP e o número da porta do agente MQTT ao UDFB RA_MQTT_CONNECT_v2.
Este exemplo serve para se conectar ao agente test.mosquitto.org na nuvem. Uma alternativa para inserir o endereço IP diretamente é ativar o Serviço de nome de domínio (defina “EnableDNS” como TRUE) após inserir o URL do agente MQTT em “MQTTBrokerName” e o endereço IP do servidor DNS local em “DNSIPaddr” na linha 2.
1.2 Insira um “clientName” exclusivo, bem como um “userID” e um “userPass”, se o agente MQTT exigir (muitos agentes MQTT públicos não exigem nome de usuário e senha; portanto, esses campos são opcionais e podem ser deixados em branco se não forem obrigatórios)
1.3 Defina “EnableMQTT” como TRUE para se conectar ao agente MQTT.
Observação:
É preciso se lembrar de algumas coisas para garantir uma conexão bem-sucedida. Em algum momento, MQTTsocketSts deve exibir um 9. Se mostrar um 7 e depois voltar para 0, isso pode significar que o agente não está em execução ou não existe.
Os dados em resultData_Out são úteis para a localização de falhas de diagnóstico. Normalmente, quando você envia um comando de conexão ao servidor, ele responde com uma confirmação. A confirmação é indicada pelo 1º byte, que neste caso é “32”.
Outra resposta frequente que você receberá é uma confirmação de ping, indicada pelo “208” no 1º byte dos dados retornados. O comando ping é enviado ao agente remoto em intervalos de 50 segundos. Esse intervalo é codificado permanentemente no UDFB, mas pode ser modificado, se necessário.
Se os dados de retorno são diferentes de 32 ou 208 na conexão, isso pode sugerir que o cliente assinou um tópico que foi transmitido enquanto estava off-line. A mensagem é retida e enviada ao cliente quando volta a ficar on-line. Se você encontrar isso, processe a mensagem e reinicie a conexão.
1.4 Se você deseja configurar para LWT, precisa acessar estes parâmetros no UDFB:
322| willTopic := willTopic_In; 323| willData := willData_In;
“willTopic_In” é onde você insere o tópico Last Will para a conexão.
“willData_In” é onde você insere a comprovação para a conexão.
O agente MQTT publicará a comprovação para todos os clientes que assinarem o tópico Last Will quando o cliente for desconectado abruptamente.
1.5 Se você deseja se desconectar normalmente do servidor (sem acionar o LWT), defina “disconnect_CmD” como TRUE.
Este é um bit acionado de borda ascendente; portanto, você pode redefini-lo imediatamente.
Passo 2
Assinatura ou cancelamento de assinatura de um tópico
O protocolo MQTT troca dados por meio de métodos de assinatura e publicação. Os clientes se comunicam diretamente apenas com o agente MQTT. Os clientes que assinam um tópico receberão uma mensagem do agente quando outro cliente publicar nesse tópico. Os clientes podem ser de qualquer forma, desde que tenham uma aplicação cliente MQTT em execução. Por exemplo, podem ser um software em um PC, um conector ou uma API para o software, uma aplicação em um telefone ou código de aplicação em um CLP.
2.1. Digite o nome do tópico (“topicName_input”) para assinar ou cancelar a assinatura.
2.2. Defina a qualidade de serviço (“subQos”) para a assinatura. Por padrão, use “0”, pois consome menos largura de banda.
2.3. Defina “subscribe” ou “unsubscribe” como TRUE para assinar ou cancelar a assinatura do tópico.
2.4. Esses bits detectam a borda ascendente; portanto, você pode redefini-los imediatamente.
2.5. Observe que resultData_Out de RA_MQTT_CONNECT_v2 também é copiado para respondData_In.
Observação:
Recomenda-se usar apenas uma (1) instância de cada UDFB.
Passo 3:
Publicação de um tópico
Quando um tópico com dados é publicado em um agente MQTT, o agente encaminha os dados desse tópico para todos os clientes inscritos nele. O cliente que publica a mensagem não sabe se algum nó remoto está recebendo o tópico, pois essa responsabilidade é do agente, dependendo do nível da QoS. Os tópicos podem ser publicados ou assinados em qualquer nível de QoS, mas serão entregues apenas no menor nível de QoS.
3.1. Insira o tópico para publicar em “pubTopic_In”.
3.2. Insira os dados para o tópico em “pubData_In”.
3.3. Defina a qualidade de serviço em “pubQoS”. Por padrão, use “0”, pois consome menos largura de banda.
3.4. Defina “publish” como TRUE para publicar o tópico com os dados. Ele será automaticamente definido como FALSE quando “publishDN” ficar TRUE.
3.5. Observe que resultData_Out de RA_MQTT_CONNECT_v2 também é copiado para respondData_In.
Passo 4
Recebimento de mensagens de tópicos assinados
O agente MQTT lida com todas as assinaturas de tópicos. Ele envia os dados de qualquer tópico publicado para os clientes assinantes. Quando um tópico é recebido pelo cliente MQTT do Micro800, ele preenche as variáveis de matriz “TopicName” e “TopicData” no UDFB RA_MQTT_CONNECT_v2. Os dados são armazenados na ordem de primeiro a entrar/primeiro a sair, por isso é crucial processar os dados antes que eles sejam substituídos.
Passo 5
Assinatura de uma matriz de tópicos
MQTT_Subscriptions é um programa de texto estruturado opcional que funciona em conjunto com o programa MQTT_Client. Ele permite assinar uma matriz “Subscriptions” de tópicos pré-configurados. Ajuste a dimensão da matriz da variável global “Subscriptions” para o tamanho desejado e modifique o valor inicial da variável local “maxSubscriptions” para corresponder ao tamanho da matriz (o padrão é 10). “Subscriptions” é uma matriz de tipo de dados definido pelo usuário (UDT) que compreende o tópico MQTT “Name”, o tópico mais recente “Data”, a data e hora reais de quando o tópico mais recente “Data” foi recebido e um indicador “Subscribed”. Insira os nomes de tópicos desejados para assinar como valores iniciais para Subscriptions[i]. Name antes de fazer o download do projeto para o controlador.
A variável local “enableSubcriptions” deve ser TRUE para habilitar essa funcionalidade.
Passo 6
Publicação automática de uma matriz de tópicos
MQTT_Publications é um programa de texto estruturado opcional que funciona em conjunto com o programa MQTT_Client. Ele permite publicar toda uma matriz de “Publications” de tópicos pré-configurados. Ajuste a dimensão da matriz da variável global “Publications” para o tamanho desejado e modifique o valor inicial da variável local “maxPublications” para corresponder ao tamanho da matriz (o padrão é 10). “Publications” é uma matriz de tipo de dados definido pelo usuário (UDT) que compreende o tópico MQTT “Name”, o tópico mais recente “Value”, o valor do tópico anterior “Valueprev” e a data e hora reais de quando o tópico mais recente “Value” foi publicado. Insira os nomes de tópicos desejados para publicar como valores iniciais para Publications[i]. Name antes de fazer o download do projeto para o controlador.
Defina a variável local “ChangeOfState” como TRUE para publicar qualquer valor que mude como exceção. Defina a variável local “Interval” como TRUE e “intervalTime” como um valor diferente de zero para publicar todos os valores atuais que não são nulos ('') em intervalos de tempo. Normalmente, alguém escolheria “ChangeOfState” ou “Interval” como o método para publicar atualizações de tópicos. Para uma atualização única, defina a variável local “OnDemanD” como TRUE para publicar todos os valores atuais que não sejam nulos (''). “OnDemanD” é definido como FALSE depois que toda a matriz “Publications” é publicada. A variável local “enablePublications” deve ser definida como TRUE para ativar essa funcionalidade do programa.