Sie sind auf Seite 1von 20

SISTEMAS SUPERVISÓRIOS MECATRÔNICA

SISTEMAS SUPERVISÓRIOS INDUSTRIAIS

Em plantas industriais um sistema supervisório faz-se necessário para o acompanhamento de


uma produção e um controle centralizado, sendo assim foram elaborados sistemas de interface
amigável e eficiente.
O sistema SCADA (supervisory control and data aquisition) está entre os melhores sistemas de
gerenciamento, informando o usuário em tempo real qualquer evento importante que venha a
acontecer em uma planta. Um sistema assim pode ser implantando para atender tanto uma
pequena unidade de produção, como grandes áreas industriais, integrando os sistemas lógicos
da automação. Por meio de coleta de dados dos processos, onde por muitas vezes afastados
geograficamente, as remotas industriais como CPs (controladores programáveis), formatam
esses dados e apresentam ao operador em recursos gráficos elaborados, planilhas e gráficos.

PRINCIPAIS COMPONENTES DE UM SISTEMA SUPERVISÓRIO

Para que o operador obtenha todas informações que compõem uma planta industrial e assim
poder acompanhar e controlar em tempo real de execução de uma tarefa, o sistema
supervisório dependem de componentes físicos como sensores e atuadores, rede de
comunicação, estações remotas e estação de monitoramento central.

SENSORES E ATUADORES
São dispositivos acoplados aos componentes que convertem parâmetros físicos (pressão,
velocidade, temperatura...) em sinais analógicos e digitais, e os atuadores são componentes
utilizados para acionar ou desacionar determinados equipamentos durante o processo
industrial.
REDE DE COMUNICAÇÃO
Plataforma de transmissão das informações, onde são considerados alguns requisitos do
sistema e distância de transmissão dos dados, sendo feito sob análise e escolhendo o melhor
meio de transmissão ethernet, fibras óticas, rádio...
ESTAÇÕES REMOTAS
onde inicia-se o processo de aquisição e controle dos dados, fazendo leitura dos valores do
dispositivo que podem ser digitais ou analógicos, de entrada ou de saída, controlando e
atualizando os dados.
REDE DE INFORMAÇÃO GERENCIAL
integra a rede de supervisão com a de controle, possibilitando ao supervisor da empresa a
análise do desempenho da produção.
REDE DE SUPERVISÃO E CONTROLE
reponde pelo funcionamento do sistema.
REDES DE CONTROLE DE CAMPO
responsável direta pelo processo de informações do controle em tempo real, podem ser
inseridas nesse grupo todas as redes industriais, seja fieldbus, modbus, profibus, devicenet..

www.meccomeletronica.com Página 1
SISTEMAS SUPERVISÓRIOS MECATRÔNICA

MÓDULOS DE UM SISTEMA SUPERVISÓRIO


Dividindo o sistema supervisório em módulos, suas tarefas se tornam mais flexíveis e robustas,
ficando disponível conforme a necessidade do usuário.
De um modo geral, essas tarefas podem ser divididas em :
Núcleo de processamento
Comunicação com CPs/ RTUs
Gerenciamento de alarmes
Interface gráfica
Relatórios
Banco de dados
Histórico
Lógica de programação interna ou controle
Comunicação com outras estações
Comunicação com sistemas externos.

O SOFTWARE SUPERVISÓRIO INDUSOFT


No mercado atual existem diversos softwares SCADA que podem atender a necessidade de
qualquer tipo de produção seja de uma pequena linha até grandes sistemas automatizados
como Usinas Sucroalcooleiras, empresas dos mais diversos tipos de envases, empresas
responsáveis pela geração de alimentos entre outras.
O software que utilizado é o INDUSOFT. Esse software SCADA é de fácil integração e pode
ser baixado gratuitamente direto do site: http://www.indusoft.com/br/. E outra facilidade é que
no próprio software vem alguns drivers de comunicação que possibilitam a comunicação com
sistemas remotos, no qual vamos destaca o Protocolo ModBus.

PROTOCOLO MODBUS
Desenvolvido pela Modicon na década de 70, trata-se de uma estrutura de mensagem aberta e
utilizada para comunicação entre dispositivos mestre-escravo/ cliente-servidor. Vastamente
utilizado como protocolo em equipamentos industriais, o protocolo ModBus está presente em:
instrumentos e equipamentos de laboratórios, automação residencial e automação naval.
Sua simplicidade e facilidade de implementação faz com que sua utilização na automação
industrial seja aplicada em diversos padrões de meios físicos como: RS-232, RS-485 e
Ethernet TCP/IP, limitando-se a velocidade de comunicação de cada um desses padrões bem
como comprimento e numero máximo de dispositivos conectados.

www.meccomeletronica.com Página 2
SISTEMAS SUPERVISÓRIOS MECATRÔNICA

PROTOCOLO MODBUS NO ARDUINO


Existem diversos de usuários que fazem uso do protocolo ModBus no Arduino, usando uma
biblioteca originalmente desenvolvida por Juan Pablo Zometa, podendo ser alterada para
suportar funções ModBus conforme a necessidade do usuário. O código do drive ModBus pode
ser baixado nesse LINK, ou no final do artigo, onde estarei disponiblizando o projeto completo
para download. O que facilita com que o Arduino possa comunicar com o Sistema SCADA é a
comunicação RX/ TX que está no Atmega.

EXEMPLO 01

O PROJETO INDUSOFT + ARDUINO


Depois de carregar o código exemplo do protocolo ModBus, vamos começar a montar alguns
componentes onde vai ser possível a monitoração em tempo real. O circuito que devemos
montar como exemplo é bem simples. Vamos demonstrar controle via Indusoft de um Arduino
no protocolo de comunicação ModBus.

www.meccomeletronica.com Página 3
SISTEMAS SUPERVISÓRIOS MECATRÔNICA

EXEMPLO 02

Este é um supervisório para Arduíno desenvolvido em C# no SharpDevelop 4.2.

Ele se comunica com o arduíno via comunicação serial, utilizando o protocolo firmata, que é um
protocolo genérico para comunicação entre microcontroladores e um computador. Os meios de
comunicação são o caso usb (o mesmo usado para fazer a gravação do arduíno) um adaptador
bluetooth.

O arquivo utilizado para esta simulação se chama standardFirmata. Após instalar vá em


exemplos | Firmata | StandardFirmata.

Feito isso, é só abrir o programa, e escolher a porta serial do Arduíno. Clique em um pino
qualquer, e aparecerá as opções. Os pinos podem ser configurados como saída,
entrada(analógica ou digital), PWM(pinos 3, 5, 6, 9, 10 e 11) ou servo.

www.meccomeletronica.com Página 4
SISTEMAS SUPERVISÓRIOS MECATRÔNICA

Recomendável a instalação do net framework v4.0.30319

SISTEMAS DE COMUNICAÇÃO UTILIZANDO PROTOCOLO MODBUS COM SCADABR

o ScadaBR consiste em um sistema supervisório completo que por sua vez é disponibilizado
em licença Open Source. Além disso, possui suporte para uma vasta gama de protocolos de
comunicação, sendo portanto, compatível com um grande número de hardwares dos mais
diversos fabricantes, característica essencial para ser utilizado, por exemplo, no campo de
controle e automação industrial. O ScadaBR conta com uma história de mais de 70 mil
downloads. Amplamente utilizado para desenvolver aplicações automatizadas em qualquer tipo
de ambiente: Indústrias, Laboratórios, Automação Predial, Saneamento, Sistemas de Energia.

1. EXEMPLO DE UTILIZAÇÃO
O hardware que será utilizado será um Arduino UNO, um led (e o respectivo resistor para o
acionamento do mesmo, com um valor de resistência de 280Ω) e um potenciômetro de 4.7kΩ.
O objetivo do projeto desenvolvido consiste em produzir um sistema onde o usuário pode
definir o valor do PWM a ser utilizado no acionamento do led existente através do
potenciômetro, para por exemplo, controlar a intensidade luminosa do mesmo.

