0

我在我的 raspbian 测试系统上使用 python。用于与PT100 温度传感器连接的 10 通道设备 (Temco P3-PT10) 通信,即时通讯使用minimummodbus

因此我想读取寄存器 100~101 的通道 1 的温度: 描述说:“当设置 INT 时,100 将显示 0 和 101 显示通道 1 的温度,设置浮动时 250= 25.0C,100 和 101 显示25.0000C"

我开始阅读:

temperaturef = instrument.read_float(r, 3, 2)
temperature = instrument.read_register(r, 0)

我得到了以下输出:

地址 100 R: 62915 F: -4.95029165077e+32 // 地址 101 R: 16684 F: 10.7924995422

第一列显示寄存器值,第二列显示返回的浮点值。

我的问题: - 什么存储为寄存器值?我可以将它们转换为浮动吗?- 为什么浮动的第一个值是负数?

我做错了什么吗?

谢谢你的帮助!

4

1 回答 1

1

要阅读 Mod 总线寄存器,您可以点击此链接

是的,您可以将十六进制值转换为浮动或即。使用上述方法读取寄存器后,您将获得寄存器值。

要将十六进制转换为有符号浮点数,您可以使用:

import struct
var='0xbf99999a'
var = var.replace('x',' ')
var1 = var[2:len(var)]
print var1
a= struct.unpack('!f', var1.decode('hex'))[0]
print "%.3f"%round(a,3)
于 2017-07-18T09:47:15.170 回答