- 顺序控制指令
1. 顺序控制指令的核心作用
顺序控制指令是PLC厂家提供的简化功能图编程的工具,让程序员可通过“状态器(S)”+“指令”的方式,直观描述系统的顺序工作流程(如初始→状态1→状态2→…→结束),无需复杂的触点逻辑嵌套。
状态器S 是西门子S7-200/200 SMART系列PLC中一种专门用于顺序控制编程(如功能图/顺序功能图)的特殊中间继电器,其作用是在程序中标记和跟踪一个“状态”或“步”。它是将功能图(状态转移图)转化为可执行梯形图程序的核心载体。
核心概念与作用
状态器S的核心作用在于实现“步进逻辑”。在功能图中,一个状态(例如“初始状态”、“工步1”、“工步2”)对应程序中一个被激活的S位。当某个S位为“1”时,表示系统正处于它所代表的那个“步”中,并执行该步对应的所有动作(输出、计时等)。
2. 指令的组成(以S7-200为例)
S7-200提供4条顺序控制指令,操作对象为状态器S(范围:S0.0~S31.7,对应功能图中的一个“状态”),指令形式分为STL(语句表)和LAD(梯形图),功能如图所示:
| 指令 | STL形式 | LAD形式 | 功能 | 操作对象 |
| 装载SCR | LSCR bit | ---(SCR) | 标记SCR段的开始(进入一个状态) | S位(状态器) |
| 转移SCR | SCRT bit | ---(SCRT) | 标记SCR段的转移(从当前状态跳转到下一个状态) | S位(目标状态器) |
| 结束SCR | SCRE | ---(SCRE) | 标记SCR段的结束(退出当前状态) | 无 |
| 条件结束SCR | CSCRE | ---(SCRE)(带条件) | 标记条件满足时结束SCR段(动态终止当前状态) | 无 |
3. 指令的语法与逻辑(结合“SCR段”理解)
“SCR段”是顺序控制的核心单元,每个SCR段对应功能图中的一个状态,结构为:LSCR(开始)→ 状态内的动作/逻辑 → SCRT(转移)/ SCRE(结束)/ CSCRE(条件结束)。
(1)LSCR:装载SCR(开始一个状态)
- 功能:标记SCR段的起始,将当前状态器(S位)置为“有效”,允许该状态下的指令(如输出、定时、计数等)执行。
- 语法:STL中为 LSCR Sx.y(如LSCR S0.1),LAD中为---(SCR) Sx.y。
- 逻辑:当SCR段被LSCR启动时,状态器Sx.y被置位,该状态下的所有逻辑(如输出Q、定时器T、计数器C等)生效,系统进入“状态x.y”的稳定运行阶段。
(2)SCRT:转移SCR(切换到下一个状态)
- 功能:标记SCR段的转移,当转移条件满足时,将下一个状态器置位(启动下一个SCR段),同时复位当前状态器(停止当前SCR段)。
- 语法:STL中为 SCRT Sx.y(如SCRT S0.2),LAD中为---(SCRT) Sx.y。
- 逻辑:当SCRT的输入条件(如定时器常开触点闭合、外部按钮信号等)满足时,系统从当前状态(如S0.1)转移到目标状态(如S0.2),当前状态的SCR段结束,目标状态的SCR段启动。
(3)SCRE:结束SCR(退出当前状态)
- 功能:标记SCR段的结束,必须出现在每个SCR段的最后,用于终止当前状态的SCR段(复位当前状态器)。
- 语法:STL中为 SCRE,LAD中为---(SCRE)。
- 逻辑:当SCR段执行到SCRE时,当前状态器被复位,该状态下的指令不再执行,系统回到“无状态激活”的状态,等待下一个LSCR启动新状态。
(4)CSCRE:条件结束SCR(动态终止当前状态)
- 功能:标记条件满足时结束SCR段,仅CPU V1.21及以上版本支持,只能用于STL形式。条件满足时,结束当前SCR段(复位当前状态器),并终止后续的状态转移操作(需谨慎使用)。
- 语法:STL中为 CSCRE,LAD中无直接对应(需用条件触点+SCRE模拟)。
- 逻辑:当CSCRE前方的条件(如传感器信号、错误标志等)满足时,立即终止当前SCR段,不再执行后续的SCRT或SCRE,常用于紧急停止、故障处理等场景。
4. 指令的工作流程(以“初始化→状态1→状态2→结束”为例)
流程如下:
(图片摘自《现代电气控制及PLC应用技术》(王永华))
- 初始化:用初始化脉冲SM0.1(仅第一个扫描周期为ON)置位初始状态S0.1(S S0.1),启动第一个SCR段。
- 状态1(S0.1的SCR段):
-
- LSCR S0.1:开始S0.1的SCR段,S0.1置位,状态内的指令(如= Q0.4、= Q0.5、= Q0.6、TON T37, +10)执行(驱动输出、启动定时器)。
- 当定时器T37计时到1s(T37常开触点闭合),SCRT S0.2:触发转移,置位S0.2(启动下一个SCR段),同时复位S0.1(停止当前SCR段)。
- SCRE:标记S0.1的SCR段结束(实际中SCRT已复位S0.1,SCRE确保段终止)。
- 状态2(S0.2的SCR段):
-
- LSCR S0.2:开始S0.2的SCR段,S0.2置位,状态内的指令(如= Q0.2、TON T38, +20)执行。
- 当定时器T38计时到20s(T38常开触点闭合),SCRT S0.3:触发转移到S0.3,复位S0.2。
- SCRE:结束S0.2的SCR段。
- 状态3(S0.3的SCR段):
-
- LSCR S0.3:开始S0.3的SCR段,执行状态内指令(如输出Q0.3等)。
- 若无需继续转移,用SCRE结束S0.3的SCR段,系统回到无状态激活状态。
5. 关键注意点
- 操作对象:所有顺序控制指令的操作对象是状态器S(S0.0~S31.7),每个S位对应功能图中的一个“状态”。
- SCR段的结构:每个状态必须由LSCR开始,以SCRE(或CSCRE)结束,中间可包含输出、定时、计数、逻辑运算等指令。
- 转移条件:SCRT的触发条件必须是当前状态为“动状态”(即SCR段已启动,S位置位)且转移条件成立,才能触发状态转移。
- CSCRE的特殊性:仅在CPU V1.21以上版本支持,且仅能STL编程,会终止后续状态转移,需谨慎使用。