Oi pessoal . bom dia.

Para participar de um projeto de um amigo aqui do LdG, resolvi aprender o protocolo Modbus.

Ele é um protocolo de certa forma até simples, uma vez que só utiliza 3 camadas

do modelo OSI.  (Camadas 1, 2 e 7, ).   

Depois de tentar vários exemplos , optei por usar o Master que tem o exemplo no site oficial do

arduino:  http://playground.arduino.cc/Code/ModbusMaster.

Como slave usei um exemplo do site:

https://sites.google.com/site/jpmzometa/arduino-mbrt/arduino-modbus...

Funcionou muito bem em RS232.

Depois vei a parte de incluir um interface RS485.

Há algum tempo, eu havia adquirido 4 CI MAX481 par um projeto de DMX.

Montei no protoboard  2 módulos de RS485 conforme o esquema abaixo (do site)

http://arduino-info.wikispaces.com/RS485-Modules

Ok, aí começaram os problemas:

Como o código do master não previa um pino (não encontrei) para ativar a transmissão,

precisei modificar a biblioteca para incluir este pino.

Ok, depois de muito estudar a biblioteca, consegui definir um pino.

Funcionou muito bem.

Meu esquema:

Resolvi então montar 2 módulos de RS485 em um proto impresso.

http://labdegaragem.com/photo/rs485-frente?context=latest

Ao testar com estes módulos,  não funcionou.

Só funcionou qdo pequei os Chips que estavam no proto board e coloquei no modulo.

Só pra exemplificar vou dar números aos meus chips:  Ch1, Ch2, Ch3, Ch4.

Se o Ch1 for o chip ligado ao mega (Master), funciona bem.

Se forem os outros chips ligados ao mega não funciona.

Mas os 3 chips funcionam ligados no Uno (Slave).

Este chips nunca tinha sido utilizados.

Abaixo seguem 2 timming charts das 2 situações.

Aceito sugestões.

Rui

Exibições: 5858

Responder esta

Respostas a este tópico

Corrigindo os erros e português:

Depois vei a parte de incluir um interface RS485.  = Depois veio a parte de incluir um interface RS485.

Só funcionou qdo pequei os Chips                       = Só funcionou qdo peguei os Chips

Este chips nunca tinha sido utilizados.                = Este chips nunca tinham sido utilizados.

Se tiver mais, desculpem-me.

Rui

Pessoal, 

graças ao conhecimento do nosso grande amigo o GMSSCEI (Grande Mestre Sir San Celso Eiju Ito).

problema foi resolvido.

Os resistores de 20K no bus RS485 foram substituídos por valores menores ( 8k2), 

e então funcionou corretamente.

Talvez porque estou usando MAX481 e não o MAX485.

Valeu GMSSCEI.

Rui

Muito bom tutorial, amigo Rui !

Obrigado por compartilhar.

Abraços

Gustavo

Oi JGAM, bom dia.

Muito obrigado pelo elogio.

A ideia é esta. Aprender e passar pra frente.

Rui

Olá,

Rui, a rede padrão  EIA485 (RS485) ainda é uma das mais usadas no mundo da automação em geral, devido as sua várias vantagens, como simplicidade, custo, confiança e velocidade de transmissão. Mas para que seja confiável, ela deve ser bem projetada e bem executada, senão a comunicação não ocorre ou ocorre de forma instável.

Os dois resistores de 20k no seu esquema são comumente chamados de "bias resistors" e são usados com a intensão de polarizar as linhas A e B do barramento com um nível de tensão pré determinado quando o nenhum dos transceivers do barramento estiverem transmitindo, de forma a deixar a saída dos receptores em nível alto.

Normalmente os resistores de bias são deixados ligados em apenas uma das extremidades do barramento, e os valores dos resistores normalmente são mais baixos que os que você está a usar, geralmente algo em torno de 390 a 820 Ohms, entenda que o bias é calculado para que haja uma certa corrente no barramento de forma a proporcionar uma diferença de tensão entre a linha A e B, no link abaixo tem um documento da texas que mostra o porque são usados e como calcular o seu valor.

Nos transceivers mais modernos não é mais necessário usar o bias, mas normalmente continuam sendo usados por motivo de compatibilidade  de comunicação com os chips mais antigos.

link

Abraço.

Boa tarde Sr. W

obrigado.

Rui

Nossa, que pena que perdi o momento do post. 

O RV tem uma moral grande no LDG e ajudá-lo seria uma forma de agradecer todo o esforço que tem em ajudar os garagistas.

Mas o que importa é problema resolvido. Partimos para o próximo.

Já são 4 anos apanhando com essa rede.

Oi SAB, obrigado pelo elogio,

mas ainda tenho muito que aprender, afinal ainda sou um garotovelhão kkkkk,

e estou em fase de crescimento (bariga e careca).

Pode deixar, ainda vou pedir sua ajuda.

Obrigado.

Rui

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço