Hardware
Para montagem do hardware utilizei um Arduino NANO, LEDs, resistores, 1 LDR, 1 sensor de temperatura
LM75A, e um push button. Como utilizei apenas um escravo no precisei utilizar o meio fsico RS485, assim
utilizei a prpria porta USB do Arduino, mas para mais de um escravo ser necessrio utilizar conversores
RS232(PC) para RS485 e de RS485 para TTL(Arduino). A Figura 1 mostra como seria efetuada esta
ligao.
Figura 1: Esquema de ligao rede RS485 utilizando Arduino e MAX485. Fonte: www.scadabr.com.b
A Figura 2 apresenta o circuito montado na protoboard para teste, desenhei no Fritizing (no me dei ao
trabalho de criar novos resistores ento coloquei o valor sobre eles)
Software
Aqui darei mais nfase no Elipse SCADA uma vez que o programa do Arduino esta comentado e no h
muito o que falar sobre ele aqui, o mesmo pode ser baixado leste link.
O Elipse SCADA um software pago e bastante utilizado na indstria, porm para at 20 tags (variveis) e
duas horas de execuo seu uso livre. O download pode ser efetuado no prprio site da
Elipse www.elipse.com.br, porm ele vem sem o driver modbus e para baix-lo e necessrio efetuar um
registro e aguardar aprovao, mas voc tambm pode baix-lo deste link.
Aps instalado e Elipse para adicionar todo contedo da arquivo Modbus.zip a pasta C:\Program Files
(x86)\Elipse SCADA\Drivers, feito isso hora de comear a configurao do sistema.
Ao abrir o Elipse SCADA ele ir procurar pela Hard-Key, porm como voc no comprou um licena ele ir
perguntar se deseja rodar como Demo, marque sim.
A imagem abaixo mostra a tela inicial do Elipse SCADA, voc poder criar uma nova aplicao a partir do
zero ou utilizar a que criei que pode ser baixada neste link.
Ao abrir o arquivo a tela da imagem abaixo ser apresenta, estarei explicando cada item desta tela.
Para adicionar/configurar um driver, criar tags e outras configuraes clique no cone circulado de vermelho
na imagem abaixo.
Primeiramente vamos carregar o driver Modbus clique em "drivers" depois em "localizar" e navegue at a
pasta onde colocamos o driver "C:\Program Files (x86)\Elipse SCADA\Drivers" e escolha o arquivo
"Modbus.dll", aps carregar o driver clique "Configurar" para abrir a janela de configurao do driver e
depois em "Extras".
Na primeira aba "Modbus" provavelmente voc no ter que alterar nada mas confira se esta igual a
imagem abaixo.
Na segunda aba "Setup" voc escolher o "Physical Layer" do modbus escolha serial.
Na terceira aba "Serial" onde iremos configurar nossa porta serial. se estiver utilizando o cdigo do
Arduino que disponibilizei a configurao que ter que alterar ser "Port" que qual porta serial o Arduino
esta plugado, se estiver utilizando outro Sketch configure a serial conforme foi configurada no mesmo.
N1: Endereo do equipamento escravo (CLP) na rede. Este endereo pode variar de 1 a 255. Podese ainda configurar este parmetro com o valor 0. Com isto, este tag trabalhar em modobroadcast,
enviando a mensagem para todos os equipamentos escravos (CLP) que estiverem na rede.
5
NOTA: no modo broadcast, com N1 = 0, no possvel realizar leituras, apenas escritas. Neste
modo, todos os equipamentos na rede sero endereados, recebendo o valor escrito, e no
retornando qualquer resposta, de forma a evitar conflitos na rede.
N2: Cdigo da operao. Referencia uma operao de leitura ou escrita adicionada na janela de
configuraes do driver.
N3: Parmetro adicional. Para as funes de leitura e escrita de arquivos (funes 20 e 21), o
parmetro N3 especifica o arquivo a ser acessado. Para as demais funes de leitura e escrita de
registradores, N3 especifica a mscara a ser usada na leitura. Esse parmetro s ser usado se a
opo Use Bit Mask for habilitada para a operao em uso, e o nmero de um bit especfico a ser
retornado for selecionado. O valor zero indica o bit menos significativo. O valor do bit
selecionado ser sempre retornado no bit menos significativo do valor. Ou seja, se a opo Use
Bit Mask estiver habilitada para a operao na janela de configurao, o valor retornado do tag
ser sempre 0 ou 1.
N4: Endereo do registrador ou da varivel no equipamento escravo (CLP) que se deseja ler ou
escrever.
Para ler o registrador MB_40003 deve-se colocar 4 no parmetro N4 pois os registradores comeam em 0
no Arduino mas em 1 no Elipse.
O "scam" e tempo em milissegundos que voc deseja que a tag seja atualizada.
Aps configurar cada tag voc test-las clicando em "Ler" ou "Escrever", caso retorne uma mensagem de
erro veja veja o pode estar errado.
Caso deseja configurar uma escala marca o tolbox "Escala" e configure as escalas.
Exemplo: um potencimetro ligado a uma entrada analgica do Arduino com uma tenso que pode variar de
0 a 5 Volts.
CLP Inferior: 0
CLP Superior: 1023 (conversor analgico de 10 bits do Arduino)
Sist. Inferior: 0
Sist. Superior: 5
Assim voc mostrar o valor j em tenso no Elipse.
Aps selecionar o item desejado clique na tela com o boto esquerdo do mouse e arraste at o item ficar do
tamanho que desejar.
Para alterar as propriedades do item basta um clique duplo sobre o mesmo.
Vamos configurar um item do tipo "boto" para ligar e desligar um LED ligado ao Arduino.
Propriedades do boto: basicamente temos que configurar trs itens em um boto, a mensagem, a moldura
e tag.
Mensagem: mensagem que o boto ir exibir, cor e o valor que ele enviar para a tag;
Moldura: ttulo do boto;
Tag: o mais importante, qual tag esta associada ao boto.
A imagens abaixo mostram as tela de configurao do boto.
Para associar a tag ao boto navegue na janela objetos at a tag deseja clique nela e em seguida clique em
"adicionar".
Em seguida vamos configurar um item do tipo "texto" para do para mostras o estado de um boto ligado ao
Arduino.
Zonas: onde configuramos o texto a ser mostrado e a cor do fundo acordo com o valor da tag (os valores
de mximo e mnimo e mximo so configurados de acordo como o desejado para variveis digitais deve-se
colocar o mesmo valor em ambos conforme as figuras abaixo);
Moldura: idem boto;
Tag: idem boto.
Em seguida vamos configurar um item do tipo "slider" para enviar um sinal PWM a um LED ligado ao
Arduino.
Geral: aqui configurado os valores mnimos, mximos e o passo do slider assim como a posio e o modo
de atualizar.
Moldura: idem boto;
Tag: idem boto.
10
Em seguida vamos configurar um item do tipo "trand graph" para mostrar a temperatura do LM75A e o valor
do sinal AD do LDR.
Geral: aqui configurado basicamente a largura (intervalo de) do grfico em segundos e a taxa de
atualizao do mesmo;
Grfico: tipo de escala (normal, logartmica e potncia). limites superior e inferior do grfico, nmeros de
linhas de grade cor de fundo, etc ;
Pena: que tag ser apresentada no grfico (clique no cone da caneta depois em "Y axis" e navegue at a
tag desejada clique nela e depois em "copiar script-->") .
Moldura: idem boto.
11
Em seguida vamos configurar um item do tipo "display" para enviar um sinal PWM a um LED ligado ao
Arduino.
Formato: formato do numero a ser mostrado com prefixo, sufixo, nmero de algarismos e casas decimais.
Moldura: idem boto.
Tag: idem boto.
12
O ttulo do sistema com fundo azul claro e um item do tipo texto onde s foi configurado a moldura.
Abaixo segue vdeo do sistema em funcionamento (Apenas a tela do PC).
13