csq663347
级别: 略有小成
精华主题: 0
发帖数量: 65 个
工控威望: 205 点
下载积分: 1775 分
在线时间: 157(小时)
注册时间: 2014-04-14
最后登录: 2024-04-10
查看csq663347的 主题 / 回贴
楼主  发表于: 2022-05-17 20:38
各位老大!ADPRW指令 ADPRW  H1  H4  H2  H2   D1000  M100 这条指令把数据读回来放在了D1000 和D1001里面了,我要如何转换成32位浮点数?

                      D1000=4028    (16进制)  D1001=C16E   (16进制)      
[ 此帖被csq663347在2022-05-17 20:52重新编辑 ]
梦雨天涯
微信hui530527   &
级别: 网络英雄
精华主题: 0
发帖数量: 3768 个
工控威望: 7113 点
下载积分: 13021 分
在线时间: 2496(小时)
注册时间: 2016-10-31
最后登录: 2024-05-03
查看梦雨天涯的 主题 / 回贴
1楼  发表于: 2022-05-18 07:33
他就是浮点了吧。。
微信hui530527      b站账号,梦雨天涯1991
请不要随意加我,不会随便通过。QQ群942493953
csq663347
级别: 略有小成
精华主题: 0
发帖数量: 65 个
工控威望: 205 点
下载积分: 1775 分
在线时间: 157(小时)
注册时间: 2014-04-14
最后登录: 2024-04-10
查看csq663347的 主题 / 回贴
2楼  发表于: 2022-05-18 07:44
返回的数据不知道如何处理???还望大神指点
gxtmdb82164
级别: 论坛先锋
精华主题: 0
发帖数量: 655 个
工控威望: 1033 点
下载积分: 120 分
在线时间: 531(小时)
注册时间: 2019-09-22
最后登录: 2024-04-30
查看gxtmdb82164的 主题 / 回贴
3楼  发表于: 2022-05-18 09:37
要看你读的源头是什么格式的,你这个数据随便找个在线的浮点数转换器验证了一下已经是合法的浮点数,如果格式符合你的邀请那么直接用就行了.

你这个数据简单验证了一下是-14.9,如果数值是对的,那么后面就可以直接用PLC的浮点运算指令去操作了,实际上你在PLC里面监控的时候也可以切换一下显示格式以浮点格式显示,这样可以直接看到读进来的数值.

modbus浮点数传输需要注意的只有一个大小端问题,就是ABCD还是CDAB,或者有变态的是BADC或者DCBA这种的,但是要验证也是很简单的,一共就那么几种组合.
csq663347
级别: 略有小成
精华主题: 0
发帖数量: 65 个
工控威望: 205 点
下载积分: 1775 分
在线时间: 157(小时)
注册时间: 2014-04-14
最后登录: 2024-04-10
查看csq663347的 主题 / 回贴
4楼  发表于: 2022-05-18 13:58
假设 D1000=3F7E  D1001=40A7  用浮点数转换工具等于0.993174  这两个16位寄存器如何转换成32位浮点数。请大师帮忙解答一下谢谢!
梦雨天涯
微信hui530527   &
级别: 网络英雄
精华主题: 0
发帖数量: 3768 个
工控威望: 7113 点
下载积分: 13021 分
在线时间: 2496(小时)
注册时间: 2016-10-31
最后登录: 2024-05-03
查看梦雨天涯的 主题 / 回贴
5楼  发表于: 2022-05-18 16:33
两个组合就是浮点了吧……转什么转
微信hui530527      b站账号,梦雨天涯1991
请不要随意加我,不会随便通过。QQ群942493953