顺序控制(SCR)指令
顺序控制(SCR)指令
顺序控制指令的功能是是按照控制工艺将一个复杂的步骤分割成几个简单的步骤(即顺控段),并根据工艺步骤顺序执行这些顺控段。
普通的PLC程序是从头到尾不断扫描执行的。SCR指令的关键是“步”和“转换”,当转换的条件不满足时会一直保持在当前的步中。“转换”就是从一个步,进入另一个步。
请用户不要用调用子程序的原理去理解顺控的的执行方式,不被激活的顺控段并不是被直接跳过,而是从最左侧切断该顺控段的指令能流。
指令描述
LAD | 描述 |
装载 SCR 指令 (LSCR) 将 S 位的值装载到 SCR 和逻辑堆栈中。 | |
SCRT 指令标识要启用的 SCR 位(要设置的下一个 S_bit)。能流进入线圈或 FBD 功能框时,CPU 会开启引用的 S_bit,并会关闭 LSCR 指令(启用此 SCR 段的指令)的 S_bit。 | |
梯形图编程中,直接连接SCRE指令到能流线上,表示该顺控段的结束。 |
控制流
常见的有顺序控制流和分散控制流两种:
顺序控制流 | 分散控制流 |
常问问题
1. 为什么顺控指令段对应的S标志位已经被复位了,但是顺控段中的程序似乎还能影响程序逻辑?
我们首先看如图4.47顺控程序举例 所示的程序例子:
图1.顺控程序举例
从上图可以看出,主程序的程序段1中使用SM0.0置位了输出Q0.0。从程序段2到5的顺控段对应的S0.1为OFF状态,但是在程序段3中输出Q0.0被复位了,在图片右侧所示的状态表中也显示了Q0.0的状态为'0'。这种结果的原因在于当一个顺控段对应的S标志位被复位时,程序并不是从指令SCR直接跳转到SCRE,而是将SCR和SCRE指令之间的程序段左侧的能流切断。 可以在不同的步中对同一个输出点进行操作。这些逻辑运算不应使用普通编程时的实时状态计算规则,应使用S(置位)和R(复位)指令对输出点操作;或者使用中间状态继电器过渡,最后再综合逻辑,一起输出。