www.meccomeletronica.com Página 5
SISTEMAS SUPERVISÓRIOS MECATRÔNICA

CONSTRUÇÃO DO CÓDIGO

Inicialmente deve-se incluir as bibliotecas necessárias para que o código a ser inserido no
Arduino UNO funcione adequadamente. Utilizaremos somente a biblioteca desejada para
estabelecer a comunicação entre o Arduino UNO e o ScadaBR através do protocolo Modbus.
Os arquivos para montagem estão disponíveis em Modbus RTU libraries for Arduino.

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

#include <SimpleModbusSlave.h>

Em seguida realizou-se o uso da diretiva #define para associarmos a palavra LED ao pino 9
do Arduino UNO.

#define LED 9

Posteriormente pode-se observar um bloco chamado enum, neste estarão escritos os


registradores que conterão as informações utilizadas na leitura ou no acionamento de
dispositivos. São denominados no ScadaBR como Registradores Holding. Para declará-los
basta escrever seus nomes seguidamente. O Registrador Holding é utilizado para conter o
valor proveniente do potenciômetro denominado VALOR_POT, enquanto o responsável por
armazenar o valor que será utilizado no acionamento do led via PWM é
denominado VALOR_PWM. É 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.

enum
{
VALOR_POT,
VALOR_PWM,
HOLDING_REGS_SIZE
};
unsigned int holdingRegs[HOLDING_REGS_SIZE];

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 ScadaBR.

Em seguida temos a função modbus_update_comms() que também é responsável pela


comunicação via Modbus, enquanto a função pinMode() determina o modo de operação (como
saída) do pino onde está conectado o led.

void setup()
{
modbus_configure(&Serial, 9600, SERIAL_8N1, 1, 2, HOLDING_REGS_SIZE,
holdingRegs);
modbus_update_comms(9600, SERIAL_8N1, 1);
pinMode(LED, OUTPUT);
}

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 tensão aplicada à porta de entrada analógica A0 e posteriormente o valor encontrado
é convertido em um número inteiro contido no intervalo entre 0 e 1023 utilizando a função
analogRead() de forma que este é armazenado no Registrador Holding identificado como

www.meccomeletronica.com Página 6
SISTEMAS SUPERVISÓRIOS MECATRÔNICA

VALOR_POT. Por último, temos a função analogWrite(), responsável por acionar o led
utilizando PWM (observe que o valor utilizado na largura do pulso está contido no Registrador
Holding VALOR_PWM, que por sua vez será preenchido dentro do ScadaBR).

void loop()
{
modbus_update();
holdingRegs[VALOR_POT] = analogRead(A0);
analogWrite(LED, holdingRegs[VALOR_PWM]);
}

CONSTRUÇÃO DO DATA SOURCE E DATA POINTS PARA AQUISIÇÃO DE


DADOS
Para a interação do Arduino UNO com o SCADABR, é necessário fazer com que
o SCADABR identifique o elemento com o qual irá interagir, chamado dentro do programa
de Data source, de modo que para a criação deste é necessário clicar no ícone
correspondente presente na barra de ferramentas.

Em seguida deve-se estabelecer qual tipo de comunicação existirá entre os 2 elementos. Como
dito anteriormente utilizaremos o protocolo MODBUS através da comunicação serial, portanto
basta na lista de seleção encontrar a opção Modbus Serial.

Posteriormente algumas informações devem ser fornecidas para o SCADABR tanto para
identificação do dispositivo escravo quanto para que a funcionalidade seja efetiva. Num
primeiro momento o programador deve nomear o dispositivo escravo, bem como definir o
tempo em que os dados serão atualizados (esta informação é muito importante, sendo
portanto, fundamental que o programador tenha conhecimento da aplicação que está
desenvolvendo para que a escolha deste parâmetro resulte em um funcionamento eficaz do
projeto).

