您当前的位置:五五电子网电子知识单元电路数字逻辑电路基于西门子S7-200在移位寄存器的应用 正文
基于西门子S7-200在移位寄存器的应用

基于西门子S7-200在移位寄存器的应用

点击数:7865 次   录入时间:03-04 12:03:00   整理:http://www.55dianzi.com   数字逻辑电路

SHBR DATA,S-BIT,N

  其中:EN为使能端,即移位脉冲输入端,脉冲上升沿有效;DATA为移进的二进制位(0或者1),s-BIT为指定构成移位寄存器的最低位,N为指定移位寄存器的长度和移位方向,N为正,是正向移位,由低端向高端移位,最高位移出,进入特珠寄存器位SMl.1,(溢出标志位);N为负,是反向移位,即由高端向低端移位,最低位移出,进入特殊寄存器位SM1.1,(溢出标志位)。N最大值为64,即N= -64~+64中的任意整数。
  
  现在已经指定了移位寄存器的最低位,那末移位寄存器的最高位可以从下面公式计算出来,设M.b代表最高位的字节数和位数,M1.b1代表最低位即S-BIT的字节数和位数,那么可以得到M.b和M1.b1的关系式如下:

42588

  MOD81,其中N是(绝对值),第一个分式是整除,不要小数,后面的“MOD8”是对8取模,即求除以8的余数。
  
  例如设移位寄存器的起点为V33.4,N=14,则可以求得移位寄存器的最高位为:
  
  M.b=33+[(14-1+4)/8.(14-1+4)MOD8]=33+2.1=35.1,说明移位寄存器的最高位在V35.1,如下图所示。见上图,是N=+14的情况。
  
  下图是N=-14的情形。构成的移位寄存器是从V33.4位开始.到V35.1结束,共14位的一个整体。二进制数在其中连续移动。
  
  我们从一个实例来看看利用移位寄存器如何编程:
  
  现有8个发光二极管,从右至左依次为L0,L1,L2……L7.要求编程由PLC控制其亮灭,按“左行”按钮,发光二极管按L0-->L1-->L2一>
  
  ………一>L7一>L0……,的顺序循环发光;按“右行”按钮,发光二极管按L7、L6-->L6、L5-->L5、IA一>
  
  …-->L1、L0-->L0、L7-->L7、L6……的顺序发光。运用经验设计法,程序比较复杂,采用移位寄存器来实现,相对就简单得多。

42588

  输入输出分配表见上表、下表。
  
  该程序梯形图如下:
  
  以上是用控制发光二极管的亮灭来演示控制效果,把该程序应用在生产流水线上,只要把发光二极管换成控制电机的继电器、或电磁阀,就可以实现对一条生产线的自动控制。
  
  这样利用移位寄存器的最大长度为±64位,如果要求控制的点数超过64怎么处理?其实很容易实现,比如要控制100个点,只要在64位长的移位寄存器后面再接上一个36位的移位寄存器,用64位移位寄存器的最后一位作为移进36位移位寄存器的DATA值,就可以实现对100点位的连续控制。其他长度的控制可以依此类推来实现。
  
  综上所述,移位寄存器的功能很强大,掌握起来也很简单,各种类型的PLC都具有这一功能。利用移位寄存器来编程,可以使程序更简洁,修改更方便,执行起来更快捷。

42587




本文关键字:寄存器  西门子  数字逻辑电路单元电路 - 数字逻辑电路