-
Autor : Paulo Roberto Rangel FalcoDuque de Caxias RJ
23/09/2012.
Tutorial Comunicao ModBus RTU com Arduino e o Supervisrio Elipse
Scada
Bom, apresento neste momento um pequeno Tutorial para efetuar a
comunicao ModBus no Supervisrio Scada com a plataforma de estudo
Arduino.
Neste artigo no uma explicao do Software Elipse Scada e sim uma
uma breve ajuda para que possamos efetuar a configurao do drive de
comunicao ModBus RTU com o Elipse Sacada.
Os Testes foram feito na plataforma Arduino Duemilanove 328 e do
Software Elipse Scada Elipse Demo v2.29 build 126.
O Software pode ser baixado no
endereo:http://www.elipse.com.br/port/download_scada.aspx
1 Passo Ser uma pequena explicao do protocolo ModBus RTU.
Somente sendo abordado os holding register. 2Passo Ser uma pequena
explicao da modificao que eu efetuei no programa ModBus Slave.
3Passo Ser uma pequena explicao do painel Principal do Software
Scada Elipse. 4Passo configurao do drive Modbus. 5Passo inserindo
objetos e tags.
-
Protocolo Modbus
Histria Criado em 1979 para comunicao entre controladores da
Modicon (Schneider).Especificao aberta desde o inicio,fcil operao e
manuteno. Padro de fato ao ser adotado por vrios fornecedores.
adotado em vrios nveis de aplicaes, inclusivesistemas de
superviso.
Padro do Protocolo Modbus
O Padro ModBus define um protocolo de Mensagem na camada de
aplicao , posicionando no 7 nvel do modelo de referncia OSI que
prov comunicao Cliente /Servidor entre dispositivos conectados a
diferentes tipos de barramentos ou topologia de rede. Este padro
tambm especifica um protocolo de comunicao serial para requisies
ModBus entre um mestre e um ou vrios escravos.
Protocolo Modbus em Linha Serial
Na cama fsica os sistemas ModBus em linha seriais podem usar
diferentes interfaces fsicas (RS485,RS232 e etc). A interface RS485
de 2 fios(Half Duplex) a mais comum. No entanto, a interface RS485
de 4 fios(Full Duplex) tambm pode ser implementada. A interface
serial RS232 s pode ser utilizada quando uma comunicao ponto a
ponto de curta distncia.
OBS: sobre a distncia de comunicao da rede RS 232 depende do
hadware,pois j estendi um cabo para esta comunicao a mais de 50
metros e o sistema funciona perfeitamente.
Funo ModBusComo a modificao da biblioteca ModBus Slave foi
efetuada somente nos holding register ento s abordarei este
registrador neste tutorial.
A Funo 3 (Read Holdig Register) Efetua a leitura dos valores dos
registradores de memria do endereo (40XXX ).dentro da biblioteca do
ModBus Slave pode ser criado um valor considerado de registradores
para serem atrelados a pinos do Arduino ou incorporados a variveis
para que o mestre possa ler seus valores, e assim podendo ser
visualizado em um Display, Ou compartilhado para outros componentes
da rede como: outra plataforma Arduino,CLP, IHM , Etc... MESTRE
ESCRAVO1 ESCRAVO2 ESCRAVO3 ESCRAVO 4
-
ModBus Slave programa Modificado
Na figura acima mostrado como foi criados registradores. como
est sendo utilizado os holding register foi endereado com
especificado na norma ModBus.
A figura acima ser utilizado como uma tabela para enderear
quando estiver configurando os tag no Elipse. Os controladores
universais industriais trabalham nesta mesma ordem cada registrador
atrelado h uma funo.
EX : SP: registrador 40001,PV 40002.Dados retirado do manual do
controlador universal modelo CPM49 fabricado pela Contemp.
Configurao serial
const unsigned char SLAVE = 10; este parmetro configura o
endereo do escravo. const long BAUD = 115200; este parmetro
configura a velocidade de comunicao da porta serial. const char
PARITY = 'n'; este parmetro configura a pariedade da comunicao da
porta serial. const char TXENPIN = 2; este parmetro configura o
pino que habilita e desabilita o CI MAX 485 quando est sendo usado
o conversor 485/TTL.
-
Na figura acima mostra como que foi atrelado os pinos do Arduino
com os registradores
regs[MB_40000] = analogRead(A0); neste registrador ele assume
qualquer valor analgico que seja submetido ao pino A0.
analogWrite(3,regs[MB_40006]); neste registrador ele enviar um
valor para o PWM do pino 3 ou pode ler o valor do PWM quando for
inserido anteriormente.
OBS: a funo analogwrite(). Assume valores de 0 255, ento no ser
possvel enviar valores maiores que 256.
digitalWrite(2, regs[MB_40012]); neste registrador ele enviar um
valor digital para o pino 2 ou receberaum valor inserido no pino 2.
EX: acionamento de um rel ou leitura de um boto sem eu respectivo
pino.
Agora grave o programa Elipse_Modbus em eu Aduino para podermos
configurar o Software Elipse Scada.
Muito importante!!!!!!!!
Os valores que so enviados para os registradores especialmente
as entradas analgicas no foram acrecida de nenhuma funo matemtica
para correo ento ser necessarissimo inseri-las para
calibrao.Resumindo os valores so puramente o que ser injetado na
entada do respectivo pinos.
Supervisrio Elipse ScadaA pois do software est devidamente
instalado ser necessrio a verificao do drive Modbus.DLL em
C:\Arquivos de programas\Elipse SCADA\Drivers, normalmente so
instalados com o software,mas prudente verificar.Caso ocorra algum
problema e o arquivo no esteja na pasta possvel baixar no site da
empresa.
A figura abaixo ilustra o descritivo.
-
Clik no cone que foi criado no desktop para iniciar o
programa.
Apos o procedimento vai aparecer esta mensagem e clik e sim.
para rodar o demo do software.
Ento aparecer a janela do software,observe que praticamente
todos os componentes da paleta esto apagados isso ocorre pois no
existe nenhuma aplicao ento deveremos criar uma nova aplicao,que
veremos nos quadros abaixo.
-
Ento Clik em arquivo menu,nova aplicao como mostra a figura
abaixo.
Vai aparecer uma caixa de dialogo para salvar o nome e a
localizao do aquivo, como mostra na figura abaixo.
-
Agora o ambiente de desenvolvimento est pronto para comeamos
efetuar as configuraes. observe que apois a criao da aplicao todos
os componentes da paleta esto ascesos.
Adio do drive ModBus
1 passo acessar o componente Organize onde se encontram os
drives,tag ,etc. 2passo dentro do da caixa de dialogo Organize clik
em drive.3passo clik em novo para adicionar um novo drive.4 passo
apois de aberta uma nova caixa de dialogo ser necessrio localizar o
drive: A localizao do drive se encontra
-
pagina 4 no inicio do tutorial.5abrir o drive.A figura abaixo
inlustra pasta Organize apois a adio do Drive.
Configurao do Drive
1passo: Click em configurar.2passo: Em Propriedades do drive
Click em avanado.3passo:marque a opo inicia drive quando carregar a
aplicao e clik em OK: Se no fizer este procedimento o drive no
carrega quando rodar a aplicao.
-
Continuao
1passo: Click em extras.2passo: Em ModBus Functions necessrio
efetua ar seguinte modificao Func.= 03, data= int 163passo:No
quadro ao lado onde sero feitas as modificaes apois o preenchimento
do quadro pressione ok pra efetuar as mudanas. OBS:desmarque Use
Older Address.
Abaixo apresentado como deve ficar a configurao.
OBS:desmarque Use Older Address.
-
Apois a configurao da funo que ser acessada ser necessrio
configurar aporta serial do drive click na aba seriale efetue a
configurao como mostra a figura abaixo:
OBS:A (COM) que ser utilizada mesma que est sendo usada pela a
IDE do Arduino. Os dados da comunicao Serial do programa ModBus
Slave est sendo explicada na Pag. 3.
Apois a configurao feche os Dialogos, Menos o do organize, pois
no proximo passo ser criado o tag pra poder testar a comunicao.
1passo: Click em tag.2passo: Click em Novo tag
-
3passo: Click em Tag Plc____. utilizado para trocar informaes
com os equipamentos de aquisio de dados (escrita e leitura).4passo:
de um nome para o tag e a quantidade de tag que voc deseja em seu
projeto. E pressione a tecla Enter.
1passo: podemos ver o tag que foi criado. A ideia de criar o
nome do tag esma de criar uma variavel.a escolha do nome desejavel
que seja sujestivo como estamos associando aos registradores do
Arduino ento no vou criar um tag( cachorro quente).ento criei o tag
REG_40000. Pois vai ser o registador que eu vou acessar no
Arduino.
2passo: Neta jnela podemos observar o nome do drive que estamos
usando neste exemplo. 3passo: nesta janela podemos observar os 5
canpos para configurao: N1,N2,N3 e ScanN1=Endereo do escravo no
nosso caso 10.N2= Funo do drive que funo Holding Register 3N3=No
usado.N4= Endereo do registrador no nosso casso o 40000 que est
atrelado a entrada analogica do Arduinno A0.Scan = . o tempo que o
drive leva para atualizar os seu dados esta setado para 1segundo.4
passo: Eonde poderemos testar a comunicao do Arduino com o Software
Elipse Scada.Caso voc tenha seguido todos os passos descritos
acima, Nesta janela aparesentara o valor que poder ser visualizado
na figura abaixo apois precionar o boto ler .
-
Se ocorrer a resposta leitura OK. Significa que voc segui os
passos anteriores muito bem.Agora vamos adicionar um objeto na
nossa aplicao. E adcionar um tag. Feche o dialogo Organize e v na
paleta de componentes e d um o Click no componente Display e o
arraste para o meio da tela como mostra a figura abaixo.
-
D um duplo Click no objeto Display. abrir um dialogo chamado
Propriedade do Display.
1passo: Click na aba tag.2passo: D um duploClick em Aplicao e um
duplo Click na pasta tag, e selecione o tag
REG_40000.3passo:Prescione o boto Adicionar e pronto. J adcionamos
um tag para o Display.4Observe que a mensagen que esta no centro do
Display mudou como mostra na figura abaixo.
Agora feche o dialogo do Display e preciona a tecal F10 do seu
teclado para rodar a aplicao como pode ser vista na figura
abaixo.
Referencias;Manual do driver Modicon Modbus Tutorial Elipse
Scada.Rede Modbus Eng. Marcelo Saraiva Coelho. Biblioteca Modbus
Slave: Andr Sarmento Barbosa
-
4sdshbnbn
HTHRTHHRT
RTRTRTHRTHRTT
-
WEFGRRRDSVSDFVIIOIOPLUIUUIIU
TJ65