STL 步进指令(梯形图写法)、图形化 SFC(GX Works 可视化编辑器),二者嵌套规则完全不一样,很多人混淆。
一、FX 系列 STL 步进触点(STL Sxxx):不能直接嵌套
硬性规则
一个 STL 块内部,不允许再写第二层 STL Sxx,语法不支持、编译报错。
plaintext
STL S20 // 主步 LD X0 SET Y0 STL S21 // ❌ 非法嵌套,STL里不能再套STL RET
限制补充:
STL 块整体只能出现一次 RET收尾,不能分层 RET;
STL 内部可以用
CALL Pxx调用子程序,但子程序内部禁止写 STL/RET;STL 里允许 FOR-NEXT 循环(最多 4 级),但这不是步进嵌套,只是普通循环指令。
STL 实现 “分层流程” 的替代方案(工程通用)
主步激活时,用 SET 置位子流程 S 寄存器,把子流程做成独立一段 STL;
子流程走完自动复位,回到主流程;
本质是两段独立 STL 顺序接力,不是语法嵌套。
二、GX Works2/3 图形化 SFC(IEC 标准 SFC):原生支持多级嵌套(步中步)
FX5U、Q 系列、iQ-R、FX3U(新版软件)图形 SFC 编辑器支持嵌套子 SFC,两种嵌套模式:
模式 1:步内嵌入子 SFC(层级嵌套,最常用)
主流程某一个 Step,右键插入内嵌 SFC(子流程图),形成:主步 → 展开子 SFC 完整独立流程 → 子流程全部走完自动返回原主步。
可视化树形分层,主流程、子工序分开画图;
各自有独立起始步、转移条件,互不干扰;
支持多层递归嵌套(主→子→孙),没有严格级数上限。
模式 2:SFC 多 Block 分块调用(模块化大嵌套)
SFC 可以新建多个独立 Block(Block0 主流程、Block1 上料、Block2 下料、Block3 故障处理);在主流程步内用块调用指令启动子 Block 执行,子 Block 走完自动回到主流程,属于更大粒度的流程嵌套。
模式 3:分支结构(选择性 / 并行分支)≠嵌套,但常混用
SFC 原生自带:
选择性分支(多选一)
并行分支(多条流程同时运行)这是并列分支,不是 “步套步” 的嵌套,但可以和内嵌子 SFC 组合搭建复杂工艺。
三、两种 “嵌套” 实现方式对比总结
表格
| 实现方式 | 是否支持嵌套 | 适用机型 | 本质说明 |
|---|---|---|---|
| STL 指令梯形图手写 | ❌ 不允许 STL 套 STL | FX1N/FX2N/FX3U 传统写法 | 只能分段 SET 接力模拟分层,无语法嵌套 |
| GX Works 图形 SFC 内嵌子 SFC | ✅ 原生多级嵌套 | FX5U、Q、iQ-R、新版 FX3U | 真正步中步层级嵌套,画图直观 |
| SFC Block 块调用 | ✅ 模块级嵌套 | 全系列支持 SFC 块功能 | 主流程调用独立子流程块,大型项目首选 |
四、实操工程写法推荐
1)老 FX3U 还用 STL 梯形图
不要强行嵌套 STL,标准方案:
主流程 S20 激活 → SET S30(子工序起始步);
子工序独立一段 STL S30~S39,走完自动 SET S21 回到主流程;两段 STL 各自 RET,物理分开,无嵌套。
2)FX5U/Q/iQ-R 直接用图形 SFC 嵌套(推荐)
主流程画整体流水线;
“上料工位” 这一步右键 → 插入内嵌 SFC;
新窗口单独画上料夹紧、上升、到位、缩回完整子流程;
子流程结束自动跳出,主流程继续下一步转运。
五、高频误区澄清
误区:SFC 分支 = 嵌套纠正:并行 / 选择性分支是多条流程并列执行;内嵌子 SFC 才是层级嵌套,子流程依附于单个主步内部。
误区:STL 不能嵌套 = 三菱 SFC 都不能嵌套纠正:只是老式 STL 指令受限,现代图形化 IEC 标准 SFC 完整支持多级嵌套,也是官方推荐的模块化设计方式。
误区:CALL 子程序就是步进嵌套纠正:SFC 步里 CALL 子程序只是调用普通逻辑,子程序不能带 STL 顺控结构,不属于步进流程嵌套。
结论
手写 STL 步进梯形图:不支持 STL 互相嵌套,只能分段接力模拟分层;
GX Works 图形化 SFC 编辑器:原生支持多层步内嵌套、Block 块调用嵌套,工程上广泛使用。


