csq663347
级别: 略有小成
精华主题: 0
发帖数量: 65 个
工控威望: 205 点
下载积分: 1775 分
在线时间: 162(小时)
注册时间: 2014-04-14
最后登录: 2024-09-15
查看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重新编辑 ]
gxtmdb82164
级别: 论坛先锋
精华主题: 0
发帖数量: 757 个
工控威望: 1135 点
下载积分: 373 分
在线时间: 594(小时)
注册时间: 2019-09-22
最后登录: 2024-11-22
查看gxtmdb82164的 主题 / 回贴
1楼  发表于: 2022-05-18 09:37
要看你读的源头是什么格式的,你这个数据随便找个在线的浮点数转换器验证了一下已经是合法的浮点数,如果格式符合你的邀请那么直接用就行了.

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

modbus浮点数传输需要注意的只有一个大小端问题,就是ABCD还是CDAB,或者有变态的是BADC或者DCBA这种的,但是要验证也是很简单的,一共就那么几种组合.