曾姚王
纸上得来终觉浅,绝知此事要躬行!
级别: 略有小成
精华主题: 0
发帖数量: 270 个
工控威望: 348 点
下载积分: 15736 分
在线时间: 144(小时)
注册时间: 2021-07-24
最后登录: 2024-10-22
查看曾姚王的 主题 / 回贴
楼主  发表于: 5天前
今天用台达的一个DVP-08SN 485RTU读一个仪表的数据,始终是1,后来用串口读出,发现数据类型只有选择FLOAT INVERSE才正确,请问,浮点反转这个数据是怎么回事。读出42F6CCCDH怎么浮点数是123.4
[ 此帖被曾姚王在2024-10-17 17:03重新编辑 ]
sjm213
有小知识,无大学问。
级别: 论坛版主

精华主题: 7 篇
发帖数量: 5188 个
工控威望: 7411 点
下载积分: 158234 分
在线时间: 3146(小时)
注册时间: 2007-11-21
最后登录: 2024-10-22
查看sjm213的 主题 / 回贴
1楼  发表于: 4天前
42F6CCCD对应的浮点数为什么是123.4,这是二进制浮点数的结构决定的;


至于为何要反转,你可以监控一下台达存储数据的两个寄存器,比如说是D10/D11,那么现在D10里数值的16进制是42F6,D11里面数值的16进制是CCCD。
而台达的32位数据结构是[D11,D10],所以这个数值就变成了CCCD42F6,显然是不对的。