Downloads
MicroLink MQTT é um conjunto transformador de blocos de funções definidos pelo usuário (funções definidas pelo usuário) para controladores Micro800, permitindo comunicação MQTT integrada com qualquer broker 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 personalização com configurações para IDs MQTT exclusivos, endereços IP de broker/servidor, nomes de usuário, senhas e sua qualidade de serviço (QoS) escolhida.
Destinado ao uso com inversores de componente PowerFlex 523 e 525 da Rockwell Automation.
Este código pode ser usado com o seguinte equipamento:
- PowerFlex 523
- PowerFlex 525
- Micro850
- Micro870
- PanelView 800d
Para que serve isso?
MicroLink MQTT é um conjunto de funções definidas pelo usuário projetado para integração total com controladores Micro800 da Rockwell Automation. Ele tem como objetivo aprimorar as capacidades desses controladores, permitindo a comunicação MQTT com qualquer broker MQTT.
Essa solução é especialmente útil para casos de uso de controle remoto e no campo industrial, onde a troca de dados e a eficiência da comunicação são críticas. MicroLink MQTT fornece três blocos de funções para estabelecer conexões, assinar tópicos específicos e publicar dados.
Com MicroLink MQTT, os usuários podem facilmente estabelecer uma conexão com um broker MQTT, assinar os dados de que precisam e publicar dados de volta ao broker. Ele oferece opções de alta personalização para IDs MQTT, endereços IP de broker/servidor, nomes de usuário, senhas e sua qualidade de serviço (QoS) escolhida, garantindo comunicação de dados eficiente e segura.
Portanto, seja você um operador industrial buscando otimizar a comunicação de dados ou um programador que precisa integrar troca eficiente de dados em suas aplicações, MicroLink MQTT pode ser a solução perfeita.
Recursos gerais
Nosso pacote fornece três principais blocos de funções definidos pelo usuário:
- RA_MQTT_CONNECT_v2: Dê um passo para o futuro com nosso bloco de funções de conexão. Ele permite que seu controlador Micro800 estabeleça uma conexão com um broker MQTT, preparando o cenário para uma troca de dados robusta.
- RA_MQTT_SUBSCRIBE_v2: Aproveite nosso bloco de funções de assinatura para permanecer conectado aos dados de que você precisa. Personalize suas assinaturas para tópicos específicos do broker MQTT e mantenha sempre seus dados operacionais ricos e atualizados.
- RA_MQTT_PUBLISH_v2: Assuma o controle com nosso bloco de funções de publicação. Transmita dados com precisão publicando tópicos no broker MQTT, tornando suas operações orientadas por dados uma referência para outros seguirem.
Cada bloco de funções é altamente personalizável, permitindo que você especifique IDs MQTT exclusivos, endereços IP de broker/servidor, nomes de usuário, senhas e sua 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 a Micro820, Micro850 e Micro870
- Dependente de broker MQTT de terceiros
Como posso fazer isso funcionar?
A arquitetura implica o uso de hardware Micro820, Micro850, Micro870. E este é o software necessário:
- Software Connected Components Workbench, versão 21 ou superior.
- O firmware do equipamento utilizado deve ser compatível com a versão do Software Connected Components Workbench.
- Funções definidas pelo usuário:
- RA_MQTT_CONNECT_v2
- RA_MQTT_SUBSCRIBE_v2
- RA_MQTT_PUBLISH_v2
Conhecimento
É altamente recomendada uma compreensão básica da programação ladder e da configuração do sistema usando o Software Connected Components Workbench. Além disso, a familiaridade com os protocolos MQTT seria benéfica.
Observe: Você precisará concordar com os Termos & Condições para cada download.
Precisa de ajuda?
Se precisar de ajuda com uma aplicação ou tiver feedback do Centro de Inovação, entre em contato conosco.
Guia de instalação
Step 1:
Estabelecendo configurações de conexão para conectar-se ou desconectar-se de um broker MQTT
Um broker MQTT serve essencialmente como um servidor para gerenciar mensagens MQTT. Para conectar-se a um broker MQTT, devemos inserir o endereço IP e o número da porta do broker no UDFB RA_MQTT_CONNECT_v2. O broker pode estar hospedado em seu computador (nesse caso, você precisaria instalar e operar um broker 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 broker MQTT ao seu UDFB RA_MQTT_CONNECT_v2
Este exemplo é para conectar-se ao broker test.mosquitto.org na nuvem. Uma alternativa à inserção direta do endereço IP é habilitar o serviço de nomes de domínio (defina ‘EnableDNS’ como TRUE) após inserir o URL do broker 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 ‘userPass’ se seu broker MQTT exigir. (Muitos brokers 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 necessários.)
1.3 Defina ‘EnableMQTT’ como TRUE para conectar-se ao broker MQTT.
Observação:
Há alguns pontos a serem considerados para garantir uma conexão bem-sucedida. O MQTTsocketSts deve eventualmente exibir 9. Se mostrar 7 e depois retornar para 0, isso pode indicar que seu broker 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, o servidor responde com um reconhecimento. O reconhecimento é indicado pelo 1º byte, que neste caso é ‘32’.
Outra resposta frequente que você receberá é um reconhecimento de ping, denotado por ‘208’ no 1º byte dos dados retornados. O comando de ping é enviado ao broker remoto em intervalos de 50 s. Esse intervalo é codificado no UDFB, mas pode ser modificado se necessário.
Se os dados de retorno forem diferentes de 32 ou 208 após a conexão, isso pode sugerir que o cliente assinou um tópico que foi transmitido enquanto estava offline. A mensagem é retida e enviada ao cliente quando ele volta a ficar online. Se isso ocorrer, processe a mensagem e reinicialize a conexão.
1.4 Se você quiser configurar para LWT, será necessário acessar estes parâmetros no UDFB:
322| willTopic := willTopic_In; 323| willData := willData_In;
‘willTopic_In’ é onde você insere o tópico de Última Vontade para a conexão.
‘willData_In’ é onde você insere a mensagem de testamento para a conexão.
O broker MQTT publicará o testamento para todos os clientes que assinarem o tópico de Última Vontade quando o cliente for desconectado abruptamente.
1.5 Se você quiser se desconectar de forma graciosa do servidor (sem acionar o LWT), defina ‘disconnect_Cmd’ como TRUE.
Este é um bit acionado por borda de subida, portanto, você pode redefini-lo imediatamente.
Step 2
Inscrição ou cancelamento de inscrição em um tópico
O protocolo MQTT troca dados por meio dos métodos de inscrição (subscribe) e publicação (publish). Os clientes se comunicam diretamente apenas com o broker MQTT. Os clientes que se inscrevem em um tópico receberão uma mensagem do broker quando outro cliente publicar nesse tópico. Os clientes podem ser de qualquer forma, desde que tenham um aplicativo cliente MQTT em execução. Por exemplo, pode ser um software em um PC, um conector ou API para o software, um aplicativo em um telefone ou código de aplicativo em um CLP.
2.1. Insira o nome do tópico (‘topicName_input’) para se inscrever ou cancelar a inscrição.
2.2. Defina a qualidade de serviço (‘subQoS’) para a inscrição. Por padrão, use ‘0’, pois consome a menor largura de banda.
2.3. Defina ‘subscribe’ ou ‘unsubscribe’ como TRUE para se inscrever ou cancelar a inscrição no tópico.
2.4. Esses bits detectam a borda ascendente, portanto, você pode redefini-los imediatamente.
2.5 Observe que o resultData_Out do RA_MQTT_CONNECT_v2 também é copiado para o respondData_In.
Observação:
É recomendado usar apenas 1 instância de cada funções definido pelo usuário.
Etapa 3:
Publicação de um tópico
Quando um tópico com dados é publicado em um broker MQTT, o broker encaminha esses dados do tópico para todos os clientes inscritos nele. O cliente que publica a mensagem não sabe se algum nó remoto recebe o tópico, pois essa responsabilidade cabe ao broker, dependendo do nível de qualidade de serviço. Os tópicos podem ser publicados ou inscritos em qualquer nível de qualidade de serviço, mas só serão entregues no nível mais baixo de qualidade de serviço.
3.1. Insira o tópico a ser publicado 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 a menor largura de banda.
3.4. Defina ‘publish’ como TRUE para publicar o tópico com seus dados. Ele será automaticamente definido como FALSE quando ‘publishDN’ se tornar TRUE.
3.5. Observe que o resultData_Out de RA_MQTT_CONNECT_v2 também é copiado para respondData_In.
Step 4
Obtenção de mensagens de tópicos inscritos
O broker MQTT lida com todas as inscrições de tópicos. Ele envia os dados de qualquer tópico publicado para os clientes que estão inscritos nele. Quando um tópico é recebido pelo cliente Micro800 MQTT, ele preenche as variáveis de vetor 'TopicName' e 'TopicData' na funções definido pelo usuário RA_MQTT_CONNECT_v2. Os dados são armazenados em ordem Primeiro a Entrar/Primeiro a Sair, portanto, é crucial processar os dados antes que sejam sobrescritos.
Step 5
Inscrição em um vetor de tópicos
MQTT_Subscriptions é um programa opcional de Texto Estruturado que funciona em conjunto com o programa MQTT_Client. Ele permite que você se inscreva em um vetor 'Subscriptions' de tópicos pré-configurados. Ajuste a dimensão do vetor da variável global 'Subscriptions' para o tamanho desejado e modifique o valor inicial da variável local 'maxSubscriptions' para corresponder ao tamanho do vetor (padrão = 10). 'Subscriptions' é um vetor de tipo de dados definido pelo usuário (UDT) que compreende o tópico MQTT 'Name', o dado mais recente do tópico 'Data', um registro de data e hora baseado no valor do relógio em tempo real quando o dado mais recente do tópico 'Data' foi recebido e um indicador 'Subscribed'. Insira os nomes dos tópicos desejados para se inscrever como valores iniciais em 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.
Step 6
Publicação automática de um vetor de tópicos
MQTT_Publications é um programa opcional em Texto Estruturado que funciona em conjunto com o programa MQTT_Client. Ele permite publicar um vetor inteiro 'Publications' de tópicos pré-configurados. Ajuste a dimensão do vetor da variável global 'Publications' para o tamanho desejado e modifique o valor inicial da variável local 'maxPublications' para corresponder ao tamanho do vetor (padrão = 10). 'Publications' é um vetor de Tipo de Dados Definido pelo Usuário (UDT) que compreende o tópico MQTT 'Name', o tópico mais recente 'Value', o valor anterior do tópico 'Valueprev' e um registro de data e hora baseado no valor do relógio em tempo real quando o tópico mais recente 'Value' foi publicado. Insira os nomes dos tópicos desejados para publicar como valores iniciais em 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 em uma base de exceção. Defina a variável local 'Interval' como TRUE e 'intervalTime' como um valor não zero para publicar todos os valores atuais que não são nulos ('') em uma base de intervalo de tempo. Normalmente, escolhe-se '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 são nulos (''). 'OnDemand' é definido como FALSE assim que todo o vetor 'Publications' tiver sido publicado. A variável local 'enablePublications' deve ser definida como TRUE para habilitar esta funcionalidade do programa.