Automação – Utilizando Arduino, ScadaBR, Modbus RTU RS485

Estou precisando de ajuda em algumas coisinhas bem bobas (eu nunca fiz nada parecido, não tenho conhecimento nessa área, sou nova com tudo) a respeito de uma automação que estou fazendo no meu estágio.

Eu preciso fazer a automação da leitura de dados de um MMG (Multimedidor de Grandezas, modelo Power Meter 710 da Schneider - como o a figura, com manual do fabricante em: https://www.schneider-electric.com.br/pt/download/document/63230-50...). As ferramentas foram definidas pelo meu chefe, e eu usarei um Arduino (tentei o Leonardo, mas tive problemas com a identificação das portas dele, então agora estou com o UNO), ScadaBR, Modbus RTU com camada física RS485 (o medidor suporta isso). Assim, eu pegarei os dados do Medidor (com fios para RS485) com um Arduino uno usado um módulo RS485, e o ScadaBR vai me mostrar o dados do Arduino, para que eu gere relatórios e veja os gráficos no ScadaBR.

Eu fiz alguns testes inicialmente para ver como funcionava uma leitura de dados do Arduino pelo ScadaBR, como esse: https://www.embarcados.com.br/supervisorio-com-scadabr/ (este então é o úico conhecimento que eu tenho sobre o assunto, fiz esse exemplo para começar).

Minhas dúvidas:

- Qual biblioteca para o Arduino utilizar? Eu preciso das funções 0x03, 0x04, 0x06, 0x10, 0x11 e 0x2B (pois são as funções suportadas pelo medidor POWER METER 710). Até agora estou com idéia de usar a biblioteca ModbusMaster (e suas versões – disponíveis aqui: http://4-20ma.io/ModbusMaster/modules.html ) . Ela tem o que eu preciso. Mas será que tem outra mais simples? Até pq eu não encontrei nenhuma que suporte as funções 0x11 e 0x2B ( essas funções são especiais, ou preciso que atenda elas também?)

- Eu preciso acessar pelo menos 32 registros do medidor (pode ser mais que isso), o que significaria 64bytes. Mas e o ring buffer do Arduino? Como faço pra ele aceitar um numero grande no ring buffer? Quem define isso é a biblioteca? Além da limitação de algumas funções sobre isso, pois pelo que eu li a função 4 por exemplo, consegue ler múltiplos registros de no máximo 54bytes = 29 registros. Essa função também consegue ler registros entre 30001 e 3999 (isso é definido pela biblioteca?) É isso mesmo? Pois segundo meu manual, meus registros estão a partir de 4000 até 4200, olhem a figura aí pra vcs entenderem o que eu estou falando.

- Sobre o offset do ScadaBR, do protocolo Modbus RTU: quando eu for fazer a leitura de dados pelo Arduino, devo considerar que meu registro precisa ser ajustado no offset, ou essa lista de registro do manual do meu medidor já está supondo isso? Por exemplo, o registro do manual é 4076. Como fica ele no ScadaBR? (pq o Modbus RTU tem esse offset né?)

 

Exibições: 4493

Responder esta

Respostas a este tópico

Boa tarde, 

Seu projeto é complexo. Não tenho conhecimentos em ScadaBR e nem em MOdBus. 

Você já conseguiu fazer a conexão física Arduino / RS485 / Panel Meter 710 ? 

Já conseguiu configurar o Power Meter 710 ? Set Up Communications

Acho que é o primeiro passo. 

https://www.embarcados.com.br/arduino-e-scadabr/

http://labdegaragem.com/profiles/blogs/tutorial-como-utilizar-o-shi...

Boa tarde José Gustavo, então eu ainda não consegui fazer a comunicação Arduino/RS485/Meter. O que eu consegui fazer foi a conexão do Arduino com o Scada. Minha maior dificuldade está entre o Arduino e o Medidor. Na verdade, na parte de entendimento do código do arduino para o protocolo. A configuração do medidor não é complicada. 

"Minha maior dificuldade está entre o Arduino e o Medidor."

Para você começar os testes, precisará dessa conexão física não ? 

Então, eu comprei um módulo RS485-TTL. Daí, conectando ao medidor-arduino, eu já teria meus dados para trabalhar no Arduino. Acha que essa é uma boa escolha?

Sim , acho que com essa interface poderá fazer a conexão RS485. 

Envie o link do seu módulo.

Já sabe como faze-la ?

https://www.schneider-electric.com.au/en/download/document/33003925...

Qual é o conector RS485 no panel Meter 710?

ALendo o manual do Power Meter 710.

O painel tem inúmeros registradores de leitura (read)  e de escrita (write) .  

R/W - pode ser lido ou gravado           RO = read only (leitura somente) 

NV = non volátil (isso é, ele fica gravado no aparelho, mesmo desligado) 

Cada registrador pode ter 1 (integer) ou 2 bytes (float ou Long) .

APPENDIX B—REGISTER LIST

Comandos ModBus suportados :

Achei esse manual interessante >

Modbus Serial Line, Planning and Installation Guide

https://www.schneider-electric.com.au/en/download/document/33003925...

Qual é o conector RS485 no panel Meter 710?

Então.... eu disse isso lá em cima, as funções que o medidor suporta. E não vou ler todos registradores dele. Eu só preciso da leitura de alguns, e somente leitura. Eu já havia explicado isso. Também sei fazer a conexão RS485. Meu problema é: A programação do Arduino, para que eu acesse  a leitura dos dados que eu preciso do medidor.

Como eu já disse, eu não conheço ScadaBR e nem  MOdBus.

Estou pesquisando por partes, para tentar entender. 

Estou aprendendo. 

Você já conhece então o protocolo ModBus, não é ? Eu não. 

Modbus Protocol - schneider

http://www2.schneider-electric.com/resources/sites/SCHNEIDER_ELECTR...

https://www.schneider-electric.com/en/faqs/FA168406/

RTU = remote terminal unit

Entendi. Sim, já estudei sobre o protocolo. Tenho até um material bom, caso queira, pode me pedir por email

Tutorial de como instalar Bibliotecas no Arduino :

http://labdegaragem.com/profiles/blogs/tutorial-arduino-instalando-...

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço