TUTORIAL: Dashboard com dados de uma CPU S7 utilizando comunicação OPC UA
Olá a todos, primeira postagem de
2019, é um tutorial que mostra a comunicação simples, sem considerar aspectos
de segurança e login entre uma CPU Siemens S7 e uma plataforma IoT utilizando o
protocolo OPC UA e Node-RED. Para isso, os passos são:
1
– Configuração da CPU como OPC UA Server;
2
– Utilização do Node-RED como OPC UA Client;
3
– Geração de UI (User Interface) para exibição dos dados em tempo real;
4
– Log das informações em arquivo .csv (comma separated values).
Neste exemplo utilizei uma CPU
Siemens S7. Nesta CPU criei alguns blocos FB simples para gerar sinais nos
formatos onda dente de serra, senoide e onda quadrada. Apenas para ilustração,
segue a programação do bloco gerador do sinal dente de serra:
Para
exibição no computador, o valor gerado é dado pela tag %MW12
“denteDeSerraValue”, que é o “Current Value” do bloco CTU (counter up), que é
um contador simples para valores crescentes.
Com os geradores de sinal
funcionando, o próximo passo é configurar a CPU S7 para enviar sinais via OPC
UA. Para isso, basta acessar a opção “Device Configuration” da CPU e ativar o
uso do server OPC UA. Simples assim!
Em
seguida, configurar o “flow” Node-RED para leitura dos dados da CPU. Como já
utilizei anteriormente, o Node-RED é uma ferramenta de programação para
conectar dispositivos de hardware, APIs e serviços online de maneiras novas,
interessantes e bastante simples. É uma ferramenta bastante utilizada para IoT disponível
para download através da página oficial: https://nodered.org.
Nesta página é possível encontrar as instruções para instalação, documentação,
exemplos de “flows” e muito mais.
O programa para comunicação e
exibição dos dados tem a seguinte cara:
O
que este “flow” faz é enviar um endereço para o nó OPC UA Client, obter uma
resposta e fazer um log das informações em um dashboard e também em um arquivo .csv.
O
nó inject foi programado conforme abaixo, onde pode-se observar que o endereço
OPC UA foi colocado no tópico da mensagem, cujo payload é uma “string” sem
valor algum.
O nó OPC UA Client foi programado
conforme abaixo, onde pode-se observar o endereço definido na CPU. É importante
que o PING entre a plataforma rodando Node-RED e a CPU esteja ocorrendo sem
problemas. Na ação, definir o modo “SUBESCRIBE” para passar a receber as
informações da CPU. O intervalo de tempo, defini como a cada 1 segundo.
Para gerar os gráficos, segue nó simples
do módulo dashboard.
Ao realizar o “deploy”, injetar os
valores dos três gráficos e habilitar a janela de debug, é possível verificar o
nó OPC UA cliente com status “active subscribed” que nos informa que o node-RED
está recebendo as informações da CPU. Na aba debug é possível verificar os
valores sendo lindo e atualizados a cada segundo, conforme abaixo:
Com
estas informações é possível obter o gráfico abaixo, que mostra em tempo real o
valor da tag %MW12 “denteDeSerraValue” configurada no CLP.
Para salvar as informações lidas no
CLP, utilizei um nó para salvar as informações em um arquivo no formato csv
(comma separated values) que podem facilmente ser utilizados posteriormente.
Para que os valores possam ser
utilizados posteriormente, achei útil colocar a data do registro, para isso
criei um script simples em javascript. O arquivo csv então possui a estrutura: <data>,
<valor>. No “file node”, configurei apenas o caminho onde gostaria de salvar
as informações e o nome do arquivo.
No
arquivo gerado, cada valor salvo vem acompanhado da data do registro.
O
resultado final ficou:
É
isso aí, espero que seja útil e tenham gostado. Estou sempre aberta para
compartilhar ideias e conhecimentos sobre indústria 4.0, IoT e tecnologia de
forma geral, pois juntos vamos mais longe sempre! Até a próxima e obrigada pela
atenção!












conmoguda Connie Jorgensen link
ResponderExcluirketharfeiprog
tiraXcom_pe_1986 Jonathan Pistono Microsoft Office 2010 (2021.04) Standart / Pro Plus
ResponderExcluirdownload now
JetBrains DataGrip 2022.2.1
Tenorshare iCareFone WhatsApp Transfer 3.0.0.173
suetrobcarsand