Monitoramento de variáveis de processo com Elipse SCADA e Arduino

Elipse Scada acionamentos simples processo com Elipse SCADA
Este post faz parte da série Arduino e Elipse Scada. Leia também os outros posts da série:

Qual é o objetivo deste artigo?

 

Este artigo corresponde ao terceiro material da série sobre o desenvolvimento de projetos de automação utilizando o Arduino UNO juntamente com o Elipse SCADA. Neste conteúdo será apresentada uma maneira bem simples de monitorar as variáveis de um determinado processo com Elipse SCADA em tempo real, bem como mostrar como deve-se fazer para gerenciar os alarmes que eventualmente possam existir. Ao final deste artigo o leitor conseguirá criar a aplicação exibida na figura 1.

 

Resultado esperado com o Elipse Scada.
Figura 1 – Resultado esperado.

Primeiro passo: Definição do hardware que será utilizado

O hardware que será utilizado para demonstrar os conceitos propostos no início deste artigo será composto por um Arduino UNO, um sensor de temperatura TMP36 e quatro leds, juntamente com os seus respectivos resistores de acionamento. O objetivo do projeto desenvolvido neste artigo consiste em monitorar o comportamento da temperatura e acionar alarmes caso os valores correntes extrapolem os limites estabelecidos (existem quatro limites definidos: temperatura muito alta, temperatura alta, temperatura baixa, temperatura muito baixa) e consequentemente, acender os leds de acordo com o nível de desvio dos limites em questão (1 led para alta/baixa, 2 leds para muito alta/muito baixa).

Hardware utilizado com o Elipse Scada.
Figura 2 – Hardware utilizado.

Segundo passo: Elaboração do código que será inserido no Arduino UNO

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.

Em um 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 Elipse SCADA através do protocolo Modbus, que pode ser encontrada aqui (baixar o arquivo SimpleModbusSlaveV10.zip).

Em seguida, realizou-se o uso da diretiva #define para associarmos as palavras que definem os componentes em questão aos seus respectivos pinos do Arduino UNO. O hardware utilizado possui quatro leds, cada um responsável por explicitar a ocorrência de um tipo de alarme entre os citados anteriormente.

Posteriormente, pode-se observar um bloco chamado enum, neste estarão escritos os registradores que conterão as informações utilizadas na leitura de informações e  acionamento de dispositivos. Estes são denominados Registradores Holding e para declará-los, basta escrever seus nomes seguidamente no código.

É importante ressaltar que após as declarações dos respectivos Registradores Holding, deve-se escrever HOLDING_REGS_SIZE (informação utilizada pela biblioteca para identificar a quantidade de Registradores Holding que estão sendo utilizados) e em seguida, cria-se a variável holdingRegs para a manipulação dos registradores em questão.

Na função setup(), utiliza-se primeiramente, 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 para este artigo 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 e a identificação do escravo, respectivamente. Note que estes três argumentos citados devem estar em conformidade com as configurações do Elipse SCADA

Em seguida, temos a função modbus_update_comms(), que também é responsável pela comunicação via Modbus, além da definição dos modos de operação dos pinos responsáveis pelo acionamento dos leds.

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 das informações presentes na porta de entrada analógica A0 e posteriormente realiza-se o envio de sinais de nível alto ou baixo, conforme o valor de estado dos leds (que serão determinados dentro da programação do Elipse SCADA).

Terceiro passo: Escolha do driver e criação da(s) Tag(s) necessárias

Primeiramente, deve-se selecionar o driver apropriado para a aplicação que está sendo realizada. O driver em questão é o dado pelo arquivo Modbus.dll (caso o leitor tenha dúvidas sobre como proceder para adicionar este elemento corretamente, basta ver o passo a passo apresentado no primeiro artigo da série).

Da mesma forma que o driver foi inserido, recomenda-se novamente a leitura do primeiro artigo para conferir o procedimento para criação das tags a serem inseridas. Nesta publicação foram criadas 5 tags do tipo PLC, sendo uma para cada Registrador Holding existente no código.

Observe que de fato, uma dessas tags irá conter o valor do Registrador Holding responsável por obter a informação proveniente do sensor de temperatura. Entretanto, este valor precisa ser tratado para mostrar corretamente resultado em termos de temperatura. Para isso, deve-se criar uma tag do tipo expressão para então, por meio de uma expressão matemática, fazer com que esta armazene o valor corrigido proveniente da tag diretamente ligada ao Registrador Holding.

Adicionando expressão matemática na tag expressão.
Figura 3 – Adicionando expressão matemática na tag expressão.

Após a realização do procedimento anterior, deve-se abrir a aba Alarmes para definir os limites que, caso sejam ultrapassados, farão com que os alarmes sejam acionados. Os limites estabelecidos são:

  • LoLo – Acionado quando a temperatura ficar abaixo de -20 °C;
  • Low – Acionado quando a temperatura ficar abaixo de 0 °C;
  • High – Acionado quando a temperatura ficar superior a 80 °C;
  • Hihi – Acionado quando a temperatura ficar superior a 100 °C.
Configuração dos alarmes no Elipse Scada.
Figura 4 – Configuração dos alarmes.

Quarto passo: Criação dos elementos gráficos

Neste passo, serão criados os elementos necessários para que o operador possa interagir com o sistema existente.

