Modbus通信时,大家浮点数是如何处理的?

2020-01-14 18:52发布

我目前的是 直接发送四个字节,32位浮点数据,占用二个寄存器

接着就是麻烦来了,原来这么多这么多人不会将四个字节还原成浮点数!!售后电话经常接到这种问题,如何将这四个字节还原!!

跟他说用联合体就好了,还要追着问,用什么算法还原,我真说不出来。跟他说电脑自己会完成,还不懂,我不知道怎么说了

就好比有人经常问,怎么样才能将10进制数用16进制表示出来一样


决定为了减少这弱智问题,还是老老实实用二个字节吧,小数点后一位,就人为放大10倍,当整型数据发给他。然后再到协议里规定下,,除10,你就还原了


不知道标准的Modbus通信中,对浮点数是如何处理的??
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
28条回答
albert_w
1楼-- · 2020-01-15 21:34
wochai 发表于 2013-8-12 17:18
楼上在说笑吗

这个真不是说笑的。
你让浮点数指针指向char*的缓冲区就对了, 前提大小端弄对
lixuyongzd1
2楼-- · 2020-01-16 00:48
好吧,楼主问的是在modbus中浮点数怎么表示,用指针是怎么转换,风牛马不相及
fzkqi
3楼-- · 2020-01-16 06:17
modbus中的浮点数是按照IEEE754标准,有自己严格的规定,可不是你想怎么弄就怎么弄的
xiefy21
4楼-- · 2020-01-16 08:37
 精彩回答 2  元偷偷看……
qlb1234
5楼-- · 2020-01-16 13:36
浮點與Modbus無關。

1.一箇浮點數可以根據IEEE 754標準,用四箇字節表示。
2.通過將浮點數擴大若干倍的手段,可以將一箇浮點數的非整數部份包含的信息移到整數部份,從而避免使用浮點數。
东海傲虾
6楼-- · 2020-01-16 14:50
我就是用两个寄存器来存储的啊,不过有很多设备就像你说的一样,传整数,然后人为还原,我总觉得这样做不好吧,还是用两个寄存器吧。

一周热门 更多>