S7-1200 PLC循环移位指令做流水灯控制

S7-1200 PLC循环移位指令做流水灯控制

S7-1200 PLC中的移位和循环移位指令指令包括了移位指令SHLSHR,循环移位指令ROLROR

1、移位指令

移位指令分为左移指令SHL和右移指令SHR这两个,它们执行的过程是一致的,只是移动的方向不同而已,左移指令是由低位往高位移动,右移指令是由高位往低位移动。

我们以左移指令来看一下,指令中的N是移位的位数,是将输入操作数IN中的二进制位按N位向左进行移位,从而输出到输出端OUT中,注意移位指令移出的位是自动丢去的,而低位中空出的位是自动补零的。

关于移位指令使用时支持的数据类型,除了支持位字符串的数据类型之外,还可以支持整数的数据类型。

2、循环移位指令

循环移位指令分为循环左移ROL和循环右移ROR这两个指令,同样的它们的移动方向是不同的,循环左移指令是由低位往高位移动,循环右移指令是由高位往低位移动。

关于循环移位指令支持的数据类型只要位字符串的数据类型哦。下面我们以循环左移指令来看一下指令的执行过程,指令中的N同样的是用于指定移动的位数,指令是将输入操作数IN中的二进制位按N位进行循环左移,这个指令和移位指令的区别是,循环移位指令移出的位并不会丢失,而是会放回到地位中空出的位置中的

我们下面讲一个流水灯控制,是以循环移位指令实现的,主要是为了让大家能够熟悉指令的使用哦。

控制要求:有八盏指示灯分别对应于PLC输出Q0.0~Q0.7,按下启动按钮,从第一盏灯开始每隔1s点亮,点亮下一盏的同时熄灭上一盏。

当第八盏灯点亮后延时5秒,然后以反反向点亮,回到第一盏时又延时5秒进行下一轮循环,按下停止按钮所有指示灯都熄灭。

当按下启动按钮M3.0时,M3.1置位接通,M3.1接通同时随1s时钟脉冲每隔一秒进行向左移位,依次点亮一盏灯并熄灭上一盏灯;

当第八盏灯点亮了则Q0.7接通,置位切换方向信号M3.4M3.4触点接通并开始延时5秒,5秒时间到后M3.5线圈接通,M3.5触点接通同时随1s时间脉冲每隔1秒进行向右移位;

直到点亮第一盏灯Q0.0时,不再执行ROR右移指令,而去执行程序段5Q0.0触点接通,定时器开始延时5秒时间,延时时间到后复位M3.4,也就是复位切换方向的信号,同时置位启停标志M3.1,接着又开始下一次的轮回。

当按下停止按钮时,MOVE指令将0移动到QB0,进行清零,使所有输出都复位,指示灯全部熄灭,同时也将启停标志M3.1和切换方向信号M3.4都复位掉。

猜你喜欢

转载自blog.csdn.net/m0_73687141/article/details/128043006