Estou usando Arduino e sensor de temperatura DS18b20, usando as mesmas varíaveis, no terminal vejo as temperaturas com dois dígitos de precisão ex;: 23,45 ºC mas no Scada só consigo ver o valor inteiro (23º) usando ou valores estranhos tais como ,0000000000000000000000000000000000000018367099231598242.
No Datapoint estou usando :
Faixa de registro : Registrador Holding
Tipo de dados modbus : Float de 4 bytes (assim mostra ,0000000000000000000000000000000000000018367099231598242.
ou Tipo de dados modbus : Inteiro 2 bytes com sinal ( aí mostra 23 sem as casas decimais )
Multiplicador : 1
Aditivo : 0
Como devo configurar para mostrar as casas decimais da temperatura ?
Existe alguma forma de contornar isso ?
Tags:
Boa tarde.
Você tem o manual desse equipamento que esta tentando de fazer a leitura? Esta usando scadaBR?
Estou usando Arduino UNO e o sensor DS18b20. E usando o ScadaBR via modbus IP.
Opa.
Em vez de trabalhar com graus, passe a trabalhar como centésimos de graus, ou seja, peque sua leitura de temperatura que é um float e multiplique por e 100 e passe a trata-la como um inteiro ( input register de 16bits com sinal).
Ai o exemplo de valor de 23,45 ºC passa a ser um valor inteiro de 2345. cºC, que seria 2345 centi graus.
Ai no scada BR utilize um ganho de 0.01(/100) que converte de cºC para ºC, depois é só formatar a variável com duas casas decimais.
Não tem muito segredo, boa sorte.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por