登录
首页 PLC论坛 PLC论坛
回帖 发帖
正文

主题:三菱数据转换问题

点击:527 回复:6


附件 微信图片_20231103131111.jpg
23-11-03 13:40
如图,D1805是通过485通讯从仪表读取过来的32位单精度浮点数,仪表读数是2.35
用工具转换没有问题,怎么用程序转换成10进制浮点数啊
23-11-03 13:40
附件 屏幕截图 2023-11-03 131850.jpg
数据应该没有问题,直接读的两个字
23-11-03 13:41

引用 Moaowen 在 2023/11/3 13:40:20 发言【内容省略】

交换D1805,D1806的数据,无需转换,就可以得到正确的值。
附件 workpicture1.jpg
Good Luck~
23-11-03 14:47
排列问题,2.35对应的十六进制是40 16 66 66
在三菱里面的浮点数要用到32位,即两个寄存器,并且三菱的排列是高位在前低位在后
比如32位D0,排列是D1 D0,对应于你这个就是40 16要放在D1,66 66要放在D0
楼上版主的意思就是把D1805的数据传给D1807,然后32位用D1806,
因为用D1806时实际就是D1807(40 16 ) D1806(66 66) 这时D1805的40 16去到D1807
你只需要用MOV把D1805传给D1807,然后直接用浮点指令调用D1806就可以了
23-11-03 15:18
确实是这样,已经搞定了,谢谢大哥表情
23-11-03 17:21

引用 Moaowen 在 2023/11/3 13:40:20 发言【内容省略】

读表是做个高低交换试试~避开程序修改
23-11-03 17:50

工控新闻

更多新闻资讯