You are on page 1of 5

Sistemas Supervisórios para Controlador

Arduino.
Lucas Bastos dos Santos e Yvo Marcelo Chiaradia Masselli 1

float, word, dword e string.


Abstract—Supervisory systems are software tools that enable Com base nos valores das tags, os dados coletados são
the management of industrial processes in real time. Plays an apresentados ao usuário.
important role in managing these and represent the interface Os supervisórios, também conhecidos como SCADA
between men and machines. (Supervisory Control and Data Aquisition), são compostos por
This paper presents the basics about the supervisory software
sinóticos, alarmes, relatórios, gráficos de históricos, drivers de
and demonstrates some of its functionality through a practical
comunicação, banco de dados e scripts. [2].
application related to temperature control
Index - Supervisory System, HMI, SCADA, control
Devido a necessidade, e até comodidade do gestor,
temperature. atualmente tem sido possível a obtenção de informações do
processo por meio aplicativos para execução em dispositivos
Resumo— Os sistemas supervisórios são ferramentas de moveis como tablets e smartphones. Estes possibilitam a
software que, através da interação com o os dispositivos de visualização de gráficos e relatórios sobre o processo. [3]
hardware presentes em plantas industriais, possibilitam o Neste trabalho é apresentado o desenvolvimento da
gerenciamento de processos em tempo real, ou através de aplicação prática através da versão demonstrativa do software
dados históricos. Tem papel importante na gestão destes e Elipse E3, utilizando o protocolo de comunicação Modbus
representam, na área industrial, o tipo de interface homem- RTU e plataforma de desenvolvimento Arduino IDE. A
maquina com a maior quantidade de recursos. escolha das ferramentas levou em consideração os aspectos
Neste trabalho são apresentados os principais conceitos técnicos que possibilitam a confecção de um sistema de baixo
acerca dos softwares supervisórios, suas funcionalidades e custo, que pode ser utilizado para diversas finalidades, como
importância no meio industrial. Além disto, uma aplicação ferramenta didática, plataforma de testes dentre outros. O
prática relacionada ao controle de temperatura, cuja interface objetivo principal consiste na criação de um sistema de baixo
com o processo é feita através da plataforma de hardware open custo capaz de possibilitar a utilização de recursos típicos de
source conhecida como arduino. sistemas supervisórios trabalhando em conjunto com um
arduino, realizando a comunicação através do protocolo
Palavras chave—Sistema Supervisório, IHM, Scada, Controle modbus.
de temperatura.

I. INTRODUÇÃO II. SISTEMAS SUPERVISÓRIOS

Os sistemas supervisórios possibilitam monitorar e Os primeiros sistemas supervisórios, basicamente


armazenar informações relativas à operação dos elementos de telemétricos, permitiam informar periodicamente o estado do
qualquer processo industrial. As informações são adquiridas processo industrial, monitorando sinais representativos de
medidas e estados de dispositivos, através de um painel de
através de controladores lógicos programáveis, equipamentos
lâmpadas e indicadores, sem que houvesse qualquer interface
de aquisição de dados, etc. [1]
com o operador. Com ao avanço da computação foi
Atualmente os sistemas de automação industrial utilizam disseminado a utilização dos sistemas supervisórios para todos
tecnologias de computação e comunicação para monitorar e os tipos de processo.
controlar os processos industriais, efetuando coleta de dados
em ambientes complexos, e eventualmente dispersos. [1] A. Sinóticos
As variáveis criadas nos sistemas supervisórios Os sinóticos são as telas dos sistemas supervisórios que tem
normalmente correspondem àquelas de processo e recebem o a função de ilustrar variações de parâmetros e de variáveis
nome de tag. Assim como em todos os softwares, se diferem através de displays, barras ou gráficos. Possuem os comandos
pela estrutura do dado a ser armazenado: booleano, inteiro, que possibilitam que o operador interaja com o processo
alterando o valor do setpoint, enviando comandos do tipo
liga/desliga, além de permitir a visualização de relatórios e
1- Trabalho apresentado no III Seminário de Automação Industrial e Sistemas mensagens de alarmes. [4]
Eletro-Eletrônicos – SAISEE (ISSN 2319-0280), ocorrido em 11 de
Novembro na cidade de Santa Rita do Sapucaí-MG.
B. Alarmes G. Scripts
Os alarmes normalmente são configurados para alertar o Scripts são códigos de programação executados pelo
operador de que alguma situação indesejada está ocorrendo no sistema supervisório. São utilizados para adicionar funções
processo. Isto ocorre quando uma variável está fora dos que não estão inclusas no sistema supervisório tais como
limites, ou algum atuador não está na sua posição por funções matemáticas, tratamentos de dados entre outras. [6]
exemplo.
Os alarmes são indicados nas telas através de animações,
H. Arduino
pop up, mensagens de texto, dentre outras. Atualmente é
possível configurar os sistemas supervisórios para o envio de O Arduino Uno é uma plataforma
mensagens de alarmes por e-mail ou SMS (Short Message de prototipagem eletrônica baseado no
Service). microcontrolador ATmega328, que permite a automação de
projetos eletrônicos e robóticos.
Possui 14 I/Os digitais e 6 entradas analógicas, além de
C. Relatórios comunicação serial UARTTTL (5V), e comunicação com
Os relatórios são configurados de acordo com a necessidade computadores através de porta USB.
de cada processo e utilizam normalmente os dados de Para programação possui um software próprio chamado
históricos armazenados em banco de dados, podem ser ArduinoIDE, com licença open source, baseado em linguagem
gerados por período, por transações, relatórios de alarmes, C/C++.
relatórios para fechamento de produção e etc. Através do software ArduinoIDE foi desenvolvida a lógica
Estes podem ser visualizados nas telas do supervisório, de controle de temperatura. Neste trabalho foi utilizado o
além de poderem ser exportados em formatos como PDF, modo de controle proporcional.
DOC, XLS, entre outros. A figura 1 demonstra o equipamento.
Outros aplicativos em Java e PHP podem trabalhar em
paralelo com o sistema supervisórios para gerar os relatórios
de maior complexidade.