Primeiramente, deve-se criar os 4 objetos do tipo text e definir as respectivas zonas para informar ao usuário o estado dos leds, ou seja, LigadoDesligado. Lembre-se que o procedimento para a elaboração dos mesmos foi realizado no segundo artigo desta série, portanto, estas etapas serão omitidas neste momento.

Objetos Trend Graph e Alarms no Elipse Scada.
Figura 5 – Objetos Trend Graph e Alarms.

Para que os elementos citados anteriormente funcionem da maneira prevista, deve-se construir um pequeno script visando o efeito desejado. Sendo assim, basta que o leitor clique no ícone Organizer (mostrado no primeiro artigo desta série), selecione o elemento Tela1 e crie um novo script na aba Scripts do tipo WhileRunning com o código descrito na figura a seguir, onde o alarme atuante no momento (currentAlarm) da tag temperatura_correta é comparado com vários valores (0 a 4) para que seja possível detectar qual é o nível de alarme ao qual a tag está sujeita. Segue a lista das comparações:

  • tag.currentAlarm = 0 (nenhum alarme atuante);
  • tag.currentAlarm = 1 (Alarme muito baixo – LOLO);
  • tag.currentAlarm = 2 (Alarme baixo – LOW);
  • tag.currentAlarm = 3 (Alarme alto – HIGH);
  • tag.currentAlarm = 4 (Alarme muito alto – HIHI).
Script de acionamento dos leds no Elipse Scada.
Figura 6 – Script de acionamento dos leds

Em seguida, deve-se criar o elemento Graph, este permitirá que um gráfico de tendências possa exibir o comportamento de uma determinada tag em tempo real. O procedimento para a criação do mesmo é idêntica ao realizado para o text, bastando clicar no ícone correspondente e arrastar o mouse conforme o tamanho desejado.

Existem muitas propriedades que podem ser alteradas pelo usuário para personalizar a estética do gráfico de tendências, no entanto, o ponto mais importante está na aba Penas, onde o leitor incluirá qual ou quais tags serão apresentadas no gráfico. Para realizar este procedimento, basta clicar no ícone destacado na figura abaixo e na aba Y axis selecionar a tag desejada.

Adicionando gráficos de tendências.
Figura 7 – Adicionando gráficos de tendências.

Por último, deve-se criar um objeto do tipo Alarm, este elemento será o responsável por informar na tela a ocorrência de todos os alarmes que forem ativados conforme algum dos limites estabelecidos nas propriedades das tags seja extrapolado. Basicamente, as propriedades deste bloco definem como e quais informações serão mostradas quando um alarme é ativado, de modo que o leitor tem a liberdade para “formatar” as informações da maneira que for conveniente. Entretanto, neste momento é importante marcar a opção Histórico no campo Tipo de Alarme, pois assim, todos os alarmes irão aparecer no bloco em questão, caso contrário, somente o último alarme será explicitado.

Adicionando Alarmes no Elipse Scada.
Figura 8 – Adicionando Alarmes.

Finalmente, pode-se conferir o resultado do desenvolvimento realizado neste artigo na figura a seguir.

Supervisório desenvolvido.
Figura 9 – Supervisório desenvolvido.

Esperamos que você tenha gostado deste conteúdo, sinta-se à vontade para nos dar sugestões, críticas ou elogios. Na próxima parte, abordaremos outros conceitos visando a progressão do aprendizado referente à manipulação desta ferramenta. Deixe seu comentário abaixo.

Outros artigos da série

<< Realizando acionamentos simples com Elipse SCADA e Arduino
Veja + conteúdo

Sou engenheiro eletricista graduado com ênfase em Controle e Automação pela Universidade Federal do Espírito Santo - UFES e Técnico em Eletrotécnica pelo Instituto Federal do Espírito Santo - IFES. Me interesso por todas as vertentes existentes dentro da Engenharia Elétrica, no entanto, as áreas relacionadas à automação e instrumentação industrial possuem um significado especial para mim, assim como a Engenharia de Manutenção que na minha opinião é um setor fascinante.

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.

Comentários:
Notificações
Notificar
guest
6 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
WAGNER
WAGNER
15/04/2019 18:19

BOAS, EU TINHA SEGUIDO UM OUTRO TUTORIAL PARA LER UMA ENTRADA ANALÓGIA E ACIONAMENTOS DE ALGUMAS SAÍDAS, DEU TUDO CERTO, PORÉM QUANDO TENTEI LER 2 OU MAIS ENTRADAS ANALÓGICAS NÃO DEU CERTO, A SEGUNDA ENTRADA ESPELHA O RESULTADO DA PRIMEIRA, PODERIA ME AJUDAR? WBERGANTIN@GMAIL.COM

Paulo Eurides
Paulo Eurides
15/11/2018 12:03

Rapaz, eu segui todos os passos, mas ainda sim da o problema de comunicação do driver, coloquei todas as programações no arduino e todo o resto no elipse, e mesmo assim ainda estou tendo esse problema, se você puder me ajudar de qualquer forma, eu preciso apresentar um trabalho que inclui isso nessa terça. Muito obrigado

Lucas Tadeu
Lucas Tadeu
22/10/2016 13:36

O resultado é o mesmo se utilizar o LM35 ao invés do TMP36?

Mateus Henrique Ribeiro Rocha
Mateus Henrique Ribeiro Rocha
01/09/2016 11:07

Olá, qual versão do software você esta utilizando? É a versão DEMO ou completa?

Talvez você goste:

Séries



Outros da Série

Menu