FANUC PMC 顺序程序分三级执行,而每一级的结束靠 END1 / END2 / END3 三个指令。很多工程师写梯形图有个习惯:顺序程序从头写到尾,一口气排下去。
程序能跑,动作也对。但一旦现场出点怪现象——某个信号响应慢了半拍、某个输出没按预期触发——就完全找不着原因。
根本原因不在某个指令写错,而在没搞懂 PMC 到底是怎么执行你这段程序的。
FANUC PMC 的梯形图(顺序程序)不是从上到下跑一遍就完事,它分三级,按优先级循环执行。而每一级的结束,靠的就是 END1 / END2 / END3 这三个指令。
这三个指令是理解整个扫描周期的前提。 搞懂它们,程序响应快慢、信号优先级、为什么改了 A 处 B 处也跟着变——全都能解释通。
一、END1 / END2 / END3 各自是什么
先看它们的书写形式:
| 指令 | 含义 | 所在层级 | 作用 |
|---|---|---|---|
| END1 | 第一级顺序程序结束 | 第 1 级 | 结束本轮第 1 级,转入第 2 级 |
| END2 | 第二级顺序程序结束 | 第 2 级 | 结束本轮第 2 级,转入第 3 级 |
| END3 | 第三级顺序程序结束 | 第 3 级 | 结束本轮第 3 级,返回第 1 级重新开始 |
工作逻辑一句话说清:
PMC 每个扫描周期内,依次执行第 1 级 → END1 → 第 2 级 → END2 → 第 3 级 → END3 → 再回到第 1 级,如此循环往复。
记住这个循环结构,剩下的问题都是它的推论。
二、FANUC PMC 顺序程序执行顺序与优先级:从 END3 回到 END1 意味着什么
这是全文最关键的一张表:
| 执行次序 | 所在层级 | 指令位置 | 相对速度 |
|---|---|---|---|
| 第 1 轮 | 第 1 级 | END1 之前 | 最快,每个扫描周期都跑 |
| 第 2 轮 | 第 2 级 | END1 与 END2 之间 | 中等 |
| 第 3 轮 | 第 3 级 | END2 与 END3 之间 | 较慢 |
| 回到起点 | — | END3 之后回到第 1 级 | 开始新一轮 |
这带来一个重要结论
同一个扫描周期内,第 1 级执行完毕才会轮到第 2 级,第 2 级执行完毕才会轮到第 3 级。
所以:
- 第 1 级里某个信号响应”慢了一拍”,大概率是它被排在了靠后的位置
- 第 3 级里某个信号”延迟明显”,多半是因为它前面两级的逻辑比较长
- 把关键逻辑放在第 1 级,响应最快
安全警示:修改顺序程序层级排布会直接改变机床动作时序与响应速度。请在机床处于安全状态(各轴静止、急停生效)时进行,或确保有资深工程师在场指导。修改前务必备份原始梯形图与顺序程序! 层级排布错误可能导致信号延迟、动作错序甚至设备异常动作,切勿在运行状态下测试。
三、FANUC PMC 顺序程序中断机制:为什么第 1 级”感觉”总是优先
这就涉及 PMC 的中断机制。
第 1 级在整个三级结构中处于最高优先级。 当第 2 级或第 3 级的逻辑正在执行时,如果第 1 级需要响应的条件出现,第 1 级可以优先获得处理。

这解释了很多现场现象:
| 现场现象 | 真实原因 |
|---|---|
| 安全信号响应很快 | 它被放在第 1 级,优先级最高 |
| 某些辅助输出响应偏慢 | 它被排在第 3 级,且前面逻辑长 |
| 改了别的逻辑,这个输出也跟着变快 | 它的执行时间受前序逻辑长度影响 |
第一条尤其重要:安全相关信号(急停、安全门、限位联锁)必须放在第 1 级,不能图省事全塞在最后。
四、END3 的独有功能:为什么长定时器要放第 3 级
END3 和 END1、END2 除了”结束本级”之外,还有个容易被忽略的区别:
第 3 级(END3 所辖)拥有一些前两级不具备的功能支持。
常见可用的功能包括:
| 功能 | 所在层级 |
|---|---|
| 长定时器(长延时计时) | 第 3 级 |
| 模拟量相关定时控制 | 第 3 级 |
| 部分特殊计数与保持功能 | 第 3 级 |
具体可用的功能指令与限制因系统型号和 PMC 配置而异,请务必查阅本机 FANUC 手册确认,需现场验证。 不同系统版本在第 3 级支持的功能范围可能有差异,不要凭其他机台的经验直接套用。
这就是为什么很多需要长延时的逻辑要写进第 3 级——不是因为慢,而是因为长定时器功能只有这一级能用。
五、正确的层级排布方式
一个实用原则:按响应速度需求,从快到慢排列。
第 1 级(END1 之前)—— 优先级最高,放最关键的东西
· 安全联锁、急停处理
· 限位与报警输出
· 主轴、刀塔等关键动作信号
· 高频脉冲输出(如高速脉冲、模拟量刷新)
END1
第 2 级(END1 与 END2 之间)—— 中等优先级
· 一般辅助输出
· 状态指示灯、显示刷新
· 中间继电器逻辑
END2
第 3 级(END2 与 END3 之间)—— 可用长定时器等特殊功能
· 长延时逻辑(如润滑定时、冷却延时停)
· 长时间等待的流程控制
· 不要求快速响应的后台维护类逻辑
END3
(END3 之后回到第 1 级,开始下一轮扫描)
排布速查表
| 要写的东西 | 放哪一级 | 理由 |
|---|---|---|
| 安全联锁、急停 | 第 1 级 | 响应必须最快 |
| 限位、报警 | 第 1 级 | 高优先级,漏检后果严重 |
| 主轴、刀塔关键信号 | 第 1 级 | 直接影响加工节拍 |
| 指示灯、显示刷新 | 第 2 级 | 慢一点无妨 |
| 一般辅助输出 | 第 2 级 | 中等响应即可 |
| 长延时、长定时器 | 第 3 级 | 只有这级支持 |
| 后台维护类逻辑 | 第 3 级 | 不要求速度 |
六、FANUC PMC 顺序程序常见排布错误
这部分是现场踩坑的高频区:
| 错误做法 | 后果 | 正确做法 |
|---|

