Neste tutorial vamos aprender como fazer o uso da biblioteca LibMQTT na série Nexto.
Para o desenvolvimento deste tutorial foi utilizado o CLP XP 340 da série Nexto Xpress, o software MasterTool na versão 3.20 e o CMD do Windows (Para realizar testes com o broker Mosquitto). Utilizamos como Host nosso próprio computador, mas é possível utilizar diversas plataformas destinadas à execução de aplicativos e serviços, baseada nos conceitos da computação em nuvem, como o Alibaba, Azure, etc...
O protocolo MQTT está disponível para toda Série Nexto, a partir das versões de firmware listadas abaixo.
• Série XP3xx: 1.8.11.0;
• Série NX3003 – NX3005: 1.8.11.0;
• Série NX3010 – NX3030: 1.8.3.0.
Obs1.: Para execução deste tutorial, é necessário ter em mãos um CLP da série Nexto e que o mesmo esteja com seu firmware atualizado. A sua versão do MasterTool da mesma forma deverá estar atualizada, sendo igual a versão 3.20 ou superior.
Obs2.: É importante ressaltar que o protocolo MQTT não funciona no modo Simulação. Por isso a necessidade de estar com o CLP conectado para realizar a comunicação.
Obs3.: O presente tutorial foi validado até a versão 1.6.12 do broker mosquitto, que pode ser baixado aqui.
O projeto usado neste tutorial está disponível para download com o nome Project Archive MQTT. É recomendado que realize o download do mesmo e leia atentamente os comentários, pois neles estão descritos detalhadamente cada parâmetro usado no tutorial.
Também, disponível nos anexos deste tutorial, há um projeto com o nome Function Block MQTT. Neste projeto é realizado assinaturas e publicações de tópicos MQTT por meio de Function Block, facilitando a visualização do usuário.
Para entender mais sobre o que é MQTT, você pode conferir o artigo que escrevemos sobre o assunto e também assistir nossos Webinars:
https://www.altus.com.br/post/301/mqtt-aplicado-a-sistemas-iot
Neste tutorial vamos fazer com que o PLC assine um tópico e depois publique no mesmo tópico.
1- Primeiramente é necessário ativar a biblioteca LibMQTT e logo após criar uma POU Chamada MQTT_START do tipo texto estruturado, onde vamos criar variáveis para satisfazer as condições do bloco MQTT_CLIENT.
Na PRG MQTT_START, vamos declarar as seguintes variáveis:
Obs.: Não se esqueça de substituir o Hostname (‘xxx.xxx.xx.xxx’) pelo IP do seu computador.
Na estrutura da MQTT_START (PRG), vamos ligar as variáveis criadas com as variáveis do bloco.
As variáveis que devem ser declaradas em uma GVL são:
2- Agora vamos criar uma POU para publicar em alguns tópicos, no nosso tutorial a nomeamos como MQTT_PUBLISHER e esta será em texto estruturado assim como a outra.
Nesta POU, vamos declarar as seguintes variáveis:
E na sua estrutura, vamos definir os tópicos em que desejamos escrever. Abaixo temos dois exemplos de códigos usados para publicar as informações.
3- Agora devemos criar a POU que irá ler os tópicos, no nosso caso a nomeamos como MQTT_SUBSCRIBER e a mesma deve estar na linguagem ST.
Nesta POU, vamos declarar as seguintes variáveis:
Da mesma forma como definimos a estrutura de escrita, vamos definir a de leitura de tópicos conforme abaixo:
Devemos também definir em MQTTClient_Parameters a quantidade de tópicos em Subs e em Pubs que estamos utilizando.
Por último, vamos chamar as POU’s na UserPRG.
Realizados os passos descritos acima, você poderá realizar download do projeto no CP.
Para testar o projeto podemos utilizar o broker mosquitto, usando o CMD do Windows. O mosquitto é um broker gratuito e pode ser facilmente instalado.
Abra a pasta do mosquito localizada no diretório (C:), e digite o comando CMD na barra de diretórios e pressione ENTER.
Abra três janelas prompt de comando.
Na primeira execute o mosquitto.
Para executar o mosquito:
C:\Program Files\mosquitto>mosquitto –v
Na segunda você deve receber as mensagens:
C:\Program Files\mosquitto>mosquitto_sub –h localhost –p 1883 –t "Altus2/Q0"
• Sub: Receber
• -h: Servidor local
• -p: porta 1883
• -t: Tópico de leitura
Na terceira você irá publicar as mensagens:
C:\Program Files\mosquitto>mosquitto_pub –h localhost –p 1883 –t "Altus2/Q0" –m "00010001"
• Pub: Publicar
• -h: Servidor local
• -p: porta 1883
• -t: Tópico de escrita
• -m: mensagem. (Deve ser digitada entre aspas duplas "00011100").
Comentários
0 comentário
Por favor, entre para comentar.