Arduino Com ScadaBR
-
Upload
miguel-a-v-fusco -
Category
Documents
-
view
217 -
download
0
Transcript of Arduino Com ScadaBR
-
8/11/2019 Arduino Com ScadaBR
1/3
Arduino com ScadaBR
Contedo
1Pr requisitos
2 Preparao Bsica
3 Preparando o Arduino para comunicao Modbus
4 Configurando no ScadaBR
Pr requisitos
- Software do Arduino 1.0 instalado no PC
- Software ScadaBR mais recente instalado no PC
- Conhecimentos bsicos do Arduino (portas, pinos, etc)- Conhecimento sobre carregar/baixar programas para o Arduino- Conhecimento sobre como utilizar bibliotecas e "arquivos .h" para um projeto mais organizado- Conhecimento bsico sobre o protocolo Modbus
- Conhecimento bsico sobre o ScadaBR - usurios iniciantes devero estudar emhttps://sites.google.com/a/certi.org.br/certi_scadabr/home/minicursos/iniciando-scadabr
Preparao Bsica
Foi desenvolvido um pequeno programa para posicionar o servomotor. Testado e tudo OK -arduino, serial, servomotor operando etc.Este passo para ter certeza que no h nenhum problema, antes de partir para acomunicao propriamente dita. Recomendamos que vc tambm execute um teste simplesantes de comear.
Preparando o Arduino para comunicao Modbus
O Programa utilizado est em anexo nesta pgina, veja link para download mais abaixo.
Foi usado o software Arduino Modbus RTU - veja emhttp://sites.google.com/site/jpmzometa/arduino-mbrt/arduino-modbus-slaveMuito bom o trabalho desses caras, inclusive com contribuies de pessoas que j estavamusando antes com o Mango M2M, vale a pena dar uma conferida.
Neste exemplo escolhemos baixar o arquivo .pde que mais fcil, mas se vc quiser maiororganizao, use o tar.gz e estude como fazer import das bibliotecas corretamente.
Aps o upgrade do Arduino 1.0, existe uma correo a fazer. O comando:Serial.print(query[i], BYTE);
foi ento trocado por:Serial.write(byte(query[i]));
Preste muita ateno nestes trechos de cdigo a seguir, pois aqui vc define o endereo do
https://sites.google.com/a/certi.org.br/certi_scadabr/home/minicursos/arduino#TOC-Pr-requisitoshttps://sites.google.com/a/certi.org.br/certi_scadabr/home/minicursos/arduino#TOC-Pr-requisitoshttps://sites.google.com/a/certi.org.br/certi_scadabr/home/minicursos/arduino#TOC-Pr-requisitoshttps://sites.google.com/a/certi.org.br/certi_scadabr/home/minicursos/arduino#TOC-Prepara-o-B-sicahttps://sites.google.com/a/certi.org.br/certi_scadabr/home/minicursos/arduino#TOC-Prepara-o-B-sicahttps://sites.google.com/a/certi.org.br/certi_scadabr/home/minicursos/arduino#TOC-Prepara-o-B-sicahttps://sites.google.com/a/certi.org.br/certi_scadabr/home/minicursos/arduino#TOC-Preparando-o-Arduino-para-comunica-o-Modbushttps://sites.google.com/a/certi.org.br/certi_scadabr/home/minicursos/arduino#TOC-Preparando-o-Arduino-para-comunica-o-Modbushttps://sites.google.com/a/certi.org.br/certi_scadabr/home/minicursos/arduino#TOC-Preparando-o-Arduino-para-comunica-o-Modbushttps://sites.google.com/a/certi.org.br/certi_scadabr/home/minicursos/arduino#TOC-Configurando-no-ScadaBRhttps://sites.google.com/a/certi.org.br/certi_scadabr/home/minicursos/arduino#TOC-Configurando-no-ScadaBRhttps://sites.google.com/a/certi.org.br/certi_scadabr/home/minicursos/arduino#TOC-Configurando-no-ScadaBRhttps://sites.google.com/a/certi.org.br/certi_scadabr/home/minicursos/arduino#TOC-Configurando-no-ScadaBRhttps://sites.google.com/a/certi.org.br/certi_scadabr/home/minicursos/arduino#TOC-Preparando-o-Arduino-para-comunica-o-Modbushttps://sites.google.com/a/certi.org.br/certi_scadabr/home/minicursos/arduino#TOC-Prepara-o-B-sicahttps://sites.google.com/a/certi.org.br/certi_scadabr/home/minicursos/arduino#TOC-Pr-requisitos -
8/11/2019 Arduino Com ScadaBR
2/3
slave, a quantidade de registradores, e as definies de porta serial.
/* Modbus RTU common parameters, the Master MUST use the sameparameters */enum {MB_SLAVE = 1, /* modbus slave id */
};/* slave registers example */enum {MB_REG0,MB_REG1,MB_REG2,MB_REG3,MB_REGS /* total number of registers on slave */};
int regs[MB_REGS]; /* this is the slave's modbus data map */
void setup(){/* Modbus setup example, the master must use the same COM parameters*//* 115200 bps, 8N1, two-device network */configure_mb_slave(115200, 'n', 0);}
void loop(){/* This is all for the Modbus slave */update_mb_slave(MB_SLAVE, regs, MB_REGS);
/* your code goes here */}
Aqui no loop exatamente onde precisa ser adicionado o seu programa principal.
A cada loop, ser verificado pelo comando update_mb_slavese houve um pedido de um
Master Modbus (no nosso caso o Master ser o ScadaBR).
Se o Arduino receber um pedido de "write", ele atualizar o valor da varivel regs (que um
array com os registradores) ficando o valor disponvel para o restante do programa.Se o Arduino receber um pedido de "read", ento ele responder com o contedo atual do item
especfico no array regs.
Por isso se vc quer "disponibilizar" o valor de um sensor, varivel interna etc. para o ScadaBR,
lembre-se se salvar a mesma no registrador correspondente (ou seja, regs[0], regs[1]etc.)
ao final do loop.
Neste exemplo convencionamos que o valor escrito no registrador zero, ser a posio doservomotor, e foi programada a funo loop() correspondente.
Agora basta fazer "Upload" do programa para o equipamento, usando o software do Arduino, eaps a transferncia automaticamente j estar disponvel como um Slave Modbus RTU, namesma porta serial do Arduino.
Configurando no ScadaBR
-
8/11/2019 Arduino Com ScadaBR
3/3
Agora que o Arduino j est conversando como um Slave, basta cadastrar o datasource e odatapoint Modbus para ele(para mais detalhes sobre configurao de modbus, veja no manual do ScadaBR, ou procurar"scadabr modbus" no youtube).