D. Gráficos de Históricos
Apresentam os valores das variáveis em função do tempo.
Muito importante para o monitoramento das condições do
processo, sendo mais comum para a monitoração de grandezas
analógicas como: temperatura, pressão, pH, vazão, entre
outras.
Figura 1: Arduino Uno

E. Drivers de Comunicação
I. REDES INDUSTRIAIS
O driver de comunicação possibilita o gerenciamento da
comunicação entre o sistema supervisório e os controladores Redes industriais são essencialmente sistemas distribuídos,
em campo através do protocolo de comunicação. [4] ou seja, diversos elementos trabalhando de forma simultânea a
fim de supervisionar e controlar um determinado processo.
Os meios físicos mais utilizados são aqueles definidos pelos
Tais elementos (sensores, atuadores, CLP's, PC's ), necessitam
padrões RS232, RS485 e Ethernert.
estar interligados e trocando informações de forma rápida e
Os protocolos mais utilizados são OPC (OLE for process
precisa.
control) e MODBUS. [5] Existem diversos protocolos utilizados pelas indústrias para
troca de informações entre os equipamentos, entre eles o can
F. Banco de Dados open, interbus-s, field bus, modbus, ASI, profibus e devicenet
dentre outros.
São utilizados para armazenamentos de dados históricos,
Neste trabalho foi utilizado o protocolo modbus.
dados de logon/logoff, alarmes, receitas, entre outros. O protocolo modbus segue a arquitetura mestre-escravo, o
Os bancos de dados mais utilizados são SQLserver, Oracle, mestre tem o controle sobre a rede, ele faz uma requisição dos
mySQL. [5] dados e aguarda a resposta do escravo. Em uma rede pode
Os supervisórios possuem um sistema de armazenamento de haver até 247 escravos, porem somente um mestre.
dados também chamados de DB’s. Os dados armazenados nos Existe 2 modos de transmissão de dados via modbus ASCII e
DB´s são utilizados apenas internamente. RTU (remote terminal unit), no projeto foi utilizado o modo
A utilização do banco de dados possibilita a integração do de transmissão RTU.
processo com a ERP (Enterprise Resource Planning) da O mestre modbus especifica o tipo de serviço ou função
empresa. solicitado ao escravo de acordo com o código da função, e
cada função é utilizada para acessar um tipo especifico de
dado. O tamanho do campo com os dados varia de acordo com Para testar a escrita nos registradores do arduino, utiliza-se
a função utilizada. de uma rotina de software, desenvolvida para este fim, que
O formato do quadro transmitido na rede é o mesmo tanto possibilita ao sistema supervisório alterar o estado de uma
para o mestre como para o escravo. Este possui 2 bytes para saída do arduino e, consequentemente, acende ou apaga o
checagem erros na transmissão, e utiliza o método CRC-16 ( LED a ela conectada.
cycling redundancy check ). Para testar a escrita de dados tipo int ou float utiliza-se uma
A figura 2 mostra como é formado o quadro modbus. rotina, desenvolvida para esta finalidade, que faz com que o
supervisório “escreva” os dados em um registrador e o arduino
os copie para outro registrador de forma que o supervisório
faça a leitura do registrador que recebeu a copia dos dados.
A figura 4 demostra o fluxo de desenvolvimento.

Figura 2: Frame modbus

III. APLICAÇÃO PRÁTICA

