登录
首页 PLC论坛 西门子SIEMENS
回帖 发帖
正文

主题:【跟着我一起来学习s7-200】26移位寄存器指令

点击:12879 回复:11

  上次遗留下了移位循环指令中的移位寄存器指令没有学习,那么今天就学习一下这个移位寄存器指令SHRB。
   移位寄存器指令SHRB是将DATA数值移入移位寄存器。S_BIT指定移位寄存器的最低位。N指定移位寄存器的长度和移位方向(移位加 = N,移位减 = -N)。移位寄存器的最大长度是64位的,可以正也可以负。我们要注意的是SHRB指令移出的每个位是被放置在溢出内存位(SM1.1)中的。
   下面便以以下的程序来讲解指令的使用,用I0.2的上升沿来执行移位寄存器指令,那么就是一个扫描周期移一位的,指令中V100.0是移位寄存器的最低位,I0.3里面存的是0或1的数值,指令指定是移位加的,移位寄存器的长度是4。我们结合下面的时序图和移位的图来看,若V100为0000 0101,因为移位寄存器的长度是4,那么只有0101,当I0.3为1时,执行第一次移位,把1移到移位寄存器的最低位,把移出的位的值0放置到SM1.1中,那么SM1.1为0,当I0.3为0时,执行第二次移位,把0移到移位寄存器的最低位,把移出的位的值1放置到SM1.1中,那么SM1.1为1。
附件 2.jpg
   下面再看一个程序案例,更深入地来学习一下这个移位寄存器指令。
  1、产品检测分拣机,输送带上的产品经过一台检测装置时,检测装置输出检测结果到I0.0,有产品时为1。I0.1检测产品的好坏,若I0.1为0则产品是好的,若I0.1为1则产品是坏的。在第4个产品位置有一个推产品的气缸Q0.0。若检测的产品为坏时,到达第4个产品位置时,Q0.0输出,气缸动作,产品被推出,1s后气缸退回,传送带继续工作,进行产品的检测。
附件 3.jpg
   下面就分析一下程序,检测装置检测到有产品时I0.0为1,I0.1检测产品的好坏,产品坏为1,指定移位寄存器的最低位为M0.0,移位寄存器的长度为4。因为在第4个产品位置有一个气缸Q0.0,若I0.1为1时,到达第4个产品位置时,那么就用M0.3驱动气缸动作,推出产品,同时做了一个定时器定时1s,1s后复位M0.3,气缸退回。
   那么这就是对移位寄存器的学习,可能会相对有些难理解,不过不要紧,相信多做一些练习,那就会熟悉的。那么后面就开始学习一下应用以上所学指令的程序案例的编程。
附件 微信二维码.jpg
关注技成微信,更多精彩等着你!
最后修改:2014/11/7 14:18:05
14-11-07 14:17
     不常用这个指令,今天学习了。
14-11-08 09:11
有所收获,谢谢讲解。
14-11-10 19:19
学习了。
14-11-11 14:01
谢谢讲解。
14-11-21 16:59
跟着我一起来学习s7-200
14-11-29 19:03
搜到这个讲解,看完例子清楚很多。谢谢!
15-05-11 00:39
I0.3=0时,当I0.0每个上升沿,M0.0-M0.3也参与移位,只不过移的是0而已。一旦M0.0移入1,当移到第四位时,M0.3=1,使Q0.0为1,气缸动作,坏的产品就被 推出。但有一点没想明白 ,M0.3用复位吗?不会被紧随其来来的0而复位吗?
15-05-11 08:39
谢谢分享,好资料
15-05-11 08:54
小例子确实不错
16-06-30 23:27

上一页下一页

工控新闻

更多新闻资讯