Galera estou com uma duvida é possível o arduino utilizando a biblioteca Modbus fazer leitura de um sensor de densidade.

no manual ele informa os endereços

poderia utiliza um ci max485 para liga o arduino ao sensor?

na net encontrei um código http://playground.arduino.cc/Code/ModbusMaster

#include <ModbusMaster.h>
// instantiate ModbusMaster object as slave ID 2
// defaults to serial port 0 since no port was specified
ModbusMaster node(2);
void setup()
{
// initialize Modbus communication baud rate
node.begin(19200);
}
void loop()
{
static uint32_t i;
uint8_t j, result;
uint16_t data[6];
i++;
// set word 0 of TX to least-significant word of counter (bits 15..0)
node.TX(0, lowWord(i));
// set word 1 of TX to most-significant word of counter (bits 31..16)
node.TX(1, highWord(i));
// slave 1: write TX to (2) 16-bit registers starting at register 0
result = node.WriteMultipleRegisters(0, 2);
// slave 1: read (6) 16-bit registers starting at register 2 to RX
result = node.ReadHoldingRegisters(2, 6);
// do something with data if read is successful
if (result == node.ku8MBSuccess)
{
for (j = 0; j < 6; j++)
{
data[j] = node.RX(j);
}
}
}

eu estou com duvida é esta parte que faz a leitura do sensor?

// slave 1: read (6) 16-bit registers starting at register 2 to RX
result = node.ReadHoldingRegisters(2, 6);

No local do "6" eu colocaria do endereço que estão no manual?


Obrigado Pessoal.

Exibições: 2198

Responder esta

Respostas a este tópico

opa amigo vou concerta o erro na segunda vou testa novamente. e posto o resultado

Obrigado 

opa amigo agora funcionou certinho... valeu muito obrigado

fico feliz em ter ajudado!

Obrigado Jonas e Sidney pelo apoio durante todo projeto.

Muito Obrigado 

Pessoal surgiu um novo problema os dados da leitura do modbus estão diferentes do dados mostrado no ihm do sensor.

Tabela com o endereço atualizados do sensor feita pelo fabricante 

um exemplo o valor do registro 100 e 101 é referente a massa especifica na comunicação modbus tem o valor de 17488 e 49254 mas na tela do IHM mostra 750.895 é necessário alguma conversão  nos dados do modbus?

e ainda tem registro com zero mas na IHM tem o valor exemplo temperatura no sensor ta 25.04c no ihm mas registro 106 ta 0

alguem ja teve este problema?

Obrigado 

tem que ver se o manual ajuda, eu creio que tenha que converter word pra real

jonas infelizmente o manual não fala o formato do dados adquiridos via protocolo modbus.

o ele aqui http://www.metroval.com.br/upload/downloads/manual-tdm-01-_-rev8.6-...

Eu já acho que vc está apontando para o lugar errado.

O s endereços não estão em sequência? pq veja que na tabela são os números pares. Vc olhou isso?

Verifica cada um e seu endereço.

Eu to admirado com este sensor. É tão bom, que tenho até vontade de comprar um só para colocar na minha rede doméstica.

Eu comprei um de umidade de solo que mostra bem assim.

Pessoal o problema foi resolvido... foi necessário altera os dados recebidos para pode fazer a conversão para foat 

Muito Obrigado pela Ajuda

At+

RSS

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2019   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço