33. 顺序控制指令

  1. 顺序控制指令

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应用技术》(王永华))

  1. 初始化 :用初始化脉冲SM0.1(仅第一个扫描周期为ON)置位初始状态S0.1 (S S0.1),启动第一个SCR段。
  2. 状态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确保段终止)。
  1. 状态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段。
  1. 状态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编程,会终止后续状态转移,需谨慎使用。
相关推荐
深蓝海拓3 天前
基于QtPy (PySide6) 的PLC-HMI工程项目(二)系统规划
笔记·python·qt·学习·plc
深蓝海拓5 天前
西门子S7-1500PLC的常用Area地址以及网络读写
笔记·学习·plc
深蓝海拓5 天前
基于QtPy (PySide6) 的PLC-HMI工程项目(一)使用自定义socket协议的基本方法
python·plc
Lilixxs7 天前
施耐德 M580、M340 PLC 中 BOOL 类型数组地址
数据结构·plc·施耐德·m580·m340·unity pro·control expert
9稳9 天前
基于PLC的生产线自动升降机设计
开发语言·网络·数据库·嵌入式硬件·plc
zmj32032412 天前
PLC与单片机、继电器控制系统 的价格比较
单片机·嵌入式硬件·plc
zmj32032412 天前
PLC与单片机(微控制器MCU)、传统继电器控制系统
单片机·嵌入式硬件·plc
ytttr87313 天前
F3U源码STM32仿三菱PLC底层实现
stm32·plc
却道天凉_好个秋14 天前
音视频学习(九十六):PLC
学习·音视频·plc