您现在所在的是:

无所不谈

回帖:4个,阅读:906 [上一页] [1] [下一页]
5966
527383814
文章数:239
年度积分:130
历史总积分:5966
注册时间:2014/9/11
发站内信
发表于:2021/7/12 12:52:14
#0楼
附件 Snap5.jpg

附件 Snap6.jpg

如题  用modbus通讯获取扭矩值  获取的4个字节怎么解析呢   这个扭矩值有正数有负数还有小数  说明书没有写每一个字节的某一位表示什么,这个怎么弄呢

7660
7583124
文章数:506
年度积分:257
历史总积分:7660
注册时间:2013/12/12
发站内信
发表于:2021/7/12 15:49:55
#1楼
这个数据你要怎么用,是拉到触摸屏里?PLC里面?还是上位机程序里面?拉到触摸屏和PLC里,应该会自动给你解析好;拉到上位机里面是要做数据处理的
19980
pqsh 版主
文章数:7517
年度积分:596
历史总积分:19980
注册时间:2006/8/22
发站内信
2018论坛解答高手
发表于:2021/7/12 19:33:12
#2楼
如果高位在前,那:
01f6 0000转成十进制是: 32899072
然后单位是0.05%,那结果就是:
32899072*0.05%=16449.536

如果低位(字)在前,那
01f6 0000=502,结果502*0.05%=25.1%
如果我忘了我
请帮忙记得我
pqsh@163,326199298@v&q同号
5966
527383814
文章数:239
年度积分:130
历史总积分:5966
注册时间:2014/9/11
发站内信
发表于:2021/7/12 19:43:41
#3楼
回复 #2楼 pqsh
如果有正负之分 怎么处理呢
19980
pqsh 版主
文章数:7517
年度积分:596
历史总积分:19980
注册时间:2006/8/22
发站内信
2018论坛解答高手
发表于:2021/7/12 20:52:43
#4楼
以下是引用5273838142021/7/12 19:43:41的发言:
如果有正负之分 怎么处理呢
正负分的话,一般是补码.最高位是1表示符号是负数.其它各位取反,再+1,得到数值加负号就行(或者求其补数,即溢出一位减本数).
比如:8000 0000(十六进制),就是负数(此处假设高字在前),那它本数就是-(7fff ffff+1)(取反加1法)=-(1 0000 0000-8000 0000)(补数法)=-8000 0000=-2147483648(十进制),就是最小的负数.
因为你没有说高低字在前后的关系.就这么举例了.
假设报文中的值: ffff fd0a, 那值是: -(0000 02f6)=-758=-758*0.05%=-37.9%
[此贴子已经被作者于2021/7/12 20:53:10编辑过]
如果我忘了我
请帮忙记得我
pqsh@163,326199298@v&q同号

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

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

46.8003