《PLC 移位指令应用:用 “流水灯控制” 案例,学 SHRB 指令的时序逻辑》
移位指令是PLC编程中实现顺序控制、物料分拣、灯光效果等功能的利器。
对于西门子S7200 SMART PLC,SHRB 指令是1个非常灵活的移位寄存器指令。
我们通过1个经典的“8位流水灯”案例来理解它。
案例要求:
8个指示灯Q0.0 ~ Q0.7依次点亮,像水流1样循环。
每个灯亮1秒,1次只有1个灯亮。
理解 SHRB 指令:
SHRB 指令有3个关键参数:DATA移入的数据位,S_B1T移位寄存器的最低位,N移位寄存器的长度和方向。
N > 0: 向左移位从低位向高位移动。
N < 0: 向右移位从高位向低位移动。
程序设计思路:
初始化: 在第1个扫描周期SM0.1,将第1个灯Q0.0置位为1,其余灯复位为0。
这给了流水1个“起点”。
建立移位脉冲: 使用1个定时器如T37构成1个1秒的时钟脉冲。
每1秒产生1个脉冲,作为移位的触发信号。
配置 SHRB 指令:
DATA:这个位的数据将被移入寄存器。
为了实现循环,我们应该将最后1位的状态Q0.7移回到第1位。
所以,DATA 端连接 Q0.7。
S_B1T:指定移位寄存器的最低端,也就是Q0.0。
N:寄存器长度是8位。
我们希望数据从Q0.0向Q0.7方向移动,所以是左移,N=+8。
程序逻辑:
text
网络1:初始化
SM0.1
M0V_B
EN EN0
16#01 > QB0 //将12进制0000 0001送到输出字节QB0,使Q0.0亮
网络2:产生1秒脉冲
T37
1N T0N
100PT //10ms100=1s
|
| T37 //T37常开触点
|]/[ //形成1个1秒通,1秒断的闪烁电路
网络3:执行移位
T37 //每秒触发1次
SHRB
EN EN0
Q0.7 DATA
Q0.0 S_B1T
+8 N
工作原理:
第1秒,Q0.0=1,其他为0。
当1秒脉冲到来时,SHRB 指令执行。
它将 DATA 端Q0.7的当前值,为0移入,整个8位寄存器Q0.0~Q0.7向左移动1位。
结果变为:Q0.0=0,Q0.1=1。
第2秒,Q0.1亮。
如此循环,当1移动到Q0.7后,在下1个脉冲,Q0.7的“1”被移出到 DATA 端,又填回到了Q0.0。
从而实现了周而复始的流水效果。
通过这个案例,你可以直观地看到数据在寄存器中“流动”的时序逻辑,这是理解移位指令精髓的关键。
交易前请核实商家资质,勿信夸张宣传和承诺,勿轻易相信付定金、汇款等交易方式。