功能块与顺序控制
功能块图(FBD)
通过功能块之间的连线传递信号,适合信号流清晰的控制系统。
[启动按钮]────[ ≥1 ]────[ RS ]────[ Q0.0 ]
│ ▲ │
[停止按钮]──────[ NOT ]─────┘1
2
3
2
3
顺序功能图(SFC)
SFC 将整个控制过程分为多个步(Step),每一步对应一个输出状态,步与步之间通过转移条件切换。
核心概念
| 元素 | 说明 |
|---|---|
| 步(Step) | 每个步对应一组输出状态 |
| 转移(Transition) | 步与步之间的切换条件 |
| 动作(Action) | 每个步内执行的操作 |
SFC 示例:三段式延时灯
X0(启动)
│
▼
┌─────────┐
│ S0 │──[ X0 ]──→ S21
│ 初始步 │ │
│ (全灭) │ ▼
└─────────┘ ┌─────────┐
│ S21 │──[ T0 K200 ]──→ S22
│ 灯1亮 │ │
│ Y0=ON │ ▼
└─────────┘ ┌─────────┐
│ S22 │──[ T1 K200 ]──→ S0
│ 灯1+2亮 │ │
│Y0=Y1=ON │ ▼
└─────────┘ S0(循环)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
三菱 STL(步进顺控)
三菱 PLC 独有的 STL 指令,简化 SFC 实现:
txt
STL S0; // 步 S0
LD X0; // 启动条件
SET S21; // 转移到步 S21
RST S0; // 复位本步
STL S21; // 步 S21:灯1亮
OUT Y0; // 输出 Y0
LD T0; // 定时器 T0 到达
SET S22; // 转移到步 S22
RST S21; // 复位本步
STL S22; // 步 S22:灯1+2亮
OUT Y0;
OUT Y1;
LD T1; // 定时器 T1 到达
RST S22;
SET S0; // 返回初始步(循环)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
功能块(FB)封装
功能块是可复用的程序模块,类似函数/方法:
[ Motor_Control FB ]
── start ─┤ ├─ running ── Y0
├─ stop ────┤
├─ fault ───┼─ fault_out1
2
3
4
2
3
4
封装内容:
- 输入:start / stop / fault
- 输出:running / fault_out
- 内部:定时器、自锁逻辑
💡 什么时候用 SFC/STL:生产流水线、灌装线、喷涂线等多步顺序动作控制。