python minimaldobus如何正确解释寄存器?

2024-06-11 08:11:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我在我的raspbian测试系统中使用python。用于与连接到PT100温度传感器的10通道设备(Temco P3-PT10)进行通信,使用minimamodbus。在

因此,我想读取寄存器100~101,用于通道1的温度: 描述说:“当set INT时,100将显示0,101将显示通道1的温度,250=25.0C,当set flaot时,100和101显示25.0000C”

我开始阅读:

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

我得到的输出是:

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

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

我的问题: -什么存储为寄存器值?我能把它们转换成浮点数吗? -为什么float的第一个值是负数?在

我做错什么了吗?在

谢谢你的帮助!在


Tags: readaddress系统float温度寄存器setp3
1条回答
网友
1楼 · 发布于 2024-06-11 08:11:54

要读取Mod总线寄存器,可以按照以下步骤操作link

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

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

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)

相关问题 更多 >