我使用pymodbus通过modbus获取几个寄存器的值。我有一个联系和结果,但我对如何解释结果感到困惑。我的代码是:
from pymodbus.client.sync import ModbusTCPClient
client = ModbusTcpClient(host ="192.168.0.42", port= 502)
client.conect()
rr = client.read_input_registers(0,2, unit=42)
print(rr.registers)
我得到的结果是[3713916190]。我正在使用的仪器的文档中说:“这些寄存器每个16位……所有值都以32位IEEE标准754浮点格式报告。这使用2个顺序寄存器,最低有效16位优先。” 这是否意味着得到的浮点数是1619037139?结果应在0.2-0.4(四舍五入)范围内。谢谢你的帮助
IEEE 754是对浮点数进行编码的一种方法,“最低有效16位优先”是指小端编码;pymodbus可帮助您解码此格式:
(try it-结果是0.18659807741641998,这似乎符合您的期望)
注意this是一个有用的工具,用于从modbus查询中获取原始(十六进制)结果,并以多种方式对其进行解码
相关问题 更多 >
编程相关推荐