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.
Tags:
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+
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por