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