
plc移位指令例子[共4页].doc
2页plc 移位指令例子 【篇一: plc 移位指令例子】 移位寄存器指令包括 sftr (位右移)、 sftl (位左移)、 wsfr (字右移)、wsfl (字左移)、 sfwr (移位写入)、 sfrd (移位读出)这 里主要介绍 sftr (位右移)、 sftl (位左移)指令篇二: plc 移位指令例子】下面我们便举几个简单的例子来学习一下这几个常用指令1、要求 y0-y2 三盏灯轮流亮 1s ,然后一起亮 1s,如此反复循环下面就分析一下以上的程序对于 y2y1y0 ,依控制要求,每次其输出应为 001,010 ,100 ,111,其对应的十六进制数为 1247 ,先将此循环数据送到数据寄存器,再执行循环移位,以 1s 的速度移位,每次移动 4 位,最后将数据寄存器中的低四位送到 k1y0 ,这样在y3-y0 的输出就会得到其控制要求的输出该要求既可以用循环右移指令,也可以用循环左移指令,其实都是差不多的,只需要改动一点点只要了解了控制要求,理解了它是如何控制的,就万变不离其宗了下面便是用循环左移指令编写的程序2、控制一组 8 个灯,当启动时,要求 y7-y0 这 8 个灯从右到左逐个点亮,全部灯点亮时,再从左到右逐个熄灭,全部灯熄灭后,再从左到右逐个点亮,全部灯点亮时,再从右到左逐个熄灭,如此反复循环。
下面也分析一下以上的程序定时器 t0 用于左移和右移的移位信号,定时器 t1 用于对 k1m0 的加 1 计数控制, incp k1m0 则为加 1 计数 器,计数值用 k1m0 表示,其中 m1 、m0 的计数值用于左右移位的 控制当 m1=0 ,m0=1 时为左移逐渐点亮;当 m1=1 ,m0=0 时为右移逐渐熄灭;当 m0 =1 ,m1 =1 时为右移逐渐点亮;当 m0 =0 ,m1= 0 时为左移逐渐熄灭当按下启动按钮时, t1 常闭触点闭合,执行一次 incp k1m0 指令, k1m0=0001 ,则 m1=0 ,m0=1 ,m1 常 闭触点闭合,执行左移指令 sftl ,t0 每隔 1s 发一个脉冲,将 m0 的1 依次左移到 y0-y7 中,依次点亮t1 每隔 8s 发一个脉冲,执行一次 incp k1m0 指令, k1m0=0010 ,则 m1=1 ,m0=0 ,m1 常开触点闭合,执行右移指令 sftr ,t0 每隔1s 发一个脉冲,将 m0 的 0 依次右移到 y7-70 中,依次熄灭以此类推,在此就不赘述了这样,从而可以达到控制要求篇三: plc 移位指令例子】的低字或整个累加器的内容进行左移或右移一定的位数。
二进制数左移一位相当于将原数值乘以 2右移一位相当于将原数值除以 2 参数 n 表示移位的次数移出的空位根据不同的指令由 0 或符号位的状态填充最后移出的位的状态同时被装入到状态字的 cc1 位,cc0 和 ov 位被复位科教兴国。
