siemens 高手急救 点击:665 | 回复:6



二子

    
  • 精华:4帖
  • 求助:0帖
  • 帖子:218帖 | 191回
  • 年度积分:0
  • 历史总积分:1036
  • 注册:2004年4月08日
发表于:2007-09-20 13:50:00
楼主
别人程序中用SHL_W命令, IN连的是DB51.DBW0, N连的是W#16#1,OUT连的是DB51.DBW0。
我不知道W#16#1是啥意思?DB51.DBW0会怎样移?我直接用1代替W#16#1,会不会对DB51.DBW0产生不同的作用?谢谢 




yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10208回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2007-09-20 13:55:00
1楼
W#16#1 代表的意思是无符号整形数据且为16进制的1
DB51.DBW0 会首先放入ACCU1,然后向左移动一位,最高位丢失,低位补0.
直接用1来替代不会产生不同的作用。

二子

  • 精华:4帖
  • 求助:0帖
  • 帖子:218帖 | 191回
  • 年度积分:0
  • 历史总积分:1036
  • 注册:2004年4月08日
发表于:2007-09-20 14:14:00
2楼
 谢谢,因为DB51.DBW0在程序中作为shift register, 每执行一步,就要左移一位。
 我现在看的程序中, 刚开始把256用MOVE移入DB51.DBW0。然后再执行SHL_W命令, 我就怪了,他为啥刚开始把256用MOVE移入DB51.DBW0,因为真正用到就只有4步,256移一步,就是512,低四位还是0,根本起不到shift register的作用。
  望有经验的朋友猜想一下, 这有可能是啥原因?因为只要涉及到shift register, 都是这样,谢谢

苦学

  • 精华:0帖
  • 求助:0帖
  • 帖子:28帖 | 1034回
  • 年度积分:2
  • 历史总积分:2430
  • 注册:2005年3月13日
发表于:2007-09-20 15:17:00
3楼
学习

linknw

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 4回
  • 年度积分:0
  • 历史总积分:20
  • 注册:2004年4月28日
发表于:2009-05-13 14:08:08
4楼

wincc 打开图形时出现 error while opening document 怎么办

 

 

九灭重生

  • 精华:0帖
  • 求助:0帖
  • 帖子:14帖 | 175回
  • 年度积分:0
  • 历史总积分:130
  • 注册:2007年4月04日
发表于:2009-05-14 17:00:52
5楼

晕了,你好好看看SHL指令就明白了.

长征三号

  • 精华:0帖
  • 求助:1帖
  • 帖子:54帖 | 910回
  • 年度积分:0
  • 历史总积分:1121
  • 注册:2008年6月16日
发表于:2009-05-15 22:35:53
6楼
你把256转换成二进制数,再移位四位,再把二位数转换成十进数,你看看是多少吧就明白了

热门招聘
相关主题

官方公众号

智造工程师