TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Modbbus

Trabalho Universitário: Modbbus. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  28/3/2015  •  833 Palavras (4 Páginas)  •  246 Visualizações

Página 1 de 4

MODBUS COM ARDUINO

Vamos fazer um Atmega328P comunicar-se com o ScadaBR. Eu testei esse programa

com um Arduino Uno e funcionou muito bem. Para obter mais praticidade, resolvi utilizar o

Proteus para simular o arduino Uno. A comunicação com o ScadaBR vai fazer uso do

protocolo Modbus, vamos precisar também de um emulador de porta serial - o Virtual

Serial Port Emulator ou outro equivalente, no meu caso, criei um par de portas seriais

COM1 e COM2. A COM1 ficou sendo utilizada pelo componente COMPIM do Proteus e a

COM2 ficou sendo utilizada pelo ScadaBR.

Na tela abaixo, temos o Virtual Serial Port Emulator apresentado o par de portas

recém-criadas.

Agora precisamos criar um pequeno circuito no Proteus com os componentes

exibidos abaixo. Devemos ter chaves e potenciômetros para simular sensores e ligá-los

aos pinos digitais e às entradas analógicas bem como ligar leds para simular as cargas

que desajamos acionar. O nosso circuito será capaz de lê o estado lógico de 4 chaves, lê

www.mundoarduino.com

a tensão presente em 6 entradas analógicas e acionar 4 cargas. Também não devemos

esquecer de adicionar o componente COMPIM responsável pela comunicação serial com

o ScadaBR. Façamos as ligações conforme a figura abaixo:

Clicando no Atmega328P podemos configurar o micro para executar o arquivo hex

responsável pela implementação do protocolo Modbus. Você pode fazer o download do

arquivo no site www.mundoarduino.com.

www.mundoarduino.com

O componente COMPIM deverá ser configurado conforme a figura abaixo

www.mundoarduino.com

O ScadaBR ficará responsável pela exibição dos estados das chaves, leitura das

portas analógicas e pela atuação das cargas, no nosso caso, as cargas são apenas leds.

Supondo que você já tenha o ScadaBR instalado, devemos criar um Data Sources

para servir de fonte de dados para o ScadaBR. Vamos adicionar um Data Sources do tipo

Modbus Serial.

Clicando no ícone do Data Sources e depois selecionando tipo Modbus Serial,

podemos testar a comunicação com o Proteus. Devemos nos assegurar que o Modbus

Serial esteja utilizando a porta serial e velocidade correta. Se a simulação no Proteus

estiver rodando, ao clicarmos em Pesquisar por nós(desabilite o Data Sources antes de

eecutar a pesquisa), será localizado o escravo 1 que é o atmega328P rodando no

Proteus. Clicando em Ler dados se selecionarmos a Faixa de registros apropriada -

Registrador holding, bem como o número de registradores que estamos utilizando no

nosso caso 14 registradores: 04 para as pinos digitais , 6 para as entradas analógicas e 4

para as cargas, nós teremos acesse direto ao valores atuais dos registradores conforme

vemos na figura abaixo:

www.mundoarduino.com

Mas isso não é tudo, nós devemos criar Data um Data Points para cada registrador

.No exemplo abaixo, criamos um Data Point para lê a entrada analógica do Atmega328P.

www.mundoarduino.com

Quando clicarmos em adicionar ponto, estaremos preparando um Data Point para

o ScadaBR para lê a entrada ADC0 (pino 23) do Atmega328P. Se desejarmos lê outra

entrada analógica devemos da mudar o campo Offset(baseado em 0), para 1 e assim

sucessivamente até o valor 5, quando então estaremos lendo todas as entradas

analógicas do Atmega328P.Veja na figura abaixo, a configuração do data Point para lê a

entrada analógica. Para as entradas analógicas podemos inserir um fator multiplicativo e

assim lermos as tensões presentes nos pinos variando de 0V a 5V e não de 0 a1023.

Clicando em Watch List – Detalhes do Data Point – Editar data Point poderemos

atribuir uma máscara e um sufixo para a grandeza que estamos medindo.Veja a figura

abaixo:

www.mundoarduino.com

Vamos discutir mais sobre o código que roda no micro em outra oportunidade, mas

uma boa olhada no trecho abaixo, dá a compreensão necessária para estabelecer o

Offset necessário para configurar os Data Points tanto para as entradas digitais ,

analógicas, bem como as rotinas necessárias para escrever nos pinos do Atmega328P e

atuar cargas.O programa completo pode ser baixado na Internet – pesquise no google

“modbus slave arduino” e encontrará facilmente o arquivo .pde que implementa o

protocolo modbus. O trecho de código abaixo contêm a parte realmente importante com

as modificações necessárias para trabalha com o Atmega328P.

enum {

MB_SLAVE = 1, /* modbus slave id */

};

/* slave registers example */

enum {

MB_REG0,

MB_REG1,

...

Baixar como (para membros premium)  txt (7.1 Kb)  
Continuar por mais 3 páginas »
Disponível apenas no TrabalhosGratuitos.com