| 全部逻辑堆在 END1 之前 | 第 2、3 级空转,长定时器用不了 | 按响应需求分三级 |
|---|---|---|
| 安全信号放在第 3 级 | 响应延迟,安全风险 | 安全信号一律进第 1 级 |
| 需要长定时器却写在第 1 级 | 功能不可用或需另想办法 | 长定时器放第 3 级 |
| 误以为 END1/END2 顺序无所谓 | 执行顺序混乱,调试困难 | 严格按 END1→END2→END3 排布 |
| 写了 END3 却没写 END1、END2 | 层级划分错误,逻辑归属混乱 | 三个指令配套使用 |
| 第 1 级塞满几千行 | 整个扫描周期拉长,全局变慢 | 第 1 级只留关键逻辑 |
其中”全部逻辑堆在 END1 之前”最普遍。 它的问题不立刻暴露——程序能跑、动作也对——但扫描周期被拉得很长,系统整体响应变慢,等到发现”程序不动了”才回头查,很难联想到层级问题。
七、FANUC PMC 顺序程序常见问题排查
| 现象 | 可能原因 | 排查方向 |
|---|---|---|
| 长定时器功能用不了 | 写在了前两级 | 移到第 3 级,确认 END3 存在 |
| 某个输出响应明显偏慢 | 排在第 3 级且前序逻辑长 | 上移到第 1 或第 2 级 |
| 改了 A 输出,B 输出也跟着变 | 同级逻辑串联,前序执行时间累积 | 拆分逻辑,检查同支路串接的语句数 |
| 动作时序偶尔错乱 | 关键逻辑分散在不同层级 | 同一功能的信号放同一级 |
| 安全信号响应有延迟 | 安全逻辑被排在了后面 | 立即上移到第 1 级 |
| 扫描周期变长、系统变钝 | 第 1 级过长,堆积了大量非关键逻辑 | 精简第 1 级,把慢逻辑下移 |
| 找不到某个 END 指令 | 三个结束指令没有配套写全 | 检查 END1/END2/END3 是否齐全 |
关于”改了 A 输出,B 输出也跟着变”这条值得展开说:这是新手最容易懵的现象。同一条支路上语句越多、跳转越多,执行耗时越长,后面语句的响应就会被推后。现场调试时如果发现”明明只改了一处,怎么别的地方也变了”,先怀疑执行时间占用,而不是去查改过的那一行。
八、与 TMR / CTR 的配合关系
这三篇讲的功能指令,其实都在顺序程序这个框架里跑。把它们串起来看,PMC 的执行逻辑就完整了:
| 指令 | 管什么 | 层级要求 |
|---|---|---|
| TMR 定时器 | 时间(延时多久) | 前两级即可,长延时需第 3 级 |
| CTR 计数器 | 次数(发生了几次) | 前两级即可 |
| JMP / LBL | 流程(怎么跳转、怎么循环) | 各级皆可,但不宜过多 |
| END1/END2/END3 | 层级(哪段先跑、哪段后跑) | —— 框架本身 |
一个重要提示:如果你的 TMR 延时逻辑写在第 1 级,且前面串了很多触点和跳转,实际延时时间会受扫描周期波动影响而略有出入。对延时精度要求高的场合(比如精密定时、节拍控制),建议把该段逻辑独立出来、放短一点。
小结
FANUC PMC 顺序程序的 END1 / END2 / END3 机制,记住四点:
- 执行顺序是 END1 → END2 → END3 → 回到 END1,循环执行
- 第 1 级优先级最高,安全信号和关键动作必须放这级
- 长定时器等功能只有第 3 级支持,别往前面塞
- 第 1 级越长,整个扫描周期越长,别把慢逻辑堆在开头
把这篇和 FANUC PMC 定时器 TMR 指令详解、FANUC PMC 计数器 CTR 指令详解、FANUC PMC 跳转指令 JMP / LBL 详解连起来看,会发现它们都是在 END1/END2/END3 划出的层级框架内运行的——指令管功能,END 管顺序,两者是配套的。
如果你对层级结构还是没概念,推荐从 零基础学习发那科PMC 梯形图教程 这篇开始,把梯形图的基本结构和信号流搞熟,再理解三级执行机制就轻松了。实际遇到信号响应异常、动作时序错乱这类问题,也可以对照 FANUC PMC 故障排查实战 里的实例分析思路。
标签: FANUC系统 · 机床梯形图 · 学习内容 · 基础知识 · 维修案例
免责声明:本文内容基于 CNCShare 团队实战经验整理,仅供参考。不同机床配置、系统版本可能存在差异,实际操作请以设备官方手册为准。因据此操作导致的损失,CNCShare 不承担责任。文中层级功能范围、可用指令与排布建议仅用于说明通用逻辑,具体配置需现场验证。
























暂无评论内容