Address
宁波研发园A区2栋12B17
聚贤街道,鄞州区,宁波市,浙江中国
Work Hours
周一 to 周五: 8:30AM - 10:30PM
周六 to 周日: 9:30AM - 10:30PM

⚙️ 搜索摘要:针对FANUC系统更换测头后出现G31 Skip异常报警的问题。核心诊断逻辑:G31指令依赖硬件中断(高速跳过)或PMC扫描捕获,两者时序差异可达十几毫秒。换新测头后若信号极性变化或Skip信号号配置错误,会触发”930″或”Skip Signal Error”系统报警。本文提供完整参数检查清单及核心指令G53 G00 G31 P1调试方法。
编制单位:宁波匠测科技有限公司 技术部
文档编号:JS-TX-004
版本:V1.0
编制日期:2026年6月
本文所涉及的数控系统参数(如FANUC #3006、#6200)及宏程序(如O8060 / O9601等)均为标准通用逻辑。由于各机床厂(如马扎克、德玛吉、牧野、哈斯及国产各品牌立加/卧加/五轴)的PLC梯形图控制逻辑、二次开发变量地址及坐标系设定存在差异,在首次上机调试或运行任何标定宏程序前,请务必严格执行以下防呆操作:
一、引言
二、G31 Skip指令概述
三、信号链路全面解析
四、系统变量与信号捕获机制
五、常见故障类型及现象
六、故障排查方法(从最简单到最复杂)
七、测针端故障排查
八、传感器端故障排查
九、线路/接口故障排查
十、CNC参数与系统配置
十一、预行程误差与补偿
十二、维修案例集锦
十三、预防性维护建议
十四、附录
G31 Skip调试核心指令(MDI模式下验证信号链路):
G53 G00 Z0. — 先回机床零点,确保安全位置
G31 G91 Z-10. F100. — 以100mm/min速度向下移动10mm,等待测头触发
G31 P1 G91 Z-10. F100. — 高速跳过模式(P1激活硬件中断捕获),总延迟<1ms
#100 = #5063 — 读取G31触发瞬间的Z轴锁存位置
G31 Skip跳过功能是数控机床测头测量的核心指令,它实现了测量过程中的位置数据捕获。当测针接触工件产生触发信号时,CNC系统需要在一个极短的时间窗口内完成当前位置的锁存。这一过程的可靠性直接决定了测量精度和设备效率。然而,从测针接触到CNC最终锁定位置,信号需要经过一条复杂的路径——从机械触发的物理信号开始,经过传感器转换、信号调理、I/O接口、PMC(可编程机器控制器)处理,最终到达CNC插补器。这条路径上的任何一个环节出现问题,都可能导致测量失败或精度偏差。
G31 Skip全链路诊断的目的,就是系统性地排查这一完整信号路径上的每一个潜在故障点。宁波匠测科技有限公司技术部凭借多年数控系统维修与测头标定现场经验,编写了本篇全链路诊断指南,帮助现场工程师从测针端开始,逐级向后排查,直至PMC输入端。宁波匠测科技在FANUC/Heidenhain系统维修中积累了丰富的数据,本文正是基于大量真实案例编写而成。
本文以Fanuc系统为主要平台,涉及的原理和方法也适用于Heidenhain、Siemens等主流数控系统。
G31是数控系统中的”跳过指令”(Skip Function),也称为”触发式测量指令”。其基本语法如下:
G31 G91/G90 X Y Z F
功能:机床以给定的进给速度沿指定方向移动,直到收到Skip触发信号,然后立即停止该方向的运动,并记录停止位置。
与G01的区别:
G31在数控加工中的主要应用:
| 指令 | 特点 | 适用系统 |
|---|---|---|
| G31 | 标准Skip,可通过参数配置信号源 | Fanuc全系列 |
| G31 P1 | 高速Skip(需高速跳过选配) | Fanuc 30i/31i/32i |
| G31 P2-P4 | 多Skip通道(通过P参数选择SKIP2-SKIP4输入) | Fanuc 30i/31i |
| #1499 | 高速Skip信号号设置 | Fanuc 30i/31i |
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
│ CNC发送 │ → │ 轴运动 │ → │ Skip信号 │ → │ 位置锁存 │
│ G31指令 │ │ F进给 │ │ 触发 │ │ X Y Z │
└─────────┘ └─────────┘ └─────────┘ └─────────┘
│ │ │ │
T0 T1 T2 T3
关键时序要求:
从T2到T3的时间(信号传输延迟 + CNC响应延迟)应尽可能短且固定,以保证测量重复精度。
G31 Skip信号从测针接触到CNC位置锁存的完整链路如下:
测针接触工件
↓ (机械触发)
触发机构动作
↓ (物理位移)
传感器(应变片/压电陶瓷)
↓ (电信号)
信号调理电路
↓ (放大/滤波/比较)
I/O接口(Skip信号输出)
↓ (电缆传输)
CNC I/O模块/PMC输入
↓ (信号检测)
PMC扫描/硬件中断
↓ (信号传输)
CNC插补器/位置捕获模块
↓ (位置锁存)
系统变量 #5061-#5063
环节1:测针→触发机构
测针接触工件后,受到反作用力产生偏转。当偏转量达到触发阈值(典型值0.05-0.15mm)时,触发机构动作。
关键参数:
故障模式:
环节2:触发机构→传感器
触发机构的机械运动被传递到传感器元件。对于压电陶瓷传感器,机械应力产生电荷;对于应变片传感器,弹性体变形导致电阻变化。
故障模式:
环节3:传感器→信号调理
传感器产生的原始信号(电荷或电压)在测头内部经过以下处理:
故障模式:
环节4:信号调理→I/O接口
触发判定后的信号被转换为标准工业信号(NPN/PNP,通常为24V逻辑电平),通过电缆传输。
故障模式:
环节5:I/O接口→PMC输入
Skip信号通过电缆接入CNC的I/O模块,作为PMC(可编程机器控制器)的数字输入信号。
故障模式:
环节6:PMC→CNC插补器
PMC检测到Skip输入信号后,通过内部总线将信号传递给CNC的插补器/位置捕获模块。
故障模式:
环节7:位置锁存
CNC插补器在检测到Skip信号后,立即锁存当前伺服反馈位置,并存储在系统变量#5061-#5063中。
故障模式:
整个链路的延迟由以下部分组成:
| 延迟环节 | 典型时间 | 说明 |
|---|---|---|
| 机械触发延迟 | 1-5ms | 测针偏转到位的时间 |
| 传感器响应 | <0.1ms | 压电/应变片的响应时间 |
| 信号调理 | 0.5-2ms | 放大、滤波、比较 |
| 电缆传输 | <0.1ms | 取决于电缆长度 |
| I/O模块响应 | 0.5-2ms | 输入滤波时间 |
| PMC扫描延迟 | 2-8ms | 取决于PMC扫描周期 |
| CNC响应 | 0.5-1ms | 位置捕获中断处理 |
| 总延迟 | 5-18ms | 典型值 |
高速跳过方案(见篇五)可以将总延迟降低到1-3ms。
当G31指令执行并被Skip信号触发后,CNC将停止位置的坐标值存储到以下系统变量中:
|| 变量 | 内容 | 坐标类型 |
||——|——|———|
|| #5061 | X轴停止位置 | 工件坐标(当前工件坐标系下的绝对坐标) |
|| #5062 | Y轴停止位置 | 工件坐标(当前工件坐标系下的绝对坐标) |
|| #5063 | Z轴停止位置 | 工件坐标(当前工件坐标系下的绝对坐标) |
读取时机:
必须在G31指令执行的下一段立即读取,因为下一个G31指令会覆盖这些变量。
正确用法示例:
G31 G91 Z-10. F100. ; 向下移动直到触发
#100 = #5063 ; 立即读取Z轴位置(必须紧随G31之后)
G01 Z5. F500. ; 抬刀
错误用法示例:
G31 G91 Z-10. F100. ; 向下移动直到触发
G01 Z5. F500. ; 抬刀(在这条指令执行时,#5063已经被覆盖或无效)
#100 = #5063 ; × 读取的是错误值!
#5021-#5023存储的是伺服反馈的当前位置(机床坐标)。与#5061-#5063不同,#5021是持续更新的实时位置。
| 变量 | 内容 | 说明 |
|---|---|---|
| #5021 | X轴当前位置 | 随时可读 |
| #5022 | Y轴当前位置 | 随时可读 |
| #5023 | Z轴当前位置 | 随时可读 |
| 变量 | 内容 | 用途 |
|---|---|---|
| #5064 | 第4轴(B/C)停止位置 | 多轴G31 |
| #5065-#5068 | 第4-8轴停止位置 | 多轴系统 |
| #4001 | G代码组1的状态(G00/G01/G02/G03/G31) | 确认G31执行 |
| #4002 | G代码组2的状态(G17/G18/G19平面选择) | 确认平面 |
| #3000 | 报警信息 | 用户报警 |
硬件捕获:
在高速跳过配置下,Skip信号直接连接到CNC的高速输入接口,通过硬件中断触发位置锁存。延迟极短(<1ms)。
软件捕获:
在标准配置下,Skip信号通过PMC扫描输入,PMC检测到信号后通知CNC锁存位置。延迟较长(2-8ms),且具有不确定性。
捕获时机验证:
使用以下NC程序验证Skip捕获是否在正确的时机发生:
G31 G91 Z-10. F100.
IF[#5063EQ0]GOTO999 ; 检查是否成功触发(#5063≠0表示触发成功)
#100 = #5063 ; 保存触发位置
G01 Z5. F500. ; 抬刀
M30
N999 #3000=100 (PROBE NOT TRIGGERED)
M30
现象:
发生概率:约25%
现象:
发生概率:约20%
现象:
发生概率:约20%
🔍 故障排查提示:重复精度差时,不要急于判断测头损坏。宁波匠测科技维修数据显示,约40%的重复性差问题根源在主轴的机械因素——主轴游隙过大、Z轴丝杠间隙、主轴定向角度不一致等。建议先用千分表打表主轴径向跳动和端面跳动,排除机械因素后再检查测头信号链路。
现象:
发生概率:约15%
现象:
发生概率:约10%
现象:
发生概率:约10%
排查时间:1-2分钟
成本:零
检查项目:
排查时间:2-5分钟
成本:零
操作方法:
判断:
排查时间:10-30分钟
成本:示波器
测量点1:测头输出端
测量点2:I/O模块输入端
测量点3:PMC输入点(使用CNC诊断功能)
排查时间:5-10分钟
成本:万用表
Skip信号的极性配置至关重要。不同类型的测头和CNC可能需要不同的极性。
检查步骤:
极性匹配表:
| 测头输出 | CNC输入 | 需要配置 |
|---|---|---|
| NPN(低电平有效) | NPN(低电平有效) | 直接连接 |
| PNP(高电平有效) | PNP(高电平有效) | 直接连接 |
| NPN | PNP | 需加反相器 |
| PNP | NPN | 需加反相器 |
PMC参数配置:
在Fanuc系统中,Skip信号的极性可通过PMC参数配置:
排查时间:30-120分钟
成本:可能需要备用模块
当基本排查无法定位故障时,采用逐级向后排查法——从测针端开始,逐级检查到PMC输入端。
检查路径:
测针 → 传感器 → 信号调理 → I/O接口 → 电缆 → I/O模块 → PMC输入
每级检查方法:
Step 1:测针端
Step 2:传感器端
Step 3:信号调理电路
Step 4:I/O接口
Step 5:电缆
Step 6:I/O模块
Step 7:PMC输入
排查时间:60-120分钟
成本:可能需要示波器+逻辑分析仪
当测量值重复性差或存在系统性误差时,需要分析位置捕获的时序。
时序测量方法:
目视检查:
测量精度检查:
使用标准球(校准球)进行验证:
常见认知误区澄清:
误区一:测头内部采用齿轮传动。
实际现代测头绝大多数采用三点定位微动结构(如Renishaw OMP系列)或压电应变结构(如Marposs T25系列),内部并无任何齿轮传动机构。机械齿轮传动的间隙和摩擦会严重破坏测量重复性。
误区二:红宝石测球永不磨损。
红宝石(Al₂O₃)硬度极高,但在长期切削环境中仍会产生微小的平面磨损,或在高转速切铝时发生粘铝(铝屑粘附在测球表面)。建议每季度用标准球验证一次测球状态,发现磨损或粘铝及时更换或清洁。
误区三:测针断裂是质量问题。
碳纤维或陶瓷测针的设计理念是”主动断裂保护”——当发生意外碰撞时,测针在预设薄弱点断裂,从而保护内部的精密传感器和触发机构不被损坏。因此测针断裂属于设计保护机制正常触发,而非制造缺陷。
测针长度直接影响测量精度和信号延迟:
| 测针长度 | 预行程 | 触发力 | 适用场景 |
|---|---|---|---|
| 20mm | 最小 | 最大 | 浅孔/平面 |
| 50mm | 标准 | 标准 | 通用 |
| 100mm | 较大 | 较小 | 深腔/深孔 |
| 150mm | 大 | 最小 | 特殊深腔 |
长测针的特殊问题:
静态测试:
动态测试:
常见压电传感器故障:
静态测试:
平衡测试:
常见应变片故障:
参见篇三《硬线测头信号故障》中的详细方法,此处仅列出G31专用检查项目。
G31专用检查项目:
LED指示:
地址确认:
在Fanuc系统中:
模块替换:
如果怀疑I/O模块故障,使用备用模块替换测试。
常见信号电平:
| 测头类型 | 输出类型 | 输出电平 |
|---|---|---|
| 机械触点 | 干接点 | 开关量 |
| 电子式NPN | 开漏 | 0V/悬空 |
| 电子式PNP | 源极输出 | 0V/24V |
| 差分/线驱动 | RS422 | ±5V |
检查方法:
参数#3006(Skip信号相关):
参数#6200(Skip信号输入选择):
参数#6201(Skip信号滤波时间):
参数#6202(Skip信号延迟补偿):
典型PMC地址分配:
| 信号 | 地址 | 说明 |
|---|---|---|
| Skip_Input | X8.4 | 测头Skip信号输入 |
| Skip_Output | G54.0 | 传递给CNC的Skip信号 |
| Probe_Ready | X8.5 | 测头就绪信号 |
| Probe_Error | X8.6 | 测头错误信号 |
PMC梯形图示例:
X8.4 R100.0
—-||————-()—- (Skip信号中间继电器)
R100.0 G54.0
—-||————-()—- (传递给CNC的Skip信号)
如果机床配备高速跳过功能,需要配置以下参数:
参数#1499(高速跳过信号号):
参数#1488(高速跳过信号选择):
□ #3006.0 GNOSKP = 0(使用Skip信号)
□ #3006.1 SKIP = 0/1(根据信号极性设置)
□ #6200.0 = 0(标准Skip)或 =1(高速Skip)
□ Skip信号PMC地址正确
□ I/O模块通道正确
□ 信号电平匹配
□ 滤波时间设置合理
□ 预行程补偿值已设置
预行程(Pre-travel)是指从测针开始接触到发出触发信号时,测针尖端已经移动的距离。这个距离是由于触发机构存在一定的机械间隙和弹性变形而产生的。
预行程产生的原因:
| 测头类型 | XY方向预行程 | Z方向预行程 |
|---|---|---|
| 压电陶瓷式 | 0.05-0.15mm | 0.02-0.05mm |
| 应变片式 | 0.05-0.10mm | 0.02-0.05mm |
| T25(马波斯) | 0.03-0.08mm | 0.02-0.04mm |
预行程误差会导致测量值偏离实际值。例如:
方法1:标准球测量法
方法2:块规测量法
方法3:反向测量法
注意事项——标定工具的选择:
进行预行程标定时,必使用标准芯棒(Calibration Bar)作为基准。标准芯棒具有已知直径和圆度公差(通常<0.5μm),不可用普通加工工件或磨损后的旧芯棒替代。常见误区是认为标定可以不用芯棒——实际上,没有标准芯棒就无法建立准确的测量基准,所有补偿值都会偏差。
方法1:软件补偿(推荐)
在NC程序中添加补偿值:
G31 G91 Z-10. F100. ; 测量
#100 = #5063 ; 读取触发位置
#101 = #100 – #501 ; 减去预行程补偿值(#501中存储的预行程)
方法2:参数补偿(Fanuc系统)
在参数#6202中设置预行程补偿值:
方法3:测量宏程序自动补偿
编写测量宏程序,在每次测量后自动减去预行程:
O9010 (Probing Macro)
G31 G91 Z-10. F100.
#100 = #5063 – #601 ; #601中存储Z方向预行程
IF[#100 LT -100]GOTO99 ; 检查是否触发
M99
N99 #3000=101 (PROBE ERROR)
预行程不是固定不变的,以下因素会影响预行程的稳定性:
| 因素 | 影响 | 补偿策略 |
|---|---|---|
| 测力方向 | XY vs Z方向预行程不同 | 分方向补偿 |
| 测针长度 | 越长预行程越大 | 按测针长度修正 |
| 温度 | 温度升高预行程增大 | 温度补偿 |
| 磨损 | 机械磨损使预行程增大 | 定期重新标定 |
| 测速 | 进给速度影响预行程 | 恒速测量 |
建议:
设备:立式加工中心,Fanuc 31i-B系统
故障现象:更换CNC系统后,G31指令不触发,测头接触到工件后继续移动
排查过程:
结论:换新系统后PMC地址重新分配,实际地址与程序地址不一致
设备:卧式加工中心,Fanuc 0i-MF系统
故障现象:同一位置连续测量5次,结果相差0.03-0.05mm
排查过程:
结论:I/O滤波时间过大导致Skip信号延迟不确定
设备:五轴加工中心,Heidenhain iTNC 530系统
故障现象:主轴启动时,测头自动触发
排查过程:
结论:未屏蔽的信号线引入电磁干扰
设备:龙门铣床,Fanuc 31i-B
故障现象:测量孔位置时,Z方向位置始终偏大0.08mm
排查过程:
#100 = #5063 - 0.08结论:预行程未补偿导致系统性偏差
设备:高速钻攻中心,Fanuc 31i-B5
故障现象:更换测头后,执行G31时报”930 System Error”
排查过程:
结论:接线错误导致Skip信号持续有效,CNC检测到时序异常
建立标准化的G31故障诊断流程:
标准诊断流程:
| 参数号 | 位/数据 | 功能 | 典型值 |
|---|---|---|---|
| #3006.0 | 0/1 | G31使用Skip信号 | 0 |
| #3006.1 | 0/1 | Skip信号极性 | 0/1 |
| #6200.0 | 0/1 | Skip信号输入选择 | 0 |
| #6201 | 0-255 | Skip滤波时间(ms) | 2 |
| #6202 | 整数 | 预行程补偿 | 0 |
| #1499 | 1-4 | 高速Skip信号号 | 1 |
| #1488 | 位 | 高速Skip使能 | 0 |
| 变量 | 内容 | 读取时机 |
|---|---|---|
| #5061 | G31触发X位置 | G31下一段立即读取 |
| #5062 | G31触发Y位置 | G31下一段立即读取 |
| #5063 | G31触发Z位置 | G31下一段立即读取 |
| #5021 | 当前位置X | 随时可读 |
| #5022 | 当前位置Y | 随时可读 |
| #5023 | 当前位置Z | 随时可读 |
G31 Skip全链路故障
├── 不触发
│ ├── NC语法错误 → 检查G31格式
│ ├── 信号未到PMC → 检查I/O连接
│ ├── PMC地址错误 → 检查PMC配置
│ ├── 参数配置错误 → 检查#3006等参数
│ └── 模块硬件故障 → 替换测试
├── 提前触发
│ ├── 干扰信号 → 检查屏蔽
│ ├── 信号极性错误 → 检查#3006.1
│ ├── 测头灵敏度异常 → 检查测头
│ └── PMC逻辑错误 → 检查梯形图
├── 重复性差
│ ├── I/O滤波太大 → 减小#6201
│ ├── PMC扫描延迟 → 优化扫描周期
│ ├── 预行程不稳定 → 重新标定
│ └── 机械振动 → 检查机床
└── 系统性偏差
├── 预行程未补偿 → 设置补偿
├── 测针长度补偿错误 → 修正
└── 坐标系偏移 → 重新标定
标准测量宏(Fanuc):
O9010 (Standard Probing Macro)
(Input: #1=Meas. Distance, #2=Feedrate)
(Output: #100=Measured Position)
#1 = ABS[#1]
IF[#1 LE 0]GOTO99
IF[#2 LE 0]GOTO99
G31 G91 Z[-#1] F#2
IF[#5063 EQ 0]GOTO99
#100 = #5063 – #601 ; #601 = Z pre-travel
#3000 = 0 ; Clear alarm
M99
N99 #3000=100 (Probing Error)
M99
双向测量宏:
O9020 (Bidirectional Probing Macro)
(Measures from +Z and -Z to cancel pre-travel)
G31 G91 Z-10. F100.
#101 = #5063 ; First measurement
G01 Z5. F500. ; Retract
G31 G91 Z-5. F100. ; Second approach
#102 = #5063 ; Second measurement
#103 = [#101 + #102] / 2 ; Average (cancels pre-travel)
M99
现场工程师常将机内对刀仪和机外预调仪混称为”对刀仪”,实质上二者功能和应用场景完全不同:
| 术语 | 中文名称 | 安装位置 | 功能 | 信号路径 |
|---|---|---|---|---|
| Tool Setter | 机内对刀仪 | 安装在机床工作台 | 在机测量刀具长度/直径,补偿磨损 | 信号接入CNC,通过G31等指令实时测量 |
| Tool Presetter | 机外预调仪 | 独立于机床之外的设备 | 在机外预先测量刀具尺寸,人工输入机床 | 不与CNC直接通信,独立显示 |
现场常见误区:有人误以为Tool Presetter的测量值可以直接通过G31指令写入CNC——实际上,Tool Presetter是独立的离线测量设备,不具备与CNC实时通信的能力。而在机对刀仪(Tool Setter)才通过G31 Skip信号链路与CNC交互,其信号诊断方法与本文所述完全一致。
免责声明: 本文技术内容仅供行业经验交流,实际应用请结合现场设备状况谨慎操作。宁波匠测科技有限公司不对直接复制代码导致的设备损坏或工件报废承担责任。
官方预约:jcetech.cn/contact
咨询热线:157-5780-7400 / 132-2194-1413
寄修地址:宁波鄞州研发园 A2-12B17