3 Comentários

Criação de sistemas supervisórios dinâmicos com ScadaBR

dados por e-mail com ScadaBR

Qual é o objetivo deste artigo?

Este artigo corresponde ao terceiro conteúdo da série direcionada para utilização do ScadaBR em projetos de automação. Nesta publicação será abordado qual deve ser o procedimento para realizar o monitoramento de variáveis em sistemas supervisórios e apresentá-las por meio de gráficos atualizados constantemente. Através deste material, o EMBARCADOS pretende dar continuidade aos conceitos já apresentados e levar o leitor a um nível de conhecimento maior no que diz respeito à manipulação de sistemas envolvendo o protocolo Modbus e o ScadaBR.

Arduino

Conhecendo os componentes do projeto

Primeiramente, o sistema alvo deste artigo consiste simplesmente na utilização de um Arduino UNO além de um sensor de temperatura TMP36 (de acordo com a especificação do Proteus/ISIS, este pode realizar medições numa faixa de -40 °C até 125 °C).

variáveis em sistemas supervisórios - esquemático
Figura 1 – Diagrama esquemático de ligações

Desenvolvimento do código

No decorrer desta seção serão explicados todos os passos utilizados para o desenvolvimento do projeto proposto, isto é, o código será comentado de modo que todo conhecimento aplicado seja facilmente compreendido.

Num primeiro momento deve-se incluir as bibliotecas necessárias para que o código a ser inserido no Arduino UNO funcione adequadamente. Neste artigo utilizaremos somente a biblioteca desejada para estabelecer a comunicação entre o Arduino UNO e o SCADABR através do protocolo MODBUS. Esta pode ser encontrada aqui.

O código a ser utilizado foi derivado diretamente do exemplo disponível, juntamente com a biblioteca em questão. Portanto, caso o leitor queira, pode apenas modificar o exemplo citado.

Neste momento será definido o registrador holding que será utilizado no SCADABR. Caso o leitor tenha alguma dúvida neste ponto, insistimos em pedir para o leitor consultar o link disponibilizado no início deste artigo referente ao nosso primeiro artigo. Nele estão contidas todas as informações para que o leitor compreenda cada um dos pontos deste desenvolvimento de código.

Os registrador holding TEMP_TMP36 é responsável por conter os valores referentes às leituras realizadas pelo sensor de temperatura TMP36.

Na função setup() utiliza-se a função modbus_configure() para determinar os parâmetros necessários para estabelecer a conexão via comunicação serial utilizando o protocolo MODBUS. Os parâmetros “mais importantes”  são o segundo, o terceiro e o quarto, que dizem respeito à taxa de transmissão de dados, o formato do pacote utilizado no protocolo MODBUS . Note que estes três argumentos citados devem estar em conformidade com as configurações do SCADABR. Em seguida temos a função modbus_update_comms() que também é responsável pela comunicação via MODBUS.

O conteúdo da função loop() começa com a função modbus_update() utilizada para a atualização dos valores dos registradores citados anteriormente. Em seguida, realiza-se a leitura da informação presentes na porta de entrada analógica A0, onde está ligado o sensor de temperatura citado. Observe que neste momento poderia ser introduzido o código para realizar as conversões necessárias no valor adquirido pelo sensor e então apresentar o valor correto da medição de temperatura, porém este procedimento será realizado dentro do SCADABR.

SCADABR

Neste item serão abordados os passos necessários para realizar interação do Arduino UNO com o SCADABR. Os procedimentos feitos posteriormente neste artigo são mais avançados em termos de conhecimento da ferramenta do que nos artigos anteriores, portanto, caso o leitor não esteja familiarizado com o conteúdo mostrado em sequência, recomenda-se que estude como foram realizadas as ações necessárias para tal objetivo em nossos artigos anteriores.

Criação dos Data points

Primeiramente é necessário produzir o Data source referente ao Arduino UNO utilizando a opção modbus serial como modo de conexão e em seguida criar o Data point que será utilizado no programa. Este foi nomeado por TMP36 e está associado ao registrador holding declarado no código, definido como TEMP_TMP36

variáveis em sistemas supervisórios - data point criado
Figura 2 – Data point criado

Neste artigo, além da temperatura atual, serão apresentados também os valores de temperatura média, máxima e mínima, de modo que para armazenar estas informações é necessário que sejam criados alguns Data Points virtuais. Para realizar este procedimento deve-se criar outro Data source no mesmo lugar onde foi criado o Data source responsável pela interação do Arduino UNO com o SCADABR via MODBUS e escolher a opção Data Source Meta (observe que o Data Source Meta criado possui o nome Auxiliares).

variáveis em sistemas supervisórios - datasource
Figura 3 – Data sources criados

Ao abrir a tela de configurações deste Data source após a criação do mesmo, o desenvolvedor deve adicionar novos Data points. Note que serão criados quatro Data points para conter as informações citadas anteriormente. O primeiro a ser criado é identificado pelo nome Temperatura atual e possui como tipo de dado a opção numérico (repare esta configuração deve ser a mesma para os quatro Data points). Em seguida deve-se escrever o script responsável pela conversão do valor bruto (presente no Data point TMP36) adquirido por meio do sensor para um valor palpável de temperatura em graus Celsius. Para isso, o leitor deve selecionar o Data point TMP36 na lista de seleção do campo Contexto do Script e inserir o código para que o SCADABR leia o Data point TMP36 e retorne o valor contido neste (referente à entrada analógica) porém modificado para apresentar a medida correta e na unidade conveniente dentro do novo Data point criado, este pode ser conferido aqui.

