首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Pymodbus在服务器上下文寄存器中添加浮点

Pymodbus在服务器上下文寄存器中添加浮点
EN

Stack Overflow用户
提问于 2014-09-16 07:22:35
回答 2查看 2K关注 0票数 2

我对pymodbus和modbus很陌生,我已经尝试了一段时间直接添加浮点数

对于没有成功的服务器上下文,我想知道您是否对如何做到这一点有任何指导。我已经尝试通过这样的操作来使用有效载荷:

代码语言:javascript
运行
复制
builder = BinaryPayloadBuilder(endian=Endian.Little)
builder.add_32bit_float(long(69000))
payload = builder.build()

context[slave_id].setValues(register, address, payload)

但是,当pymodbus试图将有效负载转换为int时出错,我的代码主要是来自同步服务器示例的代码。任何帮助都会很好

EN

Stack Overflow用户

发布于 2014-09-16 08:49:34

在研究了浮点数的寄存器和分割成16位整数之后,我提出:

代码语言:javascript
运行
复制
register = 3
slave_id = 0x00
address  = 0x01

values   = context[slave_id].getValues(register, address, count=2)

# Two integers to a floating point
i1 = values[0]
i2 = values[1]
f = unpack('l',pack('<HH',i1,i2))[0]
f = f+1
# Floating point to two integers
i1, i2 = unpack('<HH',pack('l',f))
print(f,i1,i2)

context[slave_id].setValues(register, address, [i1,i2])

我在Endian的编码中遇到了一些问题,检查你的modbus客户端需要什么,

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25862853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档