Após muita procura por sites e ajuda do pessoal aqui do Laboratório ( principalmente do Adriano, Rui, Wiechert, Sidney e Italo ) vou postar como foi feita a comunicação do sensor DS18B20 com o scadabr utilizando o protocolo modbus. Ler todo post antes dos testes.

- Primeiro montamos o circuito. Componentes: sensor DS18B20, e um resistor de 4.7Kohm.

No meu caso os fio do DS18B20 são: Azul (data), Vermelho (Vcc) e Preto (GND). Estas cores podem variar.

 Na sequencia, baixamos a biblioteca OneWire (segue o link: http://www.pjrc.com/teensy/td_libs_OneWire.html), descompactamos e incluímos na pasta library do programa arduino.

Para facilitar baixamos o codigo Arduino_ModBus.ino que se encontra nesta pagina  http://labdegaragem.com/forum/topics/arduino-scadabr-modbus. Neste consta a integração do protocolo onewire com o codigo modbus implementado pelo Wiechert. 

Compilamos o codigo (lembrando que usei o IDE 0.23 do arduino ) e pronto.

Presumindo que já temos o ScadaBR instalado no pc, acessamos o ScadaBR e vamos em datasource. Escolhemos o protocolo ModbusSerial e incluimos. Conferir principalmente a porta e a velocidade (baud rate) se está compativel com o arduino. No meu caso mudei a velocidade no arduino para 9600. Salvamos ( no meu caso dei o nome de teste ds18b20) e partimos para a procura de nós. Se estiver tudo certo, logo o nó será encontrado. Vamos agora, colocar o data point.  Na mesma pagina do datasource, no final, clicamos em incluir datapoint e deixamos como mostra a figura. O nome pode mudar a gosto e no meu caso deixei como sensor 1. 

Vamos ver se deu tudo certo? Vamos em watch list e clicamos em teste ds18b20 e ao lado deverá aparecer a temperatura, como na imagem. 

- Tem um detalhe onde me bati bastante para descobri e deposi de analisar o post que passei a cima (http://labdegaragem.com/forum/topics/arduino-scadabr-modbus) é que entendi. No código compilado no arduino tem um equivoco, que é explicado pelo Sidney.  Na imagem, mostra qual a variável está sendo enviada para o Scadabr ( regs[0] = analogRead(DS18S20_Pin ); Oque acontece, é que foi escrito toda uma conversão de temperatura e estamos enviando para o Scada sem essa conversão. Pelo menos isso foi oque eu entendi.Então mudei para que o valor seja pego de getTemp().

Outra coisa que também deve ser arrumada no código antes de compilar é tornar todas as linha que tenha Serial.Print como comentário. Não apagar, pois segundo o Adriano da M.... Vejam na imagem acima na ultima linha.  Ha pessoal, esse codigo só rodei no IDE versão 0.23. Não testei em outros.

Me bati bastante para fazer e se não fosse a ajuda desses feras aí do laboratório, não teria conseguido. Talvez tenha mais coisas para refinar e aqui está o post para a colaboração de todos. 

Mais uma vez obrigado aos gênios do laboratório que tem a consciência de que, ajudando nós, pobres iniciantes no assunto, também acabam estudando e se aperfeiçoando. Uma forma de não esquecer aquilo que aprenderam.

Segue alguns sites com bastante informação e os softwares.

http://labdegaragem.com/forum/topics/arduino-scadabr-modbus

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

http://www.scadabr.com.br/?q=downloads

http://www.arduino.cc/en/Main/OldSoftwareReleases

Exibições: 1475

Responder esta

Respostas a este tópico

Show juliano, 

fico feliz de ajudar mais um feliz usuario scadabr, nosso objetivo e de torna o scadabr uma solução aberta, robusta e acessivel a todos empresas ou usuarios, agora e pegarmos as informações e refinarmos os codigos e o merito é todo seu pela sua raça em resolver a questao. 

grande abraço.

Juliano se possivel post o codigo exatamente que colocou no seu arduino no paste bin e deixe como referencia

Segue o codigo usado no tutorial

http://pastebin.com/MQYmgmV7

Parabéns Juliano, Sidney, Adriano,  e todo pessoal do grupo Scadabr, bem como o pessoal que lhes ofereceu ajuda sempre aqui como o Wiechert, e desculpem se não menciono a outros por desconhecimento.

Estão demonstrando que quando as pessoas se propõem com determinação a fazer as coisas funcionarem bem, o fazem, persistência, paciência, trabalho em grupo, e compartilhando vosso conhecimento, o que torna vosso trabalho muito mais digno de admiração.

Boa sorte  a todo grupo, é bom ver isso, faz bem a todos.

Abraços.

Carlos faltou mencionar o Rui...que foi essencial $=)

O Rui é da família, rsrsrsrs.

Abs.

Eu sempre que puder gosto de ajudar.

Aos que precisam de ajuda se forem bem objetivos e seguirem uma sequencia lógica sempre encontraram alguem para ajudar.

Até

Bom dia, Agora estou tentando incluir mais um sensor no code mas não estou conseguindo fazer a leitura no scadabr. Inclui alem do DS18B20 um NTC. Coloquei no datapoint, cada um com offset diferente, mas só consigo fazer a leitura do ds18b20. Segue parte do codigo que coloquei no arduino: http://pastebin.com/0r8Rds1t. Alguém tem alguma sugestão?

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço