Alguém conhece o scadabr e sabe como usa-lo, caso conheça por favor entre em contato pois preciso de algumas informações.

Uma delas é o protocolo modbus pois queria saber como comunicar um sensor,atuador,etc como o supervisor por meio de um microcontrolador ou coisa paracida, me parece que para poder acionar ou receber informações o supervisorio precisa de um clp (que é caro) ou por um microcontrolador?

se alguém tiver informações sobre como usar e implementar ou pelo menos mostrar o caminho das pedras já agradeço.

adriano

Exibições: 97570

Responder esta

Respostas a este tópico

Fredman,

eu ainda pensei em você na hora que vi pois tem a ver com a produção de alimentos.

eu estou com a rede RS-485 pronta para monitorar os parâmetros. O scadabr ta quase pronto. Hoje um colega me ajudou a testar o scadabr com um emulador de porta serial.

Acho que amanhã terei esclarecido o código do arduino para escrever na serial.

Ai rapaz, vai ser show.

Terei o projeto da hidroponia quase pronto:

Um sistema de produção de carne de peixe associado com a produção de verduras sem agrotóxicos, controlado e monitorado pelo arduino associado ao Scadabr. Tal associação permite o controle das bombas de recirculação da água, o controle dos parâmetros, temperatura do ambiente, temperatura da água, umidade ambiente, pH da água, iluminação do ambiente, controle de abertura da porta com sensor de aproximação. Troca parcial da água.Tudo isso monitorado via internet de onde vc estiver.

To amando isso. Precisamos fazer uma discussão entre nós dois para afinarmos as coisas. Quem sabe não conseguimos melhorar mais, pois vc me ajudou a entender aquela parada do sólidos dissolvidos, lembra?

 

Nossa que fantastico.

 

Olha o link ai e vc vai apaixonar. Me ajuda a colocar isso pra frente.

http://spreadcom.dyndns.org:8088/ScadaBR/public_view.htm?viewId=9

Sidney tenta usar este codigo para um sensor de temperatura:

  1. #include <ModbusSlave.h>  
  2.   
  3. //TMP36 Pin Variables  
  4. int temperaturePin = 3; //the analog pin the TMP36's Vout (sense) pin is connected to  
  5.                         //the resolution is 10 mV / degree centigrade   
  6.                         //(500 mV offset) to make negative temperatures an option  
  7. int temptest = 1 ;                          
  8. //Arduino sketch example with 2 holding regs:  
  9. void setup()  
  10. {  
  11.       /* Modbus setup example, the master must use the same COM parameters */  
  12.       /* 115200 bps, 8N1, two-device network */  
  13. //    regs[MB_REG0]=153;  
  14. //    regs[MB_REG1]=456;  
  15.   
  16.       init_mb_slave(115200, 'n', 0);  
  17. }  
  18.   
  19.   
  20. void loop()  
  21. {  
  22.     /* This is all for the Modbus slave */  
  23.     start_mb_slave(MB_SLAVE, regs, MB_REGS);  
  24.   
  25.     /* your code goes here */  
  26. float temperature = getVoltage(temperaturePin);  //getting the voltage reading from the temperature sensor  
  27. temperature = (((temperature - .5) * 100)*1.8) + 32;          //converting from 10 mv per degree wit 500 mV offset  
  28.                                                   //to degrees ((volatge - 500mV) times 100)  
  29. // Serial.println(temperature);      
  30. // Serial.println(regs[MB_REG0]);    //printing the result  
  31. // delay(100);         
  32. temptest = (temperature);  
  33. regs[MB_REG0]=temptest;  
  34.   
  35.   
  36.     /* handle write event */  
  37.     if (written.num_regs) {  
  38.    ///     ....  
  39.       written.num_regs=0;  
  40.     }  
  41. }    
  42.   
  43. /* 
  44. * getVoltage() - returns the voltage on the analog input defined by 
  45. * pin 
  46. */  
  47. float getVoltage(int pin){  
  48. return (analogRead(pin) * .004882814); //converting from a 0 to 1024 digital range  
  49.                                         // to 0 to 5 volts (each 1 reading equals ~ 5 millivolts  
  50. }  