Além destas configurações básicas, deve-se especificar mais alguns parâmetros relativos à
comunicação estabelecida, como por exemplo: a porta COM utilizada, e a taxa de transmissão
utilizada (9600 bps). Neste momento, o programador deve recordar que ao escrever o código
para o Arduino UNO, existiam duas funções dentro da função setup() em que um dos
parâmetros era a sigla SERIAL_8N1. Esta significa que estão sendo utilizados 8 bits para
dados e um bit de parada na transmissão da informação entre os elementos, portanto, estas
informações devem estar identificadas nos campos data bits e stop bits.

www.meccomeletronica.com Página 7
SISTEMAS SUPERVISÓRIOS MECATRÔNICA

Para conferir se o Arduino UNO foi encontrado, basta pesquisar a existência de um nó.

Após esse teste é necessário inserir no SCADABR os registradores holding que foram
declarados no código do Arduino UNO. Para realizar este procedimento deve-se criar os
chamados data points, clicando no ícone encontrado na extremidade superior direita da figura
abaixo.

Após esse procedimento, uma nova janela é aberta para que seja possível determinar as
propriedades do data point criado. Primeiramente é necessário nomeá-lo (aqui foi utilizado o
nome POT) e em seguida definir 3 campos fundamentais: o primeiro é o Faixa do registro onde
a opção a ser selecionada deve ser registrador holding, em seguida Tipo de dados modbus
determinado como Inteiro de 2 bytes sem sinal e, por último, Offset (este campo, diz ao
SCADABR qual dos registradores holding será escrito ou lido, de maneira que o número a ser
utilizado vai de acordo com a sequência escrita no código do Arduino UNO, ou seja, como será
lido o registrador VALOR_POT e este foi o primeiro a ser escrito na tabela, usa-se o valor 0 no
Offset). Observe que ao efetuar a leitura, o SCADABR apresentará um valor que varia de 0 a
1023 conforme esperado, no entanto caso o leitor queira um valor entre 0 e 5V basta utilizar o
valor adequado no campo Multiplicador.

A figura a seguir mostra como a tabela onde estão organizados os data points ficará após a
criação realizada anteriormente. Para habilitar o data point desejado basta clicar no ícone
conforme a figura citada.

www.meccomeletronica.com Página 8
SISTEMAS SUPERVISÓRIOS MECATRÔNICA

O próximo passo é criar o data point responsável pelo acionamento do led via PWM. Este
procedimento é idêntico ao anterior, exceto por uma diferença no campo Offset que desta vez é
preenchido com o valor 1 (já que este refere-se ao segundo registrador da tabela escrita no
código do Arduino UNO) e a opção configurável deve ser marcada.

Neste momento o programador deve retornar a watch list (primeiro ícone da esquerda na
barra de ferramentas) e clicar nas setas para visualizar o estado dos data points criados.

Observe que nos valores das medições, o data point referente ao PWM mostra o valor 0,
enquanto o data point que diz respeito ao valor lido através do potenciômetro possui um
conteúdo de fato condizente com a posição do mesmo. Isto acontece porque em nenhum
momento o registrador holding responsável por conter o valor a ser utilizado no PWM é
atualizado.

CRIAÇÃO DO POINT LINK

Existem algumas maneiras de


relacionar o valor a ser utilizado no
PWM de acordo com a posição do
potenciômetro, de forma que neste
artigo esta correspondência será
realizada dentro do SCADABR.
Para isto é necessário clicar no
item point links localizado na barra
de ferramentas e adicionar um
novo point link, onde o data point
de origem é o POT e o de destino é
o chamado PWM. O próximo passo
é escrever o script que será
responsável por proporcionar o
valor desejado ao data point PWM, conforme a figura (o valor 51 é a constante de
proporcionalidade para converter um valor de 0 a 5V em outro no intervalo entre 0 e 255) e
posteriormente salvar (não esqueça de mudar o campo evento para atualização, pois caso este
procedimento não seja feito, o valor só irá atualizar quando houver alguma modificação no data
point de origem). Neste momento, o leitor pode retornar a watch list e conferir os valores
adquiridos por meio do potenciômetro, bem como o responsável por acionar o led.

www.meccomeletronica.com Página 9
SISTEMAS SUPERVISÓRIOS MECATRÔNICA

A figura abaixo exibe o resultado do projeto desenvolvido, onde é possível ver a relação entre a
posição do potenciômetro e o PWM gerado (gráfico) além da exibição dos valores referentes
aos data points no SCADABR.

2. CRIAÇÃO DE SISTEMAS SUPERVISÓRIOS


O hardware que será utilizado para dar continuidade aos conceitos já demonstrados no artigo
anterior será composto por um Arduino UNO, um led RGB(e os respectivos resistores para o
acionamento dos mesmos, com valores de resistência de 280Ω), três potenciômetros de 4.7kΩ
(responsáveis pelo acionamento do led RGB), um botão para o acionamento on/off de um outro
led, além de uma chave seletora para definir os modos de operação automático e manual do
sistema.

www.meccomeletronica.com Página 10
SISTEMAS SUPERVISÓRIOS MECATRÔNICA

CONSTRUÇÃO 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.
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.

#include <SimpleModbusSlave.h>

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.

#define LED_VM 11
#define LED_VD 10
#define LED_AZ 9
#define LED 8
#define BOTAO 12
#define CHAVE 13

Antes de prosseguirmos com o código, foi necessário criar algumas variáveis para uso
posterior no acionamento dos componentes.

int PWM_R;
int PWM_G;
int PWM_B;

Neste momento serão definidos os registradores holding utilizados 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, nele estão contidas todas as informações para que o
leitor compreenda cada um dos pontos deste desenvolvimento de código.

Os registradores holding POT_R/POT_G/POT_B são responsáveis por conter os valores


referentes às leituras realizadas através dos potenciômetros enquanto os registradores
LED_R/LED_G/LED_B estão diretamente ligados ao acionamento do led RGB . Os
registradores BOT e LED_ON_OFF definem o comportamento do led on/off, enquanto o
registrador MAN_AUTO está relacionado com a chave que determina o modo de operação
(manual ou automático).

enum
{
POT_R,
POT_G,
POT_B,
BOT,
LED_R,
LED_G,
LED_B,
LED_ON_OFF,
MAN_AUTO,
HOLDING_REGS_SIZE

};

unsigned int holdingRegs[HOLDING_REGS_SIZE];

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

www.meccomeletronica.com Página 11
SISTEMAS SUPERVISÓRIOS MECATRÔNICA

MODBUS. Os parâmetros "mais importantes" são o segundo, o terceiro e o quarto, que dizem
respeito à taxa de transmissão de dados e 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, enquanto a função pinMode() determina os modos de operação
(como saída) dos pinos onde estão conectados os diversos elementos presentes no sistema
em questão.

void setup()
{

modbus_configure(&Serial, 9600, SERIAL_8N1, 1, 2, HOLDING_REGS_SIZE,


holdingRegs);

modbus_update_comms(9600, SERIAL_8N1, 1);

pinMode(LED_VM, OUTPUT);
pinMode(LED_VD, OUTPUT);
pinMode(LED_AZ, OUTPUT);
pinMode(LED, OUTPUT);
pinMode(BOTAO, INPUT);
pinMode(CHAVE, INPUT);

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 nas portas de entrada analógica A0, A1 e A2 e
posteriormente realiza-se o mesmo procedimento, porém nas portas de entrada digital, ou seja,
onde está a chave seletora e o botão.

Num primeiro momento é necessário verificar em que posição está a chave seletora para que o
programa entenda a partir de que ponto o sistema está sendo controlado. Para isso utiliza-se
uma estrutura condicional if(), cuja sentença a ser testada inclui o registrador holding
MAN_AUTO. Caso o valor deste seja igual a zero, entende-se que o sistema está funcionando
de forma manual, portanto, os valores a serem utilizados nos PWMs para o acionamento dos
leds são provenientes diretamente dos valores obtidos através dos potenciômetros. E o led
com comportamento on/off responde diretamente de acordo com o botão enquanto solto ou
pressionado. Observe que apesar de não utilizarmos os registradores holding nos
acionamentos (no caso do led RGB), estes ainda assim são atualizados para que seus valores
sejam devidamente apresentados no SCADABR.

Em contrapartida, caso a chave seletora aponte para o modo de operação automático, os


acionamentos serão feitos utilizando diretamente os registradores holding, pois assim é
possível realizar estes por meio da alteração de valores no supervisório que será apresentado
a seguir.

void loop()
{

modbus_update();

holdingRegs[POT_R] = analogRead(A0);
holdingRegs[POT_G] = analogRead(A1);
holdingRegs[POT_B] = analogRead(A2);
holdingRegs[BOT] = digitalRead(BOTAO);
holdingRegs[MAN_AUTO] = digitalRead(CHAVE);

if(holdingRegs[MAN_AUTO] == 0){

www.meccomeletronica.com Página 12
SISTEMAS SUPERVISÓRIOS MECATRÔNICA

PWM_R = map(holdingRegs[POT_R],0,1023,0,255);
analogWrite(LED_VM,PWM_R);

holdingRegs[LED_R] = PWM_R;

PWM_G = map(holdingRegs[POT_G],0,1023,0,255);
analogWrite(LED_VD,PWM_G);

holdingRegs[LED_G] = PWM_G;

PWM_B = map(holdingRegs[POT_B],0,1023,0,255);
analogWrite(LED_AZ,PWM_B);

holdingRegs[LED_B] = PWM_B;

digitalWrite(LED,holdingRegs[BOT]);

holdingRegs[LED_ON_OFF] = holdingRegs[BOT];

} else{

analogWrite(LED_VM, holdingRegs[LED_R]);

analogWrite(LED_VD, holdingRegs[LED_G]);

analogWrite(LED_AZ, holdingRegs[LED_B]);

digitalWrite(LED,holdingRegs[LED_ON_OFF]);
}

CRIAÇÃO DO DATA SOURCE E DATA POINTS PARA MANIPULAÇÃO DE DADOS

Neste momento iremos abordar os passos necessários para realizar interação do Arduíno
UNO com o SCADABR. Vale ressaltar que neste artigo partiremos de uma parte mais
avançada, no entanto, é conveniente que caso o leitor não esteja familiarizado com o conteúdo
mostrado a seguir, veja como são feitos os procedimentos iniciais para tal objetivo em nosso
artigo anterior cujo link encontra-se disponibilizado no início deste artigo.

Primeiramente é necessário produzir o Data source referente ao Arduíno UNO utilizando a


opção modbus serial como modo de conexão e em seguida criar os Data points que serão
utilizados no programa. Por uma questão de didática e também para facilitar a programação e
o entendimento do leitor, os nomes dos Data points são iguais aos dos registradores holding
declarados no código (exceto os que possuem "/" no nome, pois este caractere não foi aceito
no código, dessa maneira este foi substituído por "_"). Observe que neste artigo alguns Data
points foram declarados como inteiros de 2 bytes sem sinal ao passo que outros foram tidos
como binários.

www.meccomeletronica.com Página 13
SISTEMAS SUPERVISÓRIOS MECATRÔNICA

DESENVOLVIMENTO DO SISTEMA SUPERVISÓRIO

Para desenvolver um sistema supervisório, o usuário deve inicialmente clicar no ícone


referente ao modo que por sua vez proporciona o ambiente necessário para a produção de tal
sistema. Este ícone possui o nome de representação gráfica.

Em seguida, o leitor deve escolher um nome para este sistema supervisório assim como uma
imagem de fundo caso seja desejo do desenvolvedor (neste caso, após selecionar a imagem
desejada, basta clicar no botão responsável por fazer o upload da imagem).

www.meccomeletronica.com Página 14
SISTEMAS SUPERVISÓRIOS MECATRÔNICA

Neste momento nosso supervisório recém criado se encontra desta maneira

Primeiramente serão criados os leds de sinalização do modo de operação, isto é, um


mecanismo para que o usuário saiba se o sistema esta em modo manual ou automático. Como
dito anteriormente, no modo manual, as alterações só podem ser realizadas através dos
potenciômetros e pelo botão, ao passo que no modo automático, as mudanças só podem ser
realizadas pelo supervisório. Observe que a única coisa que define o modo de operação é a
chave seletora diretamente contida no hardware.

Para adicionar os componentes escritos, deve-se selecionar na lista de componentes a


opção HTML e clicar no ícone ao lado da mesma lista. Posteriormente o desenvolvedor deve
escrever as frases desejadas. Neste caso, o procedimento em questão foi repetido 3 vezes
com as seguintes frases: "Modo de operação", "Automático" e "Manual".

www.meccomeletronica.com Página 15
SISTEMAS SUPERVISÓRIOS MECATRÔNICA

Já para inserir os elementos gráficos deve-se selecionar na lista de componentes a opção GIF
Binário e clicar no ícone ao lado para adicioná-lo ao supervisório. Em seguida aparecerá um
ícone igual ao mostrado na figura abaixo (extremidade esquerda), de modo que o leitor deve
definir alguns parâmetros para que o item gráfico funcione de maneira efetiva. Num primeiro
momento deve-se posicionar o mouse sobre ícone citado e aparecerão algumas opções, o
leitor deve primeiramente clicar na opção marcada de vermelho e definir qual Data point estará
"ligado" ao elemento gráfico em questão (no nosso caso, o Data point escolhido está
relacionado ao registrador holding responsável por conter o valor relativo à leitura da chave
seletora que define o modo de operação).

Depois de realizar o procedimento anterior, o leitor deve clicar no ícone abaixo do selecionado
anteriormente, e então escolher qual tipo de elemento gráfico deseja utilizar. Neste caso foi
selecionado o conjunto "leds24", composto por uma série de imagens onde o usuário deve
determinar uma para o caso do Data point em questão atribuir o valor 0 (led apagado)
ao registrador holding correpondente e outra para o caso deste possuir o valor 1 (led aceso).
Observe que a intenção neste momento é fazer com que o led acenda caso o modo vigente
seja automático, ou seja, quando a chave seletora apresentar nível alto na entrada
correspondente do Arduino.

www.meccomeletronica.com Página 16
SISTEMAS SUPERVISÓRIOS MECATRÔNICA

Conforme citado, o elemento que foi adicionado anteriormente está ligado à sinalização do
modo automático. Para inserir outro relacionado ao modo manual deve-se proceder da mesma
forma, no entanto é necessário inverter as imagens pois, quando a chave seletora proporcionar
nível baixo na entrada digital do Arduino, este deve entender que o sistema está em modo
manual, acendendo portanto o led referente a este modo de operação. Lembre-se sempre de
salvar as alterações clicando no ícone do disquete no canto superior direito.

O próximo passo no desenvolvimento do supervisório consiste em construirmos estruturas para


sinalizar as componentes do led RGB.

Basicamente, o procedimento para incluir os elementos gráficos, a ser realizado neste ponto, é
idêntico ao anterior. No entanto, para esta aplicação nós não dispomos de Data points que
representam registradores holding binários (como por exemplo MAN_AUTO) para controlar os
2 estados definidos pelas imagens dos leds acesos e apagados. Portanto deve-se criar
alguns Data points virtuais (neste momento utilizaremos o led que controla a componente
vermelha do RGB como exemplo, porém os passos a serem seguidos são os mesmos para as
outras componentes), para isso deve-se criar 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.

O Data Source Meta criado neste artigo possui o nome "Auxiliares" e no momento em que este
é criado, abre-se uma tela de configurações deste Data source onde o desenvolvedor deve
procurar a área relativa à criação de Data points para adiciona-los. Após criar o Data point
deve-se nomeá-lo, definir o tipo de dado como binário e selecionar outro Data point (já
existente) no campo Contexto do Script para criar uma estrutura que irá definir quando este
recém criado assumirá os valores 0 e 1, neste caso escolhemos o Data point LED_R
(responsável por conter o valor utilizado no PWM para o acionamento do led). Observe que
existe uma coluna na tabela onde foi adicionado este Data point já existente chamada Var,
onde pode-se dar um nome para uma variável que irá conter o valor presente no registrador
holding representado pelo Data point LED_R, cujo nome é pwm_vm.

No script apresentado conforme a figura a seguir, utiliza-se uma estrutura condicional if() para
que este Data point criado retorne 1 (returne true) caso a variável pwm_vm possua um valor
maior do que 0 (if (pwm_vm.value > 0)) ou retorne 0 (returne false) caso o valor da mesma
variável seja igual a zero (else return false).

www.meccomeletronica.com Página 17
SISTEMAS SUPERVISÓRIOS MECATRÔNICA

Voltando ao ambiente de desenvolvimento do sistema supervisório deve-se associar o Data


point virtual criado ao elemento gráfico em questão da mesma maneira realizada anteriormente
além de definir as duas imagens, uma para quando este for 0 e outra para quando este for 1.

Repare que até o presente momento foram adicionados apenas elementos gráficos, no entanto
agora será inserido na representação gráfica um dispositivo que mostre os valores que serão
utilizados nos PWMs dos acionamentos dos leds. Para isso deve-se selecionar a opção Data
point simples na lista de seleção de componentes e definir suas configurações. Primeiramente,
deve-se atribuir o Data point desejado ao item (no caso o que está representando o registrador
holding que contém o valor do PWM a ser utilizado no acionamento do led vermelho), em
seguida o usuário pode ou não definir um texto para aparecer juntamente com o valor e por fim
deve-se marcar as duas caixas de seleção. O próximo passo consiste em simplesmente
escolher as duas imagens para representar os estados distintos de funcionamento.

Após estes procedimentos torna-se possível alterar os valores dos PWMs simplesmente
posicionando o valor mostrado e clicando no ícone conforme mostrado na figura abaixo. Caso
estes valores sejam alterados enquanto o sistema estiver no modo manual, ocorrerá somente a
mudança no supervisório até a próxima atualização do sistema (que retornará o valor que
estava antes), no entanto, não haverá alteração no acionamento pelo fato de o código ser
protegido contra tal ação enquanto o sistema estiver operando de forma manual.

www.meccomeletronica.com Página 18
SISTEMAS SUPERVISÓRIOS MECATRÔNICA

Por último será desenvolvido o mecanismo utilizado para o controle do led on/off. Este pode ter
sinalização criada exatamente da mesma maneira que foi feita no início deste item com
os leds indicando os modos de operação, no entanto, o Data point escolhido para as imagens
que representarão o led aceso e apagado deve ser o LED_ON_OFF.

Para inserir o botão mostrado na figura anterior basta ir na lista de componentes do ambiente
de representação gráfica e selecionar a opção botão (escrita) e adiciona-lo. Num primeiro
momento deve-se incluir o Data point correspondente (LED_ON_OFF) da mesma forma feita
para os outros elementos além de marcar as caixas de seleção existentes. Posteriormente é
necessário determinar os textos que aparecerão quando o Data point escolhido anteriormente
assumir os possíveis valores além da altura e comprimento do botão.

www.meccomeletronica.com Página 19
SISTEMAS SUPERVISÓRIOS MECATRÔNICA

A figura a seguir exibe o resultado do projeto desenvolvido neste artigo, onde é possível ver o
sistema supervisório em questão possibilitando a análise dos valores além da sua
manipulação.

REFERÊNCIAS
https://youtu.be/bRI5CuD61Hs
http://www.scadabr.com.br/?q=downloads
https://www.youtube.com/watch?v=FTtGxBwroWE
https://drive.google.com/drive/folders/0B0B286tJkafVYnBhNGo4N3poQ2c?tid=0B0B286tJkafV
SENVcU1RQVBfSzg

www.meccomeletronica.com Página 20