variáveis em sistemas supervisórios - temperatura atual
Figura 4 – Configuração do Data point Temperatura atual

O processo de criação dos Data points restantes é idêntico ao realizado anteriormente, no entanto deve-se nomeá-los adequadamente (Temperatura máxima, Temperatura mínima e Temperatura média) e selecionar o Data point Temperatura atual (criado no passo anterior) no campo Contexto do Script para então, a partir deste calcular os valores máximo, mínimo e a média da grandeza em questão em um certo espaço de tempo. O segundo Data point é o responsável por guardar o valor máximo que a temperatura atingiu em um determinado intervalo de tempo, isto pode ser feito através do script, onde pede-se para este retornar para o Data point Temperatura máxima o valor máximo que o Data point Temperatura atual atingiu nas ultimas 12 horas, por exemplo. O mesmo deve ser feito com os Data points Temperatura mínima e Temperatura média no entanto a palavra maximum deve ser substituída por minimum e average respectivamente.

variáveis em sistemas supervisórios - temperatura máxima
Figura 5 – Configurações do Data point Temperatura máxima

Após os procedimentos anteriores , a lista de Data points criados deve ser semelhante a esta:

variáveis em sistemas supervisórios - datapoints criados
Figura 6 – Data points virtuais criados

Antes da criação dos gráficos deve-se realizar mais algumas configurações. Primeiramente deve-se ir nas configurações de cada um dos Data points criados, isto pode ser feito através do Watchlist (primeiro ícone da esquerda na barra de ferramentas) e em seguida deve-se clicar no ícone ao lado do nome do Data point em questão, conforme a figura abaixo.

variáveis em sistemas supervisórios - mudando propriedades dos data points virtuais
Figura 7 – Procedimento para mudar as propriedades dos Data points virtuais

O item que será utilizado como exemplo é o Data point Temperatura atual, porém as alterações realizadas aqui são as mesmas para todos os outros Data points. Primeiramente deve-se selecionar a opção Todos os dados no campo Tipo do registro, pois dessa maneira todos os dados serão registrados a cada atualização, mesmo que os valores “atuais” sejam iguais aos valores “anteriores” (assim os gráficos serão plotados continuamente e não somente quando houver uma mudança no valor corrente).

Em seguida é necessário que o leitor encontre a área relacionada às propriedades de renderização de texto e selecione a opção analógico no campo tipo. O campo formato diz respeito ao modo como os valores serão apresentados, portanto, ao utilizarmos 0.00 neste campo, estamos determinando que o valor apresentado por este Data point deve ter duas casas decimais (caso isto não seja feito, o valor pode apresentar uma quantidade grande de casas decimais), enquanto o campo sufixo pode ser utilizado para incluir a unidade da grandeza em questão. 

variáveis em sistemas supervisórios - propriedades dos data points virtuais
Figura 8 – Propriedades dos Data points virtuais

Para realizar a criação de um sistema supervisório deve-se inicialmente proceder conforme o artigo anterior para abrir o ambiente de desenvolvimento de representação gráfica, no entanto para adicionar um gráfico é necessário selecionar a opção gráfico na lista de componentes.

variáveis em sistemas supervisórios - criando gráfico
Figura 9 – Criando um gráfico para o sistema supervisório

A estrutura apresentada neste artigo consiste em um gráfico mostrando a evolução da temperatura atual e temperatura média além dos valores numéricos das quatro variáveis citadas (esta decisão foi tomada para não poluir o gráfico e consequentemente complicar o entendimento do leitor). Após adicionar o gráfico deve-se clicar no ícone responsável por apresentar as configurações do mesmo e então preencher os parâmetros conforme desejo do leitor.

variáveis em sistemas supervisórios - propriedades do gráfico
Figura 10 – Definindo propriedades do gráfico

Após inserir o gráfico no supervisório, pode-se adicionar as variáveis desejadas através da opção Data point simples existente na lista de seleção de componentes da área de representação gráfica além de elementos textuais selecionando a opção HTML conforme realizado no artigo anterior. Confira o resultado de uma simples aplicação possível de ser realizada utilizando este artigo que preparamos para você:

variáveis em sistemas supervisórios - resultado
Figura 11 – Resultado

Nós do EMBARCADOS esperamos que você tenha gostado deste conteúdo. Sinta-se à vontade para sugestões, críticas ou elogios. Deixe seu comentário abaixo.

Outros artigos da série

<< Criação de sistemas supervisórios simples com ScadaBR e ArduinoGeração de relatórios com ScadaBr >>
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Arduino » Criação de sistemas supervisórios dinâmicos com ScadaBR
Comentários:
Notificações
Notificar
guest
3 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Diego
Diego
19/02/2018 21:06

Olá Daniel. Excelente artigo. Seria bom se o manual do ScadaBr tivesse exemplos assim Tens alguma dica de adicionar um campo para inserção de valores, que me permita estabelecer o valor máximo e mínimo admissível? A função Data Point Simples é muito limitada…

Diego
Diego
Reply to  Daniel Madeira
04/03/2018 21:03

Beleza Daniel, fico no aguardo. Abraço

Talvez você goste:

Séries



Outros da Série

Menu

WEBINAR
 
Porque o RTOS não faz o que eu quero?

Data: 28/10 às 19:30h - Apoio: Mouser Electronics
 
INSCREVA-SE AGORA »



 
close-link