Olá amantes e apreciadores de automação!
Eu e um amigo estamos realizando um projeto no nosso campos do IFSP, porém estamos enfrentando alguns problemas com algumas medições de temperatura. Estamos tentando fazer uma conexão ModBus Serial RTU com o ScadaBR, contudo está gerando erros, e um deles é o mostrado na imagem a baixo...E isso gera um não recebimento de dados, queria a ajuda de vocês para concluir essa tarefa.

Especificações: Sensor DS18B20;

Arduino MEGA 2560;

Tutorial do código para comunicação com ModBus: https://sites.google.com/a/certi.org.br/certi_scadabr/home/minicurs...

PS: Estou a disposição para qualquer duvida.

Att

Exibições: 4534

Responder esta

Respostas a este tópico

Oi Italo, aqui encaontra-se alguns material para pesquisa:

http://labdegaragem.com/forum/topics/scadabr?id=6223006%3ATopic%3A1...

http://labdegaragem.com/video/tutorial-scadabr-parte1

Por padrao usamos a biblioteca do jpzometa, mas ela tem alguns problemas quando é programado com temporizaçao, se vc procurar com calma vai encontrar alguns melhoramentos feitos nesta biblioteca pelo andre sarmento e uma blioteca modbus ASCII liberado pelo pessoal da MCA representado pelo VIctor Push(o nome está errado, mas é algo parecido), ainda tem a biblioteca mobus TCP, mas tenho que achar por aqui, to enviando a biblioteca jpzomenta. No video eu ensino como utiliza a biblioteca

Anexos

Quantos registradores de entrada vc colocou

Valeu pessoal, estou junto com o Ítalo neste projeto no meu caso tenho que fazer medição acústica.. Eu até consegui fazer a comunicação modbus serial utilizando apenas um potenciometro, porém tentamos fazer a comunicação criando um código de incremento que começa com 1 e vai até x, porém não deu certo, no caso pensei que era a mesma ideia.

Pessoal, como é possível, eu utilizo um arduino duemilanove e funciona minha comunicação com modbus usando potenciometro, porém o mesmo código usando um arduino Mega 2560 não funciona... Alguém sabe por que isso? 

Primeiro, 

vcs não vão deixar a gente com água na boca. Descrevam os testes. Principalmente tendo um campus ajudando podemos fazer muita coisa juntos.

Depois temos que fazer alguns ajustes. A instalação que uso para testes está funcionando faz um bom tempo. Já estamos com modbus ip e modbus rtu funcionando alem de calcularmos algumas coisas e fazer a entrada manual de dados.

Primeiro, vcs estão com a id certa do slave?

Segundo, vc ta com o datasource ligado ou desligado. Na imagem não dá para perceber.

Lembrar que a biblioteca do jpmzometa não implementa todas as funções do modbus. Vcs procuraram por status do coil. Vcs prepararam o código para isso? Tentem a faixa de registrador de holding.

Vamos fazer algo mais ousado. Se toparem podemos planejar algo para diferenciar o trabalho. Tudo em prol do aprendizado.

podem me add no skype : farmsid

Então Sidney desculpa a demora para responder, acreditamos que sim a id esta correto, datasource também, quando colocamos tanto status do coil quando registrador de holding da Erro de rede :s. Tudo caro colega, e já te adicionei no skype, acredito que você já aceitou, só falar a hora que normalmente você se encontra online :D

Obrigado

Pessoal, conseguimos fazer a leitura com o sensor agora estamos tendo um probleminha na configuração com o ScadaBR, no arduino mostra certinha a leitura, quando configuramos no ScadaBR ele fica variando entre 28.0 e 32.0, segue em anexo o código que estamos utilizando.

Aqui a imagem da configuração do Data Point..

Anexos

Agora eu acho que o problema está no sensor, tipo: ligação, variação por vento, etc

O scadabr não interferiria no valor em si.

Dá mais uma olhada nas ligações.

Italo,

realmente entre o tempo que ele lê o registrador e o que ele mostra demora dependendo do tempo de atualização. Isso é claro.

Mas se vc coloca uma temperatura no sensor, essa temperatura vai para o registrador no arduino. Dai para frente não tem como mudar.

Então, veja, se o sensor estiver em um local com temperatura constante o que pode estar acontecendo é a leitura fisica do sensor estar sendo influenciado. Tudo vai depender do sensor.

Por exemplo, tenho um sensor de temperatura em um aquario. Ele é daqueles digitais. Pois é a variação dele no aquário usando um termostato é da casa de 0,1. Ou seja, a temperatura varia pouquissimo.

Mas depois que o sensor coloca no registrador do arduino a leitura, o tempo que o scadabr leva para ler não vai influenciar no valor, exceto se for tão grande que o local mude de temperatura. 

Não sei se entendeu. Mas você está bem perto.

Italo,

vi o seu problema e entendi o que está buscando. 

Continuo achando que o dado não é o mesmo. Talvez não estamos apontando para o mesmo lugar, ou seja, o mesmo registrador.

Mas já passei por algo semelhante em um caso, e tratava-se de arredondamento.

Primeiro, era bom vc arrumar as casas decimais do scadabr. Aqui não da pra explicar mas tem como colocar todos com 1 casa depois da virgula.

Depois armazena no registrador a informação multiplicada por 100. Lá no scadabr vc multiplica por 0,01. 

Assim, podemos ver o que está variando.

Vamos ver se conseguimos nos encontrar virtualmente durante a noite para facilitar.

até

Olha só, depois da ultima mensagem fui olhar o codigo que está acima.

e realmente as coisas são diferentes.

vc está colocando no registrador uma coisa e mandando imprimir outra coisa.

Pra vc ver a mesma coisa vc teria que mandar imprimir na serial o registrador.

Trata-se de um equivoco. Pode arrumar ai que vai dar certinho.

até mais e fique firme no propósito do conhecimento.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço