三菱 PLC 的 SFC(顺序功能图)与梯形图(LD)可双向转换,核心是将 SFC 的 “步 + 转移条件 + 动作” 映射为梯形图的 “状态继电器(S)+ 触点条件 + 输出线圈”,以下是从转换原理、分步操作到实战案例的完整指南(适配 GX Works2/GX Works3)。
一、核心转换原理(先理解 SFC 与梯形图的对应关系)
SFC 的核心元素是「步(状态 S)、转移条件、动作、跳转 / 复位」,转换为梯形图时需遵循 “状态置位→条件触发转移→状态复位→动作执行” 的逻辑,对应关系如下:
| SFC 元素 | 梯形图实现方式 | 示例(S0 为初始步) |
|---|---|---|
| 初始步(S0/S10~S19) | 用 M8002(上电脉冲)置位初始状态继电器 | LD M8002; SET S0; |
| 普通步(S20~S899) | 用前序步 + 转移条件置位,后续步触发复位 | LD S0; AND X0; SET S20; RST S0; |
| 转移条件 | 用触点(X/Y/M/T/C)串联 / 并联实现 | 条件 “X0=ON 且 T0=ON”→LD X0; AND T0; |
| 步动作 | 用状态继电器触点驱动输出(Y/M) | LD S20; OUT Y0; OUT T0 K10; |
| 并行分支 | 多个状态同时置位,各自独立转移 | LD S20; AND X1; SET S21; SET S22; |
| 选择分支 | 不同条件触发不同状态,互斥转移 | LD S20; AND X1; SET S21; LD S20; AND X2; SET S22; |
| 步结束 / 复位 | 用最终步触发总复位,或转移后复位前序步 | LD S30; RST S20; RST S21; RST S22; |
二、自动转换(GX Works2/3 一键操作,优先推荐)
三菱编程软件支持 SFC 直接转梯形图,无需手动编写,步骤如下(以 GX Works3 为例):
步骤 1:打开 SFC 程序
步骤 2:切换编辑模式
步骤 3:验证转换结果
注意:自动转换的限制
三、手动转换(适配复杂 SFC,核心实战)
若 SFC 包含并行分支、跳转、复位等复杂逻辑,或需优化梯形图可读性,需手动转换,以下以 “攻牙机简易 SFC” 为例,分步演示:
示例 SFC 逻辑(攻牙机基础流程)
plaintext
初始步S0 → [X0启动] → S20(原点回归)→ [X1原点到位] → S21(攻丝)→ [X2深度到位] → S22(退丝)→ [X3复位到位] → S30(结束)→ 复位所有步
手动转换为梯形图(分 4 部分)
1. 初始步置位
plaintext
LD M8002 // 上电初始化脉冲 SET S0 // 置位初始步S0 RST S30 // 复位结束步(避免上电触发结束)
2. 初始步→原点回归步(S0→S20)
plaintext
// 转移条件:S0有效 + X0启动按钮ON LD S0 AND X0 // 启动条件 SET S20 // 置位原点回归步S20 RST S0 // 复位前序步S0 // S20的动作:驱动Z轴回零(Y0)、启动延时T0(防抖) LD S20 OUT Y0 // Z轴回零输出 OUT T0 K20 // 防抖延时2秒
3. 原点回归→攻丝步(S20→S21)
plaintext
// 转移条件:S20有效 + X1原点到位 + T0计时完成 LD S20 AND X1 // 原点到位传感器 AND T0 // 防抖完成 SET S21 // 置位攻丝步S21 RST S20 // 复位S20 // S21的动作:主轴正转(Y1)+ Z轴进给(Y2) LD S21 OUT Y1 // 主轴正转 OUT Y2 // Z轴进给
4. 攻丝→退丝→结束(S21→S22→S30)
plaintext
// 攻丝→退丝 LD S21 AND X2 // 深度到位传感器 SET S22 // 置位退丝步S22 RST S21 // 复位S21 // S22的动作:主轴反转(Y3)+ Z轴回退(Y4) LD S22 OUT Y3 // 主轴反转 OUT Y4 // Z轴回退 // 退丝→结束 LD S22 AND X3 // 复位到位传感器 SET S30 // 置位结束步S30 RST S22 // 复位S22 // 结束步:复位所有输出+状态 LD S30 RST Y0 // 停止Z轴回零 RST Y1 // 停止主轴正转 RST Y2 // 停止Z轴进给 RST Y3 // 停止主轴反转 RST Y4 // 停止Z轴回退 RST S30 // 复位结束步(循环等待下一次启动)
四、复杂 SFC 转换要点(并行 / 选择分支)
1. 选择分支(二选一)
SFC 逻辑:S20 → [X1]→S21 / [X2]→S22梯形图实现:
plaintext
// 分支1:X1触发S21 LD S20 AND X1 SET S21 RST S20 // 分支2:X2触发S22 LD S20 AND X2 SET S22 RST S20
2. 并行分支(同时触发)
SFC 逻辑:S20 → [X1]→S21 且 S22梯形图实现:
plaintext
// 并行置位S21和S22 LD S20 AND X1 SET S21 SET S22 RST S20 // 并行分支结束:S21和S22都完成后触发S23 LD S21 AND S22 AND X3 // 分支结束条件 SET S23 RST S21 RST S22
五、转换后优化(提升可读性)
六、常见问题与解决
| 问题现象 | 原因 | 解决方法 |
|---|---|---|
| 转换后状态步不触发 | 初始步未用 M8002 置位 | 检查LD M8002; SET S0;是否存在,M8002 是上电仅 ON 一次的脉冲 |
| 并行分支只触发一个状态 | SET 指令遗漏 | 确认并行分支的所有状态都执行 SET,如SET S21; SET S22; |
| 状态步无法复位 | RST 指令位置错误 | RST 需在 SET 后执行,且仅复位前序步(如SET S21; RST S20;) |
| 转换后扫描周期过长 | 状态步过多,指令冗余 | 将重复逻辑封装为子程序(CALL 指令),减少主程序指令量 |
总结
SFC 转梯形图的核心是「状态继电器的置位 / 复位 + 转移条件的触点组合 + 动作的输出驱动」:

