对于通常的应用来说,一般不使用顺序控制指令编程。顺控指令一般用在需要控制的动作具有明确的步骤顺序,并且周而复始地循环的场合。
顺控指令程序可以作功能块(子程序)包含在整个程序中,与其他非顺控控制程序共存。
普通的PLC程序是从头到尾不断扫描执行的。SCR指令的关键是“步”和“转换”,当转换的条件不满足时会一直保持在当前的步中。“转换”就是从一个步,进入另一个步。在一个步的状态中,程序也不是按普通程序运行的模式进行局部的“循环扫描”。
SCR指令
SCR指令的每一个步的结构,总是以LSCR指令开始,以SCRE结束,SCRT(步转换指令)及其发生的条件在这两者之间。
下面是一个例子(STL语句)如下:
Network 1
LD SM0.1
S S0.1, 1 //程序运行开始时,进入步
Network 2
LSCR S0.1 //装载SCR指令,SCR结构开始
Network 3
LD SM0.0
S Q0.0, 1 //置位Q0.0
Network 4
LD I1.0 //I1.0为“1"时,
SCRT S0.2 //转换到下一步
Network 5
SCRE //步结束
Network 6
LSCR S0.2
Network 7
LD SM0.0
R Q0.0, 1
Network 8
LD I1.1
SCRT S0.3
Network 9
SCRE
Network 10
LSCR S0.3
Network 11
LD SM0.0
S Q0.0, 1
Network 12
LD I1.2
SCRT S0.4
Network 13
SCRE
Network 14
LSCR S0.4
Network 15
LD SM0.0
R Q0.0, 1
Network 16
LD I1.3
SCRT S0.1 //回到步
Network 17
SCRE
对应的梯形图如下,使用SCR、SCRT、SCRE:
常问问题
是否可以在不同的步中使用同一个开关量输出点?为何出现不合逻辑的现象?
可以在不同的步中对同一个输出点进行操作。这些逻辑运算不应使用普通编程时的实时状态计算规则,应使用S(置位)和R(复位)指令对输出点操作;或者使用中间状态继电器过渡,后再综合逻辑,一起输出。
顺控程序停止调用后,整个步进逻辑如何变化,恢复调用后如何表现?