A. Características do Processo
O supervisório foi desenvolvido visando sua utilização em
um sistema de controle de temperatura.
A figura 3 mostra a arquitetura do sistema de controle de
temperatura.

Figura 3: Esquema de Interligação Figura 4: Fluxograma de Desenvolvimento

Para isto, considera-se que o sensor emitirá um sinal de No sistema supervisório criou-se três telas: uma inicial para
entrada com tensão entre 0 e 5VDC. apresentação do projeto, outra com as características do
A saída corresponde a sinal de tensão, modulado em PWM processo e operação do controle de temperatura e a terceira
com amplitude entre 0 ou 5VDC, que servirá como sinal de contando os alarmes.
controle do atuador (resistência elétrica). Além destas, uma A tela inicial apenas demonstra uma introdução ao projeto.
saída digital também é utilizada para acionar um LED de A figura 5 demonstra a tela inicial.
alarme, caso a temperatura ultrapasse o valor do setpoint.
O projeto não conta com dispositivo que abaixe a
temperatura caso exceda o setpoint, o processo de
resfriamento é a troca de calor com o ambiente.

B. Desenvolvimento Supervisório
Inicialmente foram criados os esboços das telas e, em
seguida, é realizada a configuração do driver de comunicação.
Para testar e validar os parâmetros configurados de
comunicação, são criadas tags e o arduino é programado com
valores conhecidos nos registradores. Através da leitura destes
Figura 5: Tela inicial do sistema supervisório.
registradores pode-se validar a comunicação, apenas por
comparação.
A tela de operação apresenta o gráfico das variáveis do o driver Modicon Modbus Master (ASC/RTU/TCP) no Elipse
processo em função do tempo, capaz de mostrar a variação da E3.
temperatura (°C), entrada analógica (%), saída PWM (%) e do Primeiramente o driver foi configurado para comunicação
erro apresentado pelo sistema (%). via modbus RTU, e após isto foi inserido o endereço do
O erro indicado representa a diferença entre a temperatura arduino conforme figura 8.
de processo e o setpoint.
Através dos gráficos pode-se verificar o comportamento do
controle do processo em relação ao tempo.
A tela de operação possui um checkbox para selecionar se o
controle vai operar em automático ou em manual, e um
display para indicar a seleção.
Em automático o operador digita o valor do setpoint da
temperatura, e o arduino faz o controle automático da
temperatura. Em manual o operador digita o valor da saída
analógica do arduino.
A tela de operação possui quatro displays na parte inferior,
onde são indicados os valores da temperatura, saída analógica,
entrada analógica e do erro.
A figura 6 demonstra a tela e operação.

Figura 8: Janela de configuração do driver de comunicação.

Em seguida é necessária a configuração da porta de


Figura 6: Tela de operação. comunicação serial e do driver de comunicação. Nesta última
etapa são criadas as tags de comunicação (que irão receber as
A tela de alarmes possui dois setpoints, um para acionar o informações do arduino).
alarme quando a temperatura passar do valor indicado e outro No total foram criadas 12 tags de comunicação,
desativar o alarme quando o valor da temperatura estiver configuradas como mostrado na figura 9.
abaixo deste. A tela também possui três displays um indicando
o setpoint de operação, outro a temperatura atual, e um
indicando o status do alarme, se está ativo ou não.
A figura 7 demonstra a tela de alarmes.

Figura 9: Tags configurados no Elipse E3.

D. Configuração do Driver de Comunicação do Arduino


Para a configuração do driver é imprescindível a instalação
da biblioteca Modbus correspondente.
Além disto, é necessária a configuração dos registradores
Figura 7: Tela de Alarmes Modbus no arduino, mais especificamente em relação às
funções 3 e 4, correspondente ao Holding Register e Input
Register, respectivamente.
C. Configuração do Driver de Comunicação do Elipse E3 A figura 10 demonstra a tabela modbus.
O sistema supervisório comunica-se com o arduino através
do protocolo modbus RTU.
Para que isso seja possível é necessário instalar e configurar
No trabalho proposto foi possível demostrar algumas
funções dos sistemas supervisórios como sinóticos, gráficos de
tendências, set points alarmes.
Através dessas funções pode-se desenvolver um aplicativo
de simples operação, onde se faz o controle e o
acompanhamento do processo em tempo real.

V. REFERÊNCIA BIBLIOGRÁFICA
[1] Aquarius software – O Papel do Supervisório no Atual
Contexto Tecnológico. Disponível em:
Figura 10: Tabela modbus http://www.aquarius.com.br/Boletim/InTech132_artigo.pdf Acessado em
18/10/2014

E. Lógica do Controlador (Arduino) [2] UFRN – Arquitetura para Sistemas Supervisórios