carrega esse codigo e depois vc me da um feed do que aconteceu?

Se alguém entende esse codigo, poderia me explicar o codigo, pois mesmo eu sabendo que é um codigo modbus-slave para entrada analogica ainda tenho dificuldade de entender o código.Só consigo entender algumas poucas funçoes mas que ainda não me fez sentido

Adriano,

otima a sua proposta. Vamos nos unir para explicar as funções.

Vou pedir licença aos grandes amigos do lab e vou colocar as minhas idéias, certas ou erradas.

e vamos fazer um trabalho bonito. Fim de semana será aproveitado para isso.

até

Adriano ,

vc tem o resto do código que está em ModbusSlave.h e a o conteúdo da library correspondente( acho que deve ser  ModbusSlave.cc) , para podermos entender as chamadas a esta library ?

Abração

Enio

Oi seu Enio,

Eu peguei esse codigo deste link:

http://mango.serotoninsoftware.com/forum/posts/list/0/567.page#2721

ai deve ter algo mais.

Mas não quero me entorpecer de informsções.

assim decidir ficar estudando só o codigo do jpmzometa

Confeço pro senhor que to sem entender patavinas do codigo do jpmzometa

o senhor não tem interesse em abrir um curso só para elaborações de codigos modbus slave e master.? =)

Que legal a idéia.

 

se alguem interessar conheço um software que pode ajudar com isso

teamwiever.

Dá pra colocar até 25 pessoas na sala.

Alguem topa? Podemos planejar até uma remuneração, como forma de incentivo pra comprar componentes kkk

Adriano ,
Já fiz muita coisa com RS485 , SEM o protocolo ModBus .
No caso eu criei meu próprio protocolo.
Quanto ao ModBus sei tanto quanto vc .
Gostei muito do ScadaBR , acabei de instala-lo no meu PC , assim que tiver um tempinho vou brincar um pouco com ele e depois vou ver se consigo usar este código que vc postou.
Aí , então talvez valha a pena fazer uma webinar sobre o assunto.
Se tiver bastante gente interessada , posso ate projetar e fabricar um shield RS485 para por o Arduino em rede com o ScadaBR.
Abraço .
Enio.

Adriano, o codigo referência está no .h... o programa que colocou aí faz chamadas de funções dessa lib. Entender código escrito por outras pessoas não é exatamente uma coisa elementar, por isso disse inicialmente para estudar o protocolo, assim entenderia porque existem setores de códigos, para funções de registro de bit CRC etc.

Entender o código já é outro problema porque existem muitas maneiras de se escrever a mesma solução... e isso não é simples nem mesmo para quem já tem prática.

Um caminho que sempre uso quanto tenho software de outros programadores e ir debugando e testanto e alterando as funções... isso facilita muito o entendimento...

Siga nessa linha!

 

Abraço

 

Eduardo

Oi Eduardo,

De repente, vc ou o seu Enio não teriam interesse em fazer uma webinar dessa implementação do modbus sobre o RS485, apesar de que pra mim valeria apenas um estudo focado no codigo para modbus -slave, mas devemos pensar no todo da comunidade e assim interessar mais pessoas a trabalhar conosco nesse projeto.falado pelo Sidney.

E no qual estamos trabalhando.

Bem Eduardo,

Eu estudei o Modbus por um tempo, toda os pacotes ADU,PDU etc...funções de holding, então depois de te-lo estudado um pouco foi corrrer atras de fazer o codigo com o pouco de lingugem C que conheço...como tinha falado peguei varias libs de codigo modbus-slave mas agora to focando no jpmzometa.

uma pergunta que eu queria saber como faço por exemplo pra pegar uma função do tipo 3:

"lê um conteudo de um bloco do tipo holding"

Se eu quisesse usar só esta função no scadabr para por exemplo instalar um sensor.

vc saberia como ficaria o code no jpmzometa no modo RTU-slave?

mais um pergunta até basica pra vc

como poderia usa esta função em um registrador?

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço