发那科机器人PMC = Programmable Machine Controller(内置可编程逻辑控制器),梯形图(Ladder)运行在机器人控制柜内部,负责:外部 IO 映射、PLC ↔ 机器人 UOP 信号中转、安全回路、夹具、输送线、电磁阀逻辑、报警连锁TP 程序(示教器运动程序)只管机器人运动;梯形图负责外部电气交互、信号转发。
⚠️【重大区分:机器人 PMC ≠ 发那科 CNC 机床 PMC】两者指令语法一致,但是信号体系完全不同(UOP/UI/UO、DI/DO、RI/RO),不要直接套用机床梯图思路。

梯形图能流方向示意
一、PMC 梯形图运行基础规则
循环扫描方式:从上到下、从左到右依次执行;能流从左母线向右母线流动;扫描周期一般 2~4ms
两级程序结构(重点!)
一级程序(LEVEL1):最高优先级,实时任务;只放急停、安全门、硬件限位等安全信号;程序段必须极短。
二级程序(LEVEL2):常规逻辑、延时、信号中转、互锁、UOP 映射,绝大多数逻辑放在这里。
程序执行顺序:先 LEVEL1 → 循环执行 LEVEL2
线圈规则:同一个地址线圈只允许出现一次;多处重复线圈会逻辑异常(和西门子规则一致,三菱 FX 不同)。
二、机器人 PMC 全部软元件地址定义(最核心)
1)外部硬件 IO(物理端子 CRMA15/CRMA16、IO-link 模块)
X:物理输入(端子进来的 24V 信号,只能做触点,不能做线圈)
Y:物理输出(驱动继电器、电磁阀,可线圈、可触点)
2)机器人内部逻辑信号(梯图内部中转)
R:通用内部继电器(中间软继,读写自由,断电丢失状态)
R9000 系列:系统特殊只读继电器,禁止驱动线圈,只能当触点
R9091.1 → 永久 ON(常通触点,最常用)
R9091.0 → 永久 OFF
R9091.6 → 1 秒脉冲闪烁
K:保持继电器(断电记忆,适合设备模式、故障锁存)
T:可变定时器;定时值存放在 D 寄存器
C:计数器;计数值存放在 D
D:16 位数据寄存器(存放定时时间、计数值、组信号数值)
3)机器人专用接口信号【重中之重:UOP、DI/DO、RI/RO】
这是机器人梯图和普通 PLC 最大区别!
(1)UOP 远程操作信号(UI 输入 / UO 输出)
机器人系统标准远程接口,功能固定不可修改,用于外部 PLC 启停机器人。
UI [1]~UI [18] 机器人系统输入(PMC 线圈驱动 UI,机器人系统读取)
UO [1]~UO [20] 机器人系统输出(机器人系统驱动 UO,PMC 用触点读取)
常用 UI 清单:
表格
| 信号 | 名称 | 功能说明 |
|---|---|---|
| UI[1] | IMSTP | 软件急停,常态 ON;OFF→SRVO-037 伺服急停 |
| UI[2] | HOLD | 暂停信号,常态 ON;OFF 机器人减速暂停 |
| UI[5] | FAULT_RESET | 报警复位,下降沿有效 |
| UI[6] | START | 程序启动(恢复暂停程序)下降沿 |
| UI[8] | ENBL | 动作允许;OFF 禁止机器人移动 |
| UI[18] | PROD_START | 生产启动(从头运行选定程序) |
常用 UO 清单:
表格
| 信号 | 名称 | 功能 |
|---|---|---|
| UO[1] | CMDENBL | 命令允许 |
| UO[2] | SYSRDY | 系统就绪(伺服上电就绪) |
| UO[3] | PROGRUN | 程序正在运行 |
| UO[8] | ALARM | 存在报警 |
使用方式:PMC 梯形图:
Yxxx ----(UI[6])→ 把外部输入转发给机器人启动信号
(2)通用数字 IO DI/DO(用户自定义信号,TP 程序可读可写)
DI [1~xxx]:机器人内部数字输入(PMC 线圈驱动 DI)
DO [1~xxx]:机器人内部数字输出(机器人程序驱动,PMC 使用触点读取)
典型用法:机器人完成信号 DO [1],梯图读取 DO [1],驱动外部 Y 输出给 PLC
(3)RI / RO(EE 接口信号,CRMA15/16 内置简易 IO)
RI:EE 输入;RO:EE 输出;老机型常用,新项目优先 DI/DO
三、PMC 指令体系(基本指令 + SUB 功能指令)
1、基础触点 / 线圈指令(梯形图直接绘制)
RD:读取常开触点
RD.NOT:读取常闭触点
AND / AND.NOT:串联常开 / 常闭
OR / OR.NOT:并联常开 / 常闭
WRT:输出线圈
WRT.NOT:取反输出线圈
SET:置位(保持 ON)
RST:复位
2、高频常用 SUB 功能指令(必须掌握)
表格
| SUB 号 | 指令名称 | 作用 |
|---|---|---|
| SUB2 | TMR | 通电延时定时器 |
| SUB3 | TMRB | 固定定时器(ms 级) |
| SUB5 | DEC | BCD 译码 |
| SUB6 | CTR | 加减计数器 |
| SUB24 | MOV | 16 位数据传送(D 寄存器) |
| SUB25 | MOVB | 1 字节传送 |
| SUB26 | MOVE | 批量传送 |
| SUB57 | DIFU | 上升沿脉冲(一个扫描周期 ON) |
| SUB58 | DIFD | 下降沿脉冲 |
重点提醒:UI 启动、复位信号全部是边沿触发!必须配合 DIFU/DIFD,否则经常失效很多工程故障:直接长通驱动 UI [5] 复位,机器人无法清除报警。
四、【最经典标准架构】机器人 PMC 梯图模块化设计
LEVEL 1(一级程序,只放安全回路)
硬件急停输入 X → 连锁切断 UI [1] IMSTP
安全门信号连锁
一级程序禁止放置定时器、复杂逻辑!
LEVEL 2(二级程序,分段划分)
段 1:UOP 信号中转(PLC ↔ 机器人远程控制)
外部启动按钮 X → DIFU 上升沿 → 驱动 UI [6](START)外部复位 X → DIFU → UI [5](FAULT_RESET)外部使能 X → 直接驱动 UI [8](ENBL)
段 2:机器人状态输出(给 PLC 反馈)
UO [2] 系统就绪 → 驱动外部 Y0(机器人就绪信号给 PLC)UO [3] 程序运行 → Y1(运行中)UO [8] 报警 → Y2(机器人故障)
段 3:夹具、电磁阀、输送线逻辑互锁
机器人 DO [1] 夹具夹紧请求 → PMC 逻辑判断位置条件 → 输出 Y 驱动电磁阀
段 4:故障锁存、报警指示灯、延时逻辑
K 保持继电器锁存故障;T 定时器做延时。
五、实战标准示例(UOP 外部启动典型梯图逻辑)
逻辑需求:外部输入 X10.0 启动按钮,上升沿触发机器人 UI [6] 启动
plaintext
|----[X10.0]----(SUB57 DIFU)----(UI[6])----|
原理:按下按钮一瞬间产生一个扫描周期脉冲,匹配 UI 下降沿触发机制。
❌错误写法:
plaintext
|----[X10.0]----------------(UI[6])----|
按钮长按持续导通,机器人无法识别启动命令,大量现场踩坑!
六、机器人 PMC IO 分配原理(信号通路完整链路)
外部硬件端子 X → PMC 梯图逻辑 → DI [n]/UI [n] → 机器人 TP 程序机器人 TP 程序 → DO [n]/UO [n] → PMC 梯图逻辑 → Y → 外部继电器
两种工作模式:
直接映射(I/O 互连):系统参数设置 DI [n]=Xxx,无需梯形图;适合简单项目
梯形图中转模式(推荐项目标准方案):所有信号经过 PMC,增加互锁、滤波、边沿处理,安全性高,复杂工作站必用。
七、调试方法(示教器在线监控 PMC)
操作路径:MENU → 0下一页 → PMC → PMCDGN(PMC诊断)
信号状态监控:输入 X、Y、R、UI、UO 实时 ON/OFF
信号强制 FORCE:强制线圈 / 触点状态(调试注意安全!)
扫描时间监测:查看一级、二级程序扫描周期,过长需要优化逻辑
常见故障排查思路
PLC 发启动信号,机器人不启动✅监控 UI [6] 有没有 ON;确认是否缺少 DIFU 边沿指令;检查远程模式开启
UO [2] 系统就绪无输出✅查看机器人伺服是否上电、急停回路 IMSTP (UI1) 是否常态 ON
DO 信号机器人已经 ON,外部电磁阀不动✅梯图监控 DO 触点有没有导通,对应的 Y 输出是否有电压,排查接线
八、编程强制规范与避坑清单
IMSTP (UI1)、HOLD (UI2) 常态必须 ON,断开才生效
所有 UI 触发信号(START/RESET/PROD_START)必须加 DIFU/DIFD 边沿指令
一级程序只放安全信号,不要写定时器、复杂连锁
同一个 Y、R、UI 线圈只能出现一次,禁止多处输出
梯图不要过长,冗余逻辑删除,防止扫描周期超限报警
机器人 PMC不能使用机床 CNC 的 G/F 信号,不要混淆两套系统
修改梯形图后,需要【写入 ROM】,断电重启不会丢失
24V 外部输入尽量加滤波,避免干扰造成信号抖动;必要时梯图增加定时器防抖
九、PMC 梯形图软件
电脑端编辑软件:FANUC LADDER-Ⅲ(机器人专用版本)支持离线编写、上下载梯图、在线监控;通过网线连接机器人控制柜。