Industriais. Disponível em:
Foi adicionado uma biblioteca modbus já existentes e feita a http://repositorio.ufrn.br:8080/jspui/handle/123456789/15444 Acessado
configuração do arduino como um escravo na rede modbus. em18/10/2014
Após isso são criados os registradores utilizados na [3] Elipse – Elipse Mobile, Disponível em:
comunicação com o sistema supervisório. http://www.elipse.com.br/port/mobile.aspx Acessado em:
20/10/2014
Para testar e validar a configuração dos registradores
utilizou-se o software Modscan32, que possibilita a leitura e [4] UFRSA – Sistemas Supervisórios, Disponível:
http://www2.ufersa.edu.br/portal/view/uploads/setores/166/arquivos/Auto
escrita nos registradores modbus sem a necessidade de outros
macao%20e%20Controle%202010_2/Automa%C3%A7%C3%A3o%20e
recursos. Em seguida, utilizando um programa desenvolvido %20Controle%20-%20Supervis%C3%B3rio.pdf Acessado em: 22/10/2014
para o arduino, foram atribuídos valores conhecidos aos
[5] UDESC - Sistemas Supervisórios e Protocolos de
registradores e no Modscan32, feitas as tentativas de leitura Comunicação Industriais, Disponível:
dos mesmos. É importante ressaltar que foi realizada a leitura http://www.joinville.udesc.br/portal/professores/kondrasovas/materiais/5_
dos registradores com formato “int”. Sistemas_Super.pdf Acessado em: 25/10/2014
Durante os testes de comunicação verificou-se que parte [6] Elipse – Tutorial Minicurso E3, Disponível
fracionária das variáveis tipo float não era transmitida. A :http://downloads.elipse.com.br/port/download/e3/v4.6/b157/e3minitutorial
_ptb.pdf Acessado em: 20/10/2014
solução se resumiu a multiplica-las por dez vezes o número de
casa decimais utilizadas no transmissor e dividi-las pelo [7] Indusoft – VBScript Reference Manual, Disponível
:http://www.indusoft.com/pdf/vbscript%20reference.pdf Acessado em :
mesmo valor no receptor.
23/10/2014
Em seguida foi desenvolvido a lógica de controle, e esta se
[8] Arduino – Modbus Master Disponível:
dividida em duas partes: a primeira em manual e a outra
http://playground.arduino.cc/Code/ModbusMaster Acessado em:
automática. 27/10/2014
Foi implementado um controle proporcional em automático
[9] Arduino – ACD/DAC Disponível:
e utilizou-se de uma biblioteca já existente. http://playground.arduino.cc/Main/InterfacingWithHardware#adcdac
Em automático o setpoint vem do sistema supervisório e o Acessado em: 02/11/2012
arduino utiliza o controle proporcional para definir o sinal de [10] Elipse – Modbus
saída. Como o arduino não possui saída analógica, utiliza-se a MasterDisponível:http://kb.elipse.com.br/pt-
modulação PWM para a geração do sinal de controle. br/questions/4803/Estrutura+de+c%C3%B3digos+utilizada+no+driver+M
odicon+Modbus+Master+%28ASC%7B47%7DRTU%7B47%7DTCP%29
Em manual o operador define em uma escala de 0 a 100% o
Acessado em: 04/11/2014
valor do sinal de saída.
[11] Arduino- PWM Disponível:
http://arduino.cc/en/Tutorial/PWM Acessado em:
IV. CONCLUSÃO 20/11/2014
O trabalho proposto visa demonstrar um sistema [12] L. A. O. L. Roque, Automação de Processo com Linguagem Ladder e
supervisório utilizando uma plataforma de baixo custo o Sistemas Supervisórios, 1° edição. Editora LTC, 2004, 456 pag.
arduino, capaz de realizar o controle de temperatura e efetivar [13] A. Baratella, M. M. D. Santos, Sistemas Fieldbus para Automação
a comunicação através do protocolo Modbus RTU. Industrial,1° edição. Editora Érica, 2009, 160 pag.
Para comunicação serial entre dispositivos em campo e o
sistema supervisório pode-se verificar a necessidade da
Lucas Bastos dos Santos nasceu em Poços de Caldas, MG, 11 de Janeiro de
instalação de um driver, normalmente fornecido pelo 1986. Formou-se técnico em Automação Industrial pelo SENAI – Poços de
fabricante do software. Caldas-MG (2005) e Engenheiro Eletricista pela PUC – Poços de Caldas-MG
O protocolo modbus utiliza o modo Mestre-Escravo para (2011). É especialista em assistência técnica na empresa IKSO Ind. E
troca de informações, com isto o supervisório foi configurado Comercio de Equipamentos desde 2013. Trabalhou como eletricista e sub
encarregado de manutenção na empresa Togni Materiais Refratários.
como mestre e o arduino como escravo.