Preciso montar uma rede RS485 utilizando 1 arduino como Master e 4 Arduinos como escravos.

  O Conceito da Rede RS485 eu consegui pegar bem e montei a rede fisicamente utilizando CI inversores RS232 para RS485. Tenho portanto o arduino que seria o Master ligado fisicamente a essa rede física 485 criada e conectada a 4 outros arduinos (Escravos).

  Meu problema :   A utilização disso na prática. 

 

 1) O que exatamente a nível de código define qual o arduino é o Master ?

 2)  Cada escravo possui um código que  fica me gerando uma informação em sua Serial.

       Como faço a chamada que faz com que o máster em um determinado momento pergunte a um determinado escravo " o que você tem escrito ai ?" e como faço neste momento para ter essa resposta em meu Master ?

 3) Como identifico e implemento no Master a chamada para o escravo "X" ?

 Alguém tem algum código exemplo por mais simples que seja ?

Agradeço desde já qualquer ajuda.

Exibições: 585

Responder esta

Respostas a este tópico

Você vai encontrar muita informação que procura, no grupo Scadabr aqui do LDG.

Veja informação de um colega membro do grupo.

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

Abs.

 O ScadaBr no meu caso não atenderia porque eu tenho um software próprio desenvolvido para gerenciar no caso os arduinos.  O Sistema funciona hoje por conexões diversas a porta Serial mas eu precisava converter isso para a rede RS485 por diversas questões.

  Eu só precisava mesmo de um código exemplo de um máster acessando um escravo , lendo o que ele tem a informar naquele momento e escrevendo algo neste mesmo escravo. Só isso resolveria todo o meu problema.

Então ,,,  Eu montei este tutorial já. Pelo que entendi , ao digitar algo no máster esse algo seria recebido pelo slave que devolveria a ele de imediato. Mas não consegui ver isso funcionando nem com reza forte. Tenho ele aqui montadinho. Mas não funfou comigo ....  A não ser que eu tenha entendido tudo errado né? Pode ser também ..

Essas perguntas são tranquilas de responder. Tem uma biblioteca já preparada para master e slave.

As que usamos aqui foram muito aprimoradas mas somente como slave.

Depois podemos conversar em pvt para fluir o assunto.

Segue no caminho.

Caro Cesar, 

uma rede RS485, não tem nada haver com código é só uma questão de topologia e diagrama do circuito, o protocolo que vc vai usar por cima da rede RS485 é que define seu funcionamento, normalmente usamos o modbus RTU ou pode ser usado o Modbus ASCII além de outros protocolos. Podendo ser até um protocolo próprio seu. Por uma questão de não querer inventar a roda usamos o Modbus que nos evita de fazer as perguntas que vc está fazendo. ¬¬

Nossa linha de trabalho é usando somente o Scadabr como supervisor eu sinceramente nunca montei uma rede só com arduinos tendo um como mestre, mas sei que tem vários tutoriais de modbus em rede RS485 com arduino como mestre dando polling em slaves. é só dar uma olhada no tio google.

Sim, eu sei disso. Mas os exemplos que vi ou não funcionaram ou são de grande complexidade.

O Problema é que TODOS os exemplos e tutoriais que encontrei se referem a um arduino falando com outro ( mestre e escravo ). Nessa situação , eu entendi ser até simples. Mas não existe nenhum exemplo de um máster falando com mais de um escravo , pois justo essa é minha dúvida. Meu Mestre quer falar com o escravo X , então tenho que colocar o pino de controle dele em HIGHT para transmissão , mas como eu me referencio a quem é esse escravo X é que notei estar o mistério da coisa. Ninguém mostra isso. :-)    Acho que a RS485 só fala um mestre com um escravo, não é possível tanto segredo assim  .... Tô quase desistindo e acabar ficando nas minhas portas COM que tá rolando direitinho ....

Falta conceito.

Você deve definir aos slave  ID, tipo 01, 02, 03 e 04 por exemplo, na verdade  pode usar qualquer numero entre 1 e (247 senao me engano), importante que cada slave tenha ID distinto . Ai na hora de montar o frame de envio você escolhe com qual slave pretende comunicar. Tenha capricho de montar a rede na topologia correta e usar resistores de terminação. Outra coisa, esses arduinos deves estar afastados um do outro, ai o ideal seria usar um fonte pra cada arduino e e interligar o GND de toda as placas. 

No mais boa sorte.

Como já foi mencionado pelo pessoal quem determina isso é o protocolo que voce vai usar sobre o 485. Quando o mestre coloca o pino em high e envia uma informação qualquer, todos os escravos escutam o mestre. Mas na informação do mestre deve conter o número do escravo que ele quer conversar, e então apenas esse escravo responde. O modbus é um protocolo aberto e que roda sobre várias redes, rs232, rs485, ethernet... Há muita informação e exemplos dele na inet. Mas nada impede que vc invente um protocolo mais simples para fim didático...

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço