如果你在梯形图里看到过一行 ALARM 指令,点一下就弹出一句中文提示,那这句提示是机床厂家自己写的,不是发那科出厂写好的。发那科出厂只提供报警的框架和通道,报警号、报警内容、触发条件、显示画面,全都是 PMC 程序的责任。
这就是一个很典型的长尾需求:搜”FANUC PMC ALARM”的,几乎全是正在自己写报警的人。而站内现有的 365(FANUC 系统严重错误报警代码大全)和 378(FANUC 基本报警代码大全)讲的都是 NC 侧的系统报警和 PS/BG/SR 报警——那些是买机床时自带的,维修工被动查。本篇讲的是完全相反的方向:你自己往梯形图里写报警。
本文以发那科梯形图和 FANUC Ladder III 为工作界面,把自定义报警从原理、指令格式、梯形图接法到显示画面集成完整讲一遍。对正在写发那科梯形图程序的人来说,报警是最容易上手也最容易写坏的输出。所有涉及报警号范围、参数号的地方,请以你手上机床的官方手册为准并现场验证,不同 PMC 型号差异很大。
一、先分清:三种”报警”别搞混
这是新手最容易踩的第一坑。FANUC 机床上能看到的报警,来自三个完全不同的系统:
| 报警来源 | 谁写的 | 触发条件 | 现场表现 |
|---|---|---|---|
| CNC 系统报警 | 发那科出厂 | CNC 内核检测到异常 | 黑色/蓝色报警画面,代码如 001、103、114 |
| NC 程序报警(PS/BG/SR) | 发那科出厂 | 程序语法、互锁、选项不满足 | 报警号 + 简短文本,如 PS0100 |
| PMC 报警(本篇) | 你(机床厂家) | 梯形图里 ALARM 指令被满足 | 报警号 + 你自己写的信息 |
从写发那科梯形图的角度看,只有第三类是你能主动设计和修改的,前两类只能被动查手册。
前两种你改不了,只能查手册。第三种才是发那科 PMC 梯形图编程的正规输出,也是本文的重点。
【安全警示】在梯形图里加报警逻辑前,必须确认所加的报警条件不会在正常加工过程中被误触发。一条误触发的报警会让机床在加工中途停止,轻则工件报废,重则刀具折断甚至伤人。任何新增报警逻辑,必须先在空运行模式下完整验证一轮。
二、PMC 报警的三个组成部分
一条能用的 PMC 报警,缺一不可:
2.1 报警号:机床内部唯一的身份标识
报警号的作用类似门牌号——它决定报警信息从哪条通道送到屏幕,也决定操作员按下清除键后去复位哪个状态。
报警号通常是一个字节范围的数值,不同 PMC 型号可用范围不同。这个范围请查你对应 PMC 型号的官方手册,不要照抄别人机床的号。 本文不列具体号段,避免误导。
2.2 报警内容:写给操作员看的一句话
报警内容就是操作员在报警画面上看到的那行字。这是厂家与操作员之间的唯一沟通渠道,写得好坏直接决定故障处理速度。
一条合格的报警内容要满足三点:
- 说清现象,不是”刀库异常”,而是”刀库门未关闭”
- 说清条件,不是”换刀失败”,而是”主轴未到位禁止换刀”
- 不写死动作,别写”请通知厂家”,操作员该知道的是下一步该干什么
2.3 触发条件:梯形图里的逻辑
这是整个报警最难的部分,也是发那科 PMC 调试的核心内容。触发条件写错,前两做得再好也没用。

三、ALARM 指令的基本接法
3.1 指令形态
梯形图里的报警输出是一条输出线圈,接在条件触点之后。逻辑上非常简单:
条件成立 → 报警输出
条件消失 → 报警自动清除
关键认知:报警输出通常是保持型的。一旦条件满足并输出报警,即使触发条件随后消失,报警也不会自动撤销,必须由专门的复位逻辑或操作员确认来清掉。这和普通的 Y 输出线圈有本质区别,也是很多现场”报警消不掉”的根源。
3.2 梯形图示例结构
用文字描述一个典型的三段式结构(实际在 FANUC Ladder III 中逐行搭建):
第一段——报警触发
- 条件触点:某个故障检测信号(通常是常闭触点反逻辑,即”正常信号消失”才报警)
- 输出:报警号对应的报警输出位
第二段——报警保持
- 把报警输出位自身接到置位/复位逻辑里,保证条件消失后报警仍保留,直到被清除
第三段——报警复位
- 条件触点:操作员报警复位按钮,或故障已消除的判定信号
- 输出:复位该报警输出位
3.3 写报警的三条硬规则
规则一:一条故障只对应一个报警号。
同一物理故障不要占用多个报警号,否则操作员按清除时会不知道该复位哪个,诊断信息也会互相覆盖。
规则二:报警触发条件必须用互锁保护。
关键动作(换刀、主轴启动、防护门关闭)对应的报警,必须串入所有互锁条件一起判断,不能只判其中一条。只判一条的后果是:其他互锁都断开时报警反而不报,操作员带着全开的防护门执行换刀。
规则三:报警清除必须与触发分离。
触发用一套逻辑,清除用另一套逻辑,不要在同一个网络里既置位又复位。这是梯形图最经典的死锁写法,现场调试时会表现为”报警一亮就自己灭了”或者”永远清不掉”。
四、把报警显示到屏幕上
报警输出只是产生了信号,操作员要看到文字,还需要显示这一环。
4.1 显示的三种做法
| 做法 | 原理 | 适用场景 |
|---|---|---|
| CNC 侧报警显示 | 由 PMC 向 CNC 发送报警信息,CNC 负责显示 | 多数标准系统,开机画面直接可见 |
| PMC 侧报警画面 | 在 PMC 画面上自绘窗口显示 | 需要中文或厂家特有格式时 |
| 外部显示器/HMI | 通过接口送出厂外显示 | 车间多台机床集中监控 |
多数情况下第一种就够用。中文报警或自定义排版,才需要走 PMC 画面这条路,具体用哪种画面机制取决于 PMC 型号和 CNC 的 PMC 参数配置,请以官方手册为准。
4.2 显示层最容易忽略的两点
第一,报警内容的长度限制。超出可显示长度的文本会被截断,截断位置由系统决定。写报警内容时按最大可显示长度设计,宁短勿长。
第二,报警号与内容的对应表要单独维护。梯形图里写的是报警号,屏幕上显示的是文字,两者的映射关系在 PMC 参数配置里。这个对应表就是机床的报警手册,写完之后必须整理成文档交给现场——没有文档的自定义报警等于没有报警。
五、一条完整的报警开发流程
把上面的知识串起来,实际开发一条报警的顺序是:
- 定义报警号:从可用范围内取一个未占用的号,记入报警号分配表
- 写报警内容:站在操作员角度写清楚现象和条件
- 设计触发条件:确认故障检测信号来源,明确互锁要求
- 搭梯形图三段:触发、保持、复位
- 配置显示映射:把报警号与内容的对应关系写入系统
- 空运行验证:手动制造故障条件,确认报警报出、内容正确
- 验证清除逻辑:确认报警能被正确清除,且不会自动复发
- 整理文档:写入机床报警手册

六、发那科 PMC 调试中的常见问题
6.1 报警不报出来
按这个顺序查,基本能覆盖绝大多数情况:
- 触发信号本身是否有效:用 FANUC Ladder III 在线监控,看故障检测位有没有真的动作。信号没到,后面全是空谈。
- 梯形图有没有被跳过:检查 JMP / CJMP 跳转有没有绕过这一段。写入成功但行为没变,十有八九是跳转绕过去了。
- 执行等级是否被支持:顺序程序 END1/END2/END3 中,第 1 级优先级最高。某些独有功能仅在第 3 级支持,把报警逻辑放在不支持的等级里会静默失效。
- 输出地址是否被多处驱动:同一地址被两处同时写,行为会时好时错。
6.2 报警消不掉
- 触发逻辑和复位逻辑用了同一个地址,且写在同一网络里,形成自锁
- 保持型地址的复位条件根本没接
- 复位按钮的 X 地址写成了Y 地址,信号发不出去(接口类地址用错不会报警,最隐蔽)
关于地址用途的辨析,可以看站内那篇 FANUC PMC 地址速查:G / R / D 三类易混地址辨析;置位与复位符号本身的长相和使用规则,看 FANUC PMC 梯形图常用符号图解。
6.3 报警内容显示乱码或截断
通常是编码或长度问题。确认内容写入时用的字符集与系统设置一致,写入前先在 FANUC Ladder III 里预览长度。
6.4 报警号冲突
两处梯形图用了同一个报警号,后写的把前面的覆盖了。养成习惯:新增报警前先查分配表。
七、这类报警和系统报警怎么配合
现场排查时,操作员看到的可能是系统报警而不是你写的 PMC 报警。两者的配合关系值得想清楚:
- 系统报警是”底层出错了”:FSSB 断开、DRAM 校验错误、总线奇偶校验错误,这些是硬件和内核层面的问题,PMC 逻辑管不了
- PMC 报警是”流程被挡住了”:门没关、没到位、信号没来,这些是工艺流程层面的拦截
一个实用做法是:在 PMC 报警内容里带上关键上下文,比如换刀失败时顺便输出当前刀位号和刀库状态,操作员一眼就能判断是机械没到位还是逻辑没到位。这类细节做进报警内容,效果远好于再加三条报警。
关于系统报警的完整代码表,可以对照查阅 FANUC 系统严重错误报警代码大全 和 FANUC 基本报警代码大全(PS / BG / SR 报警号速查表)。日常故障排查的整体思路,可以看 FANUC PMC 故障排查实战 5 案例。
八、中英文关键词对照
为方便英文检索,这里集中列出 FANUC Ladder III 与 PMC programming 资料里的常见对应说法:
| 中文说法 | 英文常见写法 |
|---|---|
| 自定义报警 | custom PMC alarm / user-defined alarm |
| 报警号 | alarm number |
| 报警信息 | alarm message |
| 报警画面 | alarm screen / alarm display |
| 报警复位 | alarm reset |
| 顺序程序 | sequential program |
| 梯形图 | ladder diagram / ladder logic |
| PMC 梯形图编程 | FANUC PMC programming |
Fanuc ladder diagram 的英文技术资料里,”alarm” 通常指 CNC 侧系统报警;只有当上下文出现 PMC、ladder、message 这类词时,才指向本文讲的 PMC 自定义报警。检索时用 FANUC PMC custom alarm 或 PMC ladder alarm message 更容易命中真正需要的内容。做 FANUC CNC 梯形图维护的公司,还可以直接搜 FANUC PMC programming 找完整的编程资料。
这份对照表对做发那科 PMC 调试的人最实用,尤其是英文资料检索时。
九、零基础学习路径
如果你是刚开始接触发那科梯形图,建议按这个顺序走:
- 先搞懂地址是怎么分的:X/Y/F/G 是接口,R/K/D 是内存,T/C 由指令维护
- 再学三样基础指令:TMR 定时器、CTR 计数器、JMP/LBL 跳转
- 然后理解顺序程序怎么跑:END1 → END2 → END3 的执行与优先级
- 再学边沿检测:DIF / DIFU / DIFD,信号不该被重复触发的地方都要用
- 最后才是报警、互锁这类综合应用
完整的视频教程可以从这篇看起:零基础学习发那科 PMC 视频教程全攻略。学完基础指令后,建议接着看 FANUC PMC 跳转指令 JMP / LBL 详解 和 FANUC PMC 顺序程序 END1 / END2 / END3 详解——报警逻辑能不能被执行,取决于它被放在了顺序程序的哪一级。
系统性的学习资料推荐:FANUC PMC 维修学习资料。
小结
PMC 自定义报警这件事,技术难度不高,但工程含量全在细节里:报警号不冲突、触发条件不误报、清除逻辑不死锁、内容写得让操作员看得懂、文档跟得上。
真正的价值不在写这一条报警,而在建立一套可复用的报警开发规范。等你要在同一台机床上加第二十条报警时,就不用再从梯形图第一行开始想了。
安全提示:本文涉及的报警逻辑修改属于机床控制程序变更,务必在停机状态下进行,修改前完整备份原 PMC 程序,修改后按空运行 → 单动作 → 半自动 → 自动的顺序逐级验证。验证未通过前不得交付生产使用。
免责声明:本文内容来自发那科 PMC 梯形图编程的通用技术整理与现场实践经验,不同 PMC 型号、不同系统版本的参数号与可用地址范围可能存在差异,具体数值请以对应机床的官方手册为准,并在现场实测验证。文中涉及的报警号分配、参数配置仅为技术思路示例,不构成可直接套用的配置方案,实际操作前请由具备资质的人员确认。
























暂无评论内容