您现在所在的是:

PLC论坛

回帖:6个,阅读:504 [上一页] [1] [下一页]
* 帖子主题:

三菱数据转换问题

65
Moaowen
文章数:14
年度积分:65
历史总积分:65
注册时间:2023/9/15
发站内信
发表于:2023/11/3 13:40:01
#0楼

附件 微信图片_20231103131111.jpg




65
Moaowen
文章数:14
年度积分:65
历史总积分:65
注册时间:2023/9/15
发站内信
发表于:2023/11/3 13:40:20
#1楼
如图,D1805是通过485通讯从仪表读取过来的32位单精度浮点数,仪表读数是2.35
用工具转换没有问题,怎么用程序转换成10进制浮点数啊
65
Moaowen
文章数:14
年度积分:65
历史总积分:65
注册时间:2023/9/15
发站内信
发表于:2023/11/3 13:41:52
#2楼
附件 屏幕截图 2023-11-03 131850.jpg



数据应该没有问题,直接读的两个字
37231
cvlsam 版主
文章数:12401
年度积分:1583
历史总积分:37231
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2023/11/3 14:47:06
#3楼
以下是引用Moaowen2023/11/3 13:40:20的发言:
如图,D1805是通过485通讯从仪表读取过来的32位单精度浮点数,仪表读数是2.35
用工具转换没有问题,怎么用程序转换成10进制浮点数啊

交换D1805,D1806的数据,无需转换,就可以得到正确的值。
附件 workpicture1.jpg

Good Luck~
42312
YXBK 版主
文章数:19441
年度积分:2726
历史总积分:42312
注册时间:2007/4/14
发站内信
2015论坛优秀版主
2015春节活动
2013论坛优秀版主
2012论坛优秀版主
发表于:2023/11/3 15:18:03
#4楼
排列问题,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就可以了
大家一起学习
65
Moaowen
文章数:14
年度积分:65
历史总积分:65
注册时间:2023/9/15
发站内信
发表于:2023/11/3 17:21:01
#5楼
回复 #3楼 cvlsam
确实是这样,已经搞定了,谢谢大哥表情
38045
知道一点
文章数:22547
年度积分:2464
历史总积分:38045
注册时间:2004/6/12
发站内信
工控人谈电商
2013国庆活动
2011国庆活动
发表于:2023/11/3 17:50:23
#6楼
以下是引用Moaowen2023/11/3 13:40:20的发言:
如图,D1805是通过485通讯从仪表读取过来的32位单精度浮点数,仪表读数是2.35
用工具转换没有问题,怎么用程序转换成10进制浮点数啊
读表是做个高低交换试试~避开程序修改
快乐 幸福 自由 比什么都重要

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

62.4004