三菱 SFC(步进梯形图,STL 指令图形化)支持嵌套,但分两种完全不同的嵌套形式,FX(STL 步进指令)、Q/IQ-R/IQ-F 全系列规则不一样,不能混用。
一、两类嵌套严格区分
类型 1:SFC 内部图形块原生嵌套(GX Works2/3 可视化 SFC 编辑器,Q/IQ-R/IQ-F 高端机型)
✅ 允许多级步嵌套、分支嵌套、子 SFC 块嵌套,IEC 标准原生支持:
主流程某激活步内部直接插入一整套独立子 SFC 顺序流程(子步序列);
支持选择性分支嵌套、并行分支多层嵌套,主步激活后自动进入内嵌子流程,子流程全部走完自动返回上级主步,继续向下流转;
软件树状层级清晰,主块、子块、孙块分层显示,无软元件冲突风险;
可以在 SFC 步动作里调用独立 SFC 子程序块,实现块级嵌套调用。
适用场景:整机主工艺流程嵌套工位细分工序、设备手动 / 自动分支内嵌套调试分步流程。
类型 2:FX 系列 STL 步进指令(S 状态继电器),梯形图写法的步进
关键限制:STL 指令语法不允许同一个 STL 步内部直接再写一层 STL 嵌套
错误写法示例:
stl
STL S20 STL S30 // 语法报错,STL不能嵌套书写 OUT Y0 RET
FX 实现 “步进嵌套” 的两种合规替代方案(工程标准用法)
方案 A:子 SFC 做成独立子程序 CALL 调用(最常用)
主流程 SFC(STL)走到 S20 激活;
在 S20 步内用
CALL Pxx调用一段独立子程序,子程序内部完整写一套 STL 子步进流程;子流程执行完毕
RET自动回到 S20 原步,主流程继续向下跳转;FX 子程序最大嵌套调用层数 5 层,足够复杂工序分层设计。
方案 B:分支结构模拟嵌套(SFC 图形选择性分支)
不用硬嵌套,用选择性分支等效分层:主步 S20 分出多条分支,其中一条分支完整走完子工序 S30→S31→S32,子分支全部结束后汇合回到主流程 S21,逻辑效果等价嵌套,语法完全合法。
方案 C:步内嵌入普通梯形图逻辑(非步进嵌套)
单个 STL 步内部可以写 LD、AND、OUT、定时器、传送指令等普通梯形图逻辑,只是不能再嵌套 STL 步进指令,很多局部联锁、计算、PID 调用直接写在步内即可,无需新开子步进。
二、嵌套边界红线(必避坑)
STL 指令物理限制(FX)连续两层
STL指令堆叠编译报错;STL 自带母线隔离,无法内部再开启新步进母线。并行分支不能跨分支跳转嵌套SFC 并行分支内的跳转、子流程只能在本分支内闭合,不能跨并行分支互相嵌套跳转,会出现多步同时激活、输出冲突。
S 状态编号规划主流程 S20~S29,子流程 S30~S39,分层划分状态继电器,绝对不能重复使用 S 编号,否则多步同时置位。
三、两种机型实操对比表
表格
| 机型 | SFC 编辑器原生图形嵌套 | STL 指令直接嵌套 | 标准嵌套实现方式 |
|---|---|---|---|
| FX3U/FX5U(IQ-F) | GX Works3 可视化 SFC 块支持块嵌套 | ❌不允许 | CALL 子程序调用 + 选择性分支模拟 |
| Q/IQ-R 系列 | ✅完全支持多层步、分支、子块嵌套 | 无需 STL 指令,图形拖拽分层 | 直接拖拽内嵌子 SFC 流程 |
四、典型应用示例(FX 工程常用)
需求:主流程走到夹紧工位 S20,执行夹紧细分动作(夹紧→保压→泄压),完成后回到 S20 再走到下料 S21
主 SFC:S0 启动→S10 上料→S20 夹紧工位;
S20 步内:
X1=ON CALL P10;P10 子程序内部:STL S30 夹紧→T0 延时→S31 保压→T1 延时→S32 泄压→RET;
子程序返回 S20,转换条件满足跳转至 S21 下料。逻辑完全等价步进嵌套,语法无任何报错,调试层级清晰。
五、总结
Q/IQ-R/IQ-F 可视化 SFC 图形编程:原生支持多层嵌套,直接拖拽即可;
FX 老式 STL 步进梯形图:不能直接 STL 嵌套,但能用【子程序 CALL 调用子 SFC】或【选择性分支】完美实现嵌套逻辑,工程上通用;


