登录
首页 人机界面 人机界面
回帖 发帖
正文

主题:求助!!!关于人机界面背景脚本编程!!!应该是VB语言

点击:1045 回复:8

附件 image.jpg
如上图所示,这个是我使用成功的一个案例,把can报文的一个byte中的八个字分别解析到HDW0-7上
现在问题是,我应该如何编程才能把八个字中的 1-2 解析到hdw1 3-8解析到HDW3-7上呢?
提前感谢大佬的帮助!
19-01-18 13:01
首先你要知道这句是啥意思,他们的意思是HDW0里面放的是CDATA0的第零位数据
HDW1里面放的是CDATA0的数据右移1位后&上0x01,也就是CDATA0的第一位数据
HDW2里面放的是CDATA0的数据右移2位后&上0x01,也就是CDATA0的第二位数据
..........
HDW7里面放的是CDATA0点数据右移7位后&上0x01,也就是CDATA0的第七位数据
然后你想要的答案会自己操作了吗?
19-01-18 13:49
你好!万分感谢你的回答!但是这个&0x01 我还是不明白啊!&0x01的实际作用是什么呢? 如果我用0x02得到的是什么结果?
19-01-18 14:10
我这里还有一段程序是这样的,这个应该就是把CDATA的0和1位放进HDW170里 如此类推,但是为什么后面是&0x03了呢?
附件 image.jpg
19-01-18 14:14
&那叫按位与运算.
假设你的字是16位,&0x03是与十六进制3,就是二进制0000 0000 0000 0011,按位与,前面与0都等于0了,后面两位,与1,该是啥就是啥了.
19-01-18 14:23
另外,这应该不是vb.类c.&就是and的意思.
19-01-18 14:28
哦哦哦好的!大概是能理解了,那我这边改了一下,请问这样的 是不是把CDATA0的1、2字放到HDW0  3-8字放到了HDW1里面了?
附件 image.jpg
19-01-18 14:40

引用 Treasure丶 在 2019/1/18 14:14:39 发言【内容省略】

这一段的意思就是HDW170里面是CDATA的第0位和第1位
HDW171里面是CDATA里的数据往右移动两位后再&上0x03,也就是CDATA的第二位和第三位。
......
0x03的BCD码是0000 0011   所以保留了低两位。这个我以前写过规律,不重复了。
之前的0x01的BCD码是0000 0001  所以保留了最低位。
19-01-18 16:38
好的好的谢谢
19-01-18 17:28

工控新闻

更多新闻资讯