雷尼绍 Inspection Plus 宏程序编程指南
发那科/Meldas 加工中心篇
文档版本: V2.0 适用系统: Fanuc Macro B (0M~32iM) / Mitsubishi Meldas (M3~M800) 软件料号: A-4012-0516 (Fanuc/Meldas with SupaTouch) 编制单位: 宁波匠测科技有限公司 技术部 发布日期: 2026年6月
目录
- 4.1 O9832 — 测头开启
- 4.2 O9833 — 测头关闭
- 4.3 O9810 — 保护定位(测头触发监控)
- 5.1 O9800 — SupaTouch 优化循环
- 5.2 O9801(K1) — 标定测头长度
- 5.3 O9801(K4) — 标定测球偏置和半径(环规标定)
- 5.4 O9801(K5) — 标准球标定
- 5.5 O9801(K0/K2/K-3) — 其他标定模式
- 5.6 O9804 — 标定球心位置
- 6.1 O9811 — XYZ 单面测量
- 6.2 O9812 — 凸台/凹槽测量
- 6.3 O9814 — 内孔/外圆测量
- 6.4 O9815 — 确定内拐角
- 6.5 O9816 — 确定外拐角
- 6.6 O9817 — 5点矩形测量
- 7.1 O9821 — 倾斜平面测量
- 7.2 O9822 — 倾斜凸台/凹槽测量
- 7.3 O9823 — 3点内孔/外圆测量
- 8.1 O9818 — 第4轴测量
- 8.2 O9819 — PCD 上的内孔/外圆测量
- 8.3 O9820 — 毛坯余量
- 8.4 O9834 — 特征到特征数据
- 8.5 O9835 — 统计过程控制(SPC)刀补更新
- 8.6 O9843 — 角度测量
1. 概述
1.1 关于 Inspection Plus
Inspection Plus 是英国雷尼绍(Renishaw)公司开发的测头宏程序软件包,专为配备发那科(Fanuc)或三菱 Meldas 系统的加工中心设计。该软件包提供了完整的工件测量和测头管理方案,支持:
- 工件自动测量与找正
- 刀具破损检测
- 统计过程控制(SPC)
- 多测头系统管理
- SupaTouch 优化(缩短循环时间)
1.2 系统要求
| 控制器 | Fanuc 0M/0i/16i/18i/21i/30i/31i/32i 系列,或 Mitsubishi Meldas M3~M800 |
| 宏程序功能 | 必须开启(参数 8000 系列) |
| 存储空间 | 至少 8KB(约 20m 纸带长度) |
| 测头接口 | 支持雷尼绍光学/无线电/感应式测头接收器 |
1.3 宏程序总表
| O9832 | 测头开启(含主轴定向) | 第4章 |
| O9833 | 测头关闭 | 第4章 |
| O9810 | 保护定位(测头触发监控) | 第4章 |
| O9800 | SupaTouch 优化标定循环 | 第5章 |
| O9801 | 测头标定循环(K1/K4/K5/K0/K2/K-3) | 第5章 |
| O9804 | 标定球心位置 | 第5章 |
| O9811 | XYZ 单面测量 | 第6章 |
| O9812 | 凸台/凹槽测量 | 第6章 |
| O9814 | 内孔/外圆测量 | 第6章 |
| O9815 | 确定内拐角 | 第6章 |
| O9816 | 确定外拐角 | 第6章 |
| O9817 | 5点矩形测量(外部/内部) | 第6章 |
| O9821 | 倾斜平面测量(角度输入/XYZ输入) | 第7章 |
| O9822 | 倾斜凸台/凹槽测量 | 第7章 |
| O9823 | 3点内孔/外圆测量 | 第7章 |
| O9818 | 第4轴测量 | 第8章 |
| O9819 | PCD 上的内孔/外圆测量 | 第8章 |
| O9820 | 毛坯余量 | 第8章 |
| O9834 | 特征到特征数据(XY/Z平面) | 第8章 |
| O9835 | 统计过程控制(SPC)刀补更新 | 第8章 |
| O9843 | X或Y平面上的角度测量 | 第8章 |
1.4 测头底层的机械与硬件原理揭秘(彰显专业度)
很多数控操作和调试人员以为,测头接触工件时内部是一个普通的齿轮传动机构。其实,这属于极大的行业技术误区。 雷尼绍高精度三维触发式测头(如 OMP40-2、OMP60、RMP60)底层采用的是精密微动电学触点结构(Kinematic resistive switch),而非纯机械齿轮结构:
- 经典三点触控阻抗开关(Kinematic Mount):测头内部是一个极其巧妙的力学定位结构,由 3 根互成 120° 夹角的导电拉针,座落于 6 个精密硬质合金定位球(即三个电学凹槽)上,形成一个互锁的串联电学回路。
- 微米级信号中断触发:在未触发状态下,内置精密弹簧将三向连杆紧压在定位凹槽上,电路完全导通,阻抗接近零。一旦测针接触到工件,哪怕发生极其微弱的 0.1 微米级 位移,也会使其中某一个触点产生微动分离,导致整个闭合回路的阻抗瞬间变为无穷大。
- 光电/无线信号传输:测头内部的光学/射频模块捕捉到阻抗的高阻跳变后,瞬间以微秒级速度向外部接收器发射红外或无线电编码信号,实现数控系统(G31)的高速硬跳过触测中断。
- 压电式传感器(高阶版本):在要求更高的超精密检测场合(如雷尼绍 OMP400/RMP600 测头),则更进一步采用了精密压电应变片传感器(Silicon strain gauges),彻底消除了触针刚性带来的测针挠度和微摆死区,重复精度能做到 0.25 微米 极限。
了解这个底层物理结构,可以帮助我们在车间排查“重复定位精度不稳”或“信号不触发”故障时,做出最专业的故障诊断(如检查三点电触点磨损、油脂粘度或弹簧拉力衰减,而非盲目猜测齿轮故障)。
2. 编程核心规则
2.1 调用格式
所有循环均通过宏程序调用指令 G65 执行,参数通过字母地址传递:
G65 P9xxx <必需参数> [可选参数]
- P9xxx — 宏程序号(如 P9814)
- 字母参数(X, Y, Z, D, B, K 等)传递数值
- 参数值必须包含小数点,即使为整数也要加 .(如 K1. 而非 K1)
2.2 参数传递规则
正确写法:
G65 P9814 D50.005 Z-10. S1.
错误写法:
G65 P9814 D50 Z-10 S1 ❌ 缺少小数点 G65 P9814 D50.005 Z-10.0 S01. ❌ S参数错误格式
2.3 变量系统
| #1~#33 | 局部变量 | G65 调用时由参数自动赋值,每个循环独立 |
| #100~#199 | 通用变量 | 循环内部使用,用户不应修改 |
| #100~#109 | 循环控制 | 内部循环计数器等 |
| #110~#119 | 配置参数 | 进给率、回退系数等 |
| #120~#131 | 系统配置 | 验证模式、多测头配置等 |
| #132~#134 | 内部参数 | 临时存储 |
| #135~#149 | 测量结果输出 | 用户读取测量值 |
| #150~#199 | 内部临时变量 | 循环中间计算 |
| #500~#531 | 通用保留变量 | 用户备用存储,推荐用于备份测量值 |
2.4 公制/英制单位
所有循环均按**公制(mm)**编写。发那科系统使用 G20(英制) 和 G21(公制) 切换单位制:
G21 ; 切换到公制(mm)模式 — 推荐 G20 ; 切换到英制(inch)模式
重要: 发那科系统的英制/公制切换代码为 G20/G21,而非 G70/G71。G70/G71 是西门子(Siemens)系统使用的代码名,在发那科控制系统上会导致单位制混乱。
如果机床工作在英制模式(G20),变量中的值将自动转换,但公差、位置度等参数应按照编程时的单位系统输入。
2.5 I、J、K 输入顺序
当循环包含 I、J、K 可选输入时,必须严格按 I→J→K 顺序声明:
G65 P9xxx I30. J10. K9. ✅ 正确 — 按 I→J→K 顺序 G65 P9xxx K9. J10. I30. ❌ 错误 — 顺序不正确
2.6 双安全机制
每个测量程序应始终遵循以下安全原则:
3. 编程标准流程
3.1 通用编程模板
每一个使用测头的加工程序都应遵循以下标准流程:
; ============================================================ ; 雷尼绍 Inspection Plus 标准测量程序模板 ; ============================================================ T01 M06 ; 1. 换刀 — 装入测头
G90 G21 G40 G80 ; 2. 安全模式设定(公制mm)
G65 P9832 ; 3. 开启测头(含主轴定向 M19)
G65 P9810 Z100. F3000. ; 4. 保护定位到安全高度
G65 P9810 Xxx. Yyy. F3000. ; 5. 保护定位到测量起点上方
G65 P9810 Zzz. ; 6. 下降到测量高度
G65 P9xxx … ; 7. 执行测量循环
; — 读取测量结果 #135~#149 —
G65 P9810 Z100. ; 8. 保护定位退出到安全高度
G65 P9833 ; 9. 关闭测头
G28 G91 Z0. ; 10. 归零 M30
3.2 带偏置更新的标准流程
如果需要根据测量结果自动更新工件坐标系偏置:
T01 M06 G65 P9832 G65 P9810 Z100. F3000. G65 P9810 X0. Y0. F3000. G65 P9810 Z-10. G65 P9814 D50. S1. ; 测量内孔,S1=更新当前偏置 G65 P9810 Z100. G65 P9833 M30
3.3 多测头系统调用
G65 P9832 D2. ; 开启测头2(D2=测头编号) G65 P9810 Z50. F3000. G65 P9811 X0. S1. G65 P9810 Z100. G65 P9833 ; 关闭当前测头(O9833不接收D参数) M30
注意: O9833(关闭测头)不接收 D 参数。只有 O9832(开启测头)通过 Dd. 参数选择测头编号。O9833 只接收可选的 W1. 参数用于状态检查。
4. 三大基础宏程序
三大基础宏程序是所有测头应用的基础:测头开启(O9832)、测头关闭(O9833)和保护定位(O9810)。
4.1 O9832 — 测头开启
功能: 开启测头,执行主轴定向(M19),并根据配置发送相应的测头开启 M 代码。
格式:
G65 P9832 [Dd. W1.]
| Dd | d=测头编号(多测头系统),D1=测头1 | D1 |
| W1 | 启用测头状态检查(可选) | 关闭 |
示例:
G65 P9832 ; 开启测头(默认测头1) G65 P9832 D1. ; 开启测头1 G65 P9832 D2. ; 开启测头2(需配置多测头支持) G65 P9832 W1. ; 开启测头并检查状态 G65 P9832 D1. W1. ; 开启测头1并检查状态
完整调用流程:
T01 M06 ; 换刀测头 G65 P9832 ; 开启测头 + 主轴定向 G65 P9810 Z100. F3000. ; 安全定位
内部机制:
4.2 O9833 — 测头关闭
功能: 关闭测头,禁用测头触发信号。
格式:
G65 P9833 [W1.]
| W1 | 启用测头状态检查(可选) | 关闭 |
重要: O9833 不接收 D 参数。测头编号选择仅在 O9832(开启测头)中通过 Dd. 参数指定。O9833 的官方宏输入参数中不包含 D 参数。如果您在手册中看到有关 O9833 使用 D 参数的描述,那是不正确的。
示例:
G65 P9833 ; 关闭测头 G65 P9833 W1. ; 关闭测头并检查状态
完整退出流程:
G65 P9810 Z100. ; 先退到安全高度 G65 P9833 ; 再关闭测头 G28 G91 Z0. ; 归零 M30
内部机制:
4.3 O9810 — 保护定位(测头触发监控)
功能: 带测头触发监控的安全移动。一旦测头在移动过程中发生碰撞(意外触测),立即停止移动并发出报警,防止损坏测头或工件。
格式:
G65 P9810 Xx. Yy. Zz. [Ff. Mm. C1.]
| Xx | x=X 轴终点位置 | 必需 |
| Yy | y=Y 轴终点位置 | 必需 |
| Zz | z=Z 轴终点位置 | 必需 |
| Ff | f=定位进给率 (mm/min) | F3000 |
| Mm | m=移动模式: 1=单轴, 2=多轴 | M1 |
| C1 | 检查到位检测(到位后确认位置) | 关闭 |
示例:
; Z轴单轴下降 G65 P9810 Z10. F3000. M1.
; X轴单轴移动 G65 P9810 X-60. F4000.
; XY 联动定位 G65 P9810 X30. Y50. F3000. M2.
; 带到位检测 G65 P9810 Z-5. F1000. C1.
编程原则:
安全编程示例:
T01 M06 G65 P9832 G65 P9810 Z100. F3000. ; 快速升到安全高度 G65 P9810 X50. Y0. F5000. ; XY定位到测量起点 G65 P9810 Z-5. F2000. ; 慢速接近测量区域 G65 P9811 X50. ; 执行测量 G65 P9810 Z100. F3000. ; 退出到安全高度 G65 P9833 M30
5. 标定循环
标定循环是确保所有测量结果准确性的基础。在首次使用测头、更换测针、或怀疑测量精度时,必须执行标定。
5.1 O9800 — SupaTouch 优化循环
功能: 对机床+控制器+测头系统进行整体优化,减少循环时间并提高计量性能。通过分析机床的加减速特性和测头触发延迟,自动调整测量参数。
格式:
G65 P9800 Bb. Xx. 或 Yy. [Hh. Ff. Uu. Ww. Qq. Rr. Zz.]
| Bb | b=测球直径 (mm) |
| Xx 或 Yy | 优化方向(X 或 Y 之一,必选其一) |
| Hh | h=优化公差 (mm) |
| Ff | f=优化进给率 (mm/min) |
| Uu | u=回退过行程增量 |
| Ww | w=超轴外限 |
| q=安全增量 | |
| Rr | r=接近距离 |
| Zz | z=测量高度 |
示例:
; SupaTouch 优化 — X方向 G65 P9800 B6. X15. Z-8. H0.002 U7. W15. Q10. R15. F9000.
; SupaTouch 优化 — Y方向 G65 P9800 B6. Y15. Z-8. H0.002 U7. W15. Q10. R15. F9000.
执行时机:
- 机床安装调试时
- 机床大修或重新校准后
- 每年定期执行一次
- 更换控制系统或驱动系统后
5.2 O9801(K1) — 标定测头长度
功能: 通过触碰已知高度的基准面来确定测球的精确长度。此过程建立测头长度与机床坐标系的对应关系。
格式:
G65 P9801 Bb. Zz. Tt. [K1.]
| K1. | 指定标定测头长度模式 |
| Bb | b=测球直径 (mm) |
| Zz | z=在 Z 轴上的标定位置(基准面 Z 坐标) |
| Tt | t=回退量 (mm) |
示例:
; 标定测头长度,测球直径6mm,基准面Z0,回退20mm G65 P9801 B6. K1. Z0. T20.
; 标定测头长度,使用环规上表面 G65 P9801 B6. K1. Z50. T15.
注意事项:
- 基准面必须清洁、平整
- Z 值应为基准面的绝对坐标
- 标定结果自动存储在测头长度偏置中
5.3 O9801(K4) — 标定测球偏置和半径(环规标定)
功能: 使用已知直径的环规标定测球的 X/Y 偏置和半径。这是最常用的标定方式,标定后 O9814 等测量循环才能输出准确的直径和中心位置。
格式:
G65 P9801 K4. Bb. Dd. [M180. Ss. Zz.]
| K4. | 指定标定偏置和半径模式 |
| Bb | b=测球直径 (mm) |
| Dd | d=环规直径 (mm) |
| M180. | 启用180°主轴定向(默认启用) |
| Ss | s=偏置更新方式 |
| Zz | z=标定 Z 位置 |
示例:
; 使用Φ50.005环规标定,测球直径6mm G65 P9801 K4. B6. D50.005 M180. Z50.
; 标定后不更新偏置,仅计算 G65 P9801 K4. B6. D50.005 S2. Z50.
标定流程:
5.4 O9801(K5) — 标准球标定
功能: 在已知直径的标准球上进行标定。适用于无法使用环规的场合,或需要更高的标定灵活性。
格式:
G65 P9801 K5. Zz. Dd. Bb. Tt. [M180. Ee. Xx. Yy.]
| K5. | 指定标准球标定模式 |
| Zz | z=在 Z 轴上的标定位置 |
| Dd | d=标准球直径 (mm) |
| Bb | b=测球直径 (mm) |
| Tt | t=回退量 (mm) |
| M180. | 启用180°主轴定向 |
| Ee | e=标准球在 Z 轴上的位置偏差 |
| Xx | x=标准球中心 X 位置 |
| Yy | y=标准球中心 Y 位置 |
示例:
; 使用Φ30标准球标定,标准球中心在X250.Y100.Z0 G65 P9801 K5. Z0. D30. B6. T14. M180. E-300.157 X250. Y100.
5.5 O9801(K0/K2/K-3) — 其他标定模式
| K0 | 在孔中标定测针偏置 | G65 P9801 K0. Dd. Bb. | Dd=孔径, Bb=测球直径 |
| K2 | 在环规或标准球上标定测头 XY 偏置 | G65 P9801 K2. Dd. Bb. | 仅标定 XY 偏置 |
| K-3 | 用环规标定测球半径 | G65 P9801 K-3. Dd. Bb. | 仅标定半径 |
K0 示例:
G65 P9801 K0. D50. B6. ; 在Φ50孔中标定偏置
K2 示例:
G65 P9801 K2. D50. B6. ; 在Φ50环规上标定XY偏置
K-3 示例:
G65 P9801 K-3. D50. B6. ; 用Φ50环规标定测球半径
5.6 O9804 — 标定球心位置
功能: 标定标准球或标定球的球心位置,为后续的倾斜测量和 5 点标定提供基准。
格式:
G65 P9804 Xx. Yy. Zz. [Bb. Dd. Qq. Ss.]
| Xx | 球心标称 X 位置 |
| Yy | 球心标称 Y 位置 |
| Zz | 球心标称 Z 位置 |
| Bb | 测球直径 |
| Dd | 标定球直径 |
| 安全增量 | |
| Ss | 偏置更新方式 |
6. 标准测量循环
6.1 O9811 — XYZ 单面测量
功能: 测量一个表面以确定尺寸或位置。适用于 X、Y 或 Z 轴方向。可用于工件找正、偏置更新、余量检查等。
格式:
G65 P9811 Xx. 或 Yy. 或 Zz. [Ee. Ff. Hh. Mm. Qq. Ss. Tt. Uu. Vv. Ww.]
| Xx/Yy/Zz | 被测量表面的标称位置 | 必需 |
| Ee | e=过行程距离 (mm) | Z=4, XY=10 |
| Ff | f=测量进给率 (mm/min) | 机床设定 |
| Hh | h=公差 (mm) — 超差时报警 | 关闭 |
| Mm | m=位置度公差 (mm) | 关闭 |
| q=安全增量 (mm) | 30 | |
| Ss | s=偏置更新方式 | S1=更新 |
| Tt | t=回退量 (mm) | 2 |
| Uu | u=经验值 Ee (mm) — 补偿磨损/热漂移 | 0 |
| Vv | v=验证模式 (%) | 关闭 |
| Ww | w=过行程判断 (mm) | 3 |
示例:
; 标准 Z 轴单面测量 G65 P9832 G65 P9810 Z-8. F3000. G65 P9811 X-50. T10. G65 P9810 Z10. G65 P9833
; 测量 Z 方向,带公差检查 G65 P9832 G65 P9810 X-60. F3000. G65 P9810 Z5. G65 P9811 Z0. T11. H0.05 ; 公差±0.05mm G65 P9810 Z100. G65 P9833
输出变量:
| #135 | X 实测位置 / Y 实测位置 / Z 实测位置 |
| #136 | 取决于测量轴 |
| #137 | 取决于测量轴 |
| #138 | 被测量轴的方向(1=X, 2=Y, 3=Z) |
| #141 | 实测位置 – 标称位置(偏差) |
6.2 O9812 — 凸台/凹槽测量
功能: 测量凸台(外特征)或凹槽(内特征)的宽度。通过对向两次测量移动确定中心位置和实际宽度。
格式:
; 仅 XY 方向 G65 P9812 Xx. [Ee. Ff. Hh. Mm. Qq. Rr. Ss. Tt. Uu. Vv. Ww.] G65 P9812 Yy. [Ee. Ff. Hh. Mm. Qq. Rr. Ss. Tt. Uu. Vv. Ww.]
; XY + Z 高度 G65 P9812 Xx. Zz. [Ee. Ff. Hh. Mm. Qq. Rr. Ss. Tt. Uu. Vv. Ww.] G65 P9812 Yy. Zz. [Ee. Ff. Hh. Mm. Qq. Rr. Ss. Tt. Uu. Vv. Ww.]
| Rr | r=快速定位接近距离 (mm) |
示例:
; 测量X方向凹槽宽度 G65 P9832 G65 P9810 Z10. F3000. G65 P9812 X50. Z-10. S2. ; X方向凹槽,Z-10高度 G65 P9810 Z100. G65 P9833
; 测量Y方向凸台宽度,带公差 G65 P9832 G65 P9810 Z50. G65 P9812 Y80. Z20. H0.1 ; Y方向,公差±0.1mm G65 P9810 Z100. G65 P9833
输出变量:
| #135 | X 中心位置 |
| #136 | Y 中心位置 |
| #138 | 实测宽度 |
| #140 | 标称宽度 |
| #141 | 宽度偏差 |
6.3 O9814 — 内孔/外圆测量
功能: 测量内孔或外圆的直径和中心位置。使用 4 点(X+/X-/Y+/Y-)触测确定圆心和直径。这是最常用的测量循环之一。
格式:
; 内孔/外圆测量 G65 P9814 Dd. [Ee. Ff. Hh. Mm. Qq. Rr. Ss. Tt. Uu. Vv. Ww.]
; 指定 Z 测量高度 G65 P9814 Dd. Zz. [Ee. Ff. Hh. Mm. Qq. Rr. Ss. Tt. Uu. Vv. Ww.]
| Dd | d=特征标称直径 (mm) |
| Zz | z=测量高度位置 |
| Rr | r=接近距离:内孔≈2×半径,外圆=直径+增量 |
示例:
; 测量Φ50内孔,S2=不更新偏置 G65 P9832 G65 P9810 Z10. F3000. G65 P9814 D50. Z-10. S2. R10. G65 P9810 Z100. G65 P9833
; 测量内孔,自动更新当前工件偏置 G65 P9832 G65 P9810 X0. Y0. F3000. G65 P9810 Z-10. G65 P9814 D80. S1. ; 测量并更新偏置 G65 P9810 Z100. G65 P9833
; 测量外圆,带公差检查 G65 P9832 G65 P9810 Z50. F3000. G65 P9814 D120. Z30. H0.05 R130. ; 外圆Φ120,公差±0.05mm G65 P9810 Z100. G65 P9833
输出变量:
| #135 | 中心 X 位置 |
| #136 | 中心 Y 位置 |
| #137 | Z 测量高度 |
| #138 | 实测直径 |
| #139 | 圆度(最大半径 – 最小半径) |
| #140 | 标称直径 |
| #141 | 直径偏差 |
数据保存示例:
G65 P9814 D50. S1. #595=#135 ; 保存中心X到#595 #596=#136 ; 保存中心Y到#596 #598=#138 ; 保存实测直径到#598 #599=#139 ; 保存圆度到#599 #601=#141 ; 保存直径偏差到#601
6.4 O9815 — 确定内拐角
功能: 确定四边到角的内拐角位置。即使拐角不是精确的 90°,也能找到真实的交叉点。
格式:
G65 P9815 Xx. Yy. [Bb. Dd. Ee. Ii. Jj. Mm. Qq. Ss. Uu. Ww. Zz.]
| Xx | x=拐角标称 X 位置 |
| Yy | y=拐角标称 Y 位置 |
| Bb | b=角度公差 (°) 如 B0.25=±0.25° |
| Dd | d=X 轴距拐角到第一测量点的距离 |
| Ee | e=Y 轴距拐角到第一测量点的距离 |
| Ii | i=第二测量点沿 X 的增量距离 |
| Jj | j=第二测量点沿 Y 的增量距离 |
| Zz | z=Z 测量高度 |
示例:
; 确定内拐角 G65 P9832 G65 P9810 Z-5. F3000. G65 P9815 X20. Y20. I10. J10. G65 P9810 Z100. G65 P9833
; 带角度公差检查 G65 P9832 G65 P9810 Z-5. F3000. G65 P9815 X100. Y50. B0.5 D10. E10. I15. J15. G65 P9810 Z100. G65 P9833
输出变量:
| #135 | X 实测拐角位置 |
| #136 | Y 实测拐角位置 |
| #139 | X 平面对 X+ 轴的角度 |
| #141 | X 方向偏差 |
| #142 | Y 平面对 X+ 轴的角度 |
| #143 | Y 方向偏差 |
6.5 O9816 — 确定外拐角
功能: 确定外拐角(凸角)的位置和角度。
格式:
G65 P9816 Xx. Yy. [Bb. Dd. Ee. Ii. Jj. Mm. Qq. Ss. Uu. Ww. Zz.]
参数说明同 O9815。
示例:
T01 M06 G54 X-10. Y-10. G43 H1 Z100. G65 P9832 G65 P9810 Z-5. F3000. G65 P9816 X0. Y0. I10. J10. G65 P9810 Z100. G65 P9833 G28 Z100. G17 G68 X#135 Y#136 R#139 ; 旋转坐标系对齐拐角
输出变量:
| #135 | X 实测拐角位置 |
| #136 | Y 实测拐角位置 |
| #139 | X 平面对 X+ 轴的角度 |
| #141 | X 方向偏差 |
| #142 | Y 平面对 X+ 轴的角度 |
| #143 | Y 方向偏差 |
6.6 O9817 — 5点矩形测量
功能: 通过 5 个测量点确定矩形(凸台或凹槽)的中心、尺寸和旋转角度。即使特征与机床轴不垂直,也能找到真正的中心。
外部特征格式(凸台):
G65 P9817 Dd. Ee. Zz. [Aa. Bb. Hh. Mm. Qq. Rr. Ss. Tt. Uu. Vv. Ww.]
内部特征格式(凹槽/型腔):
G65 P9817 Dd. Ee. [Aa. Bb. Hh. Mm. Qq. Rr. Ss. Tt. Uu. Vv. Ww.]
| Dd | d=X 轴上的特征标称长度 |
| Ee | e=Y 轴上的特征标称长度 |
| Zz | z=Z 测量高度位置(仅外部特征需要) |
| Aa | a=测量面: A14=默认, A12=顶面, A11=右面, A13=左面 |
| Bb | b=角度公差 (°) |
| Hh | h=P2/P4 点在 X 上相对于左下角的位置 |
| Tt | t=同一面上两测量点间距 |
| Vv | v=P1/P3 点在 Y 上相对于左下角的位置 |
示例:
; 外部矩形测量,标称长80宽50 G65 P9832 G65 P9810 Z10. F3000. G65 P9817 D80. E50. Z-10. G65 P9810 Z100. G65 P9833
; 内部矩形测量,带角度公差 G65 P9832 G65 P9810 Z10. F3000. G65 P9817 D60. E40. A12. B0.2 H0.1 M0.1 Q10. R10. S1. T60. U2. W2. G65 P9810 Z100. G65 P9833
输出变量:
| #135 | 中心 X 位置 |
| #136 | 中心 Y 位置 |
| #137 | Z 测量高度 |
| #138 | X 轴实测长度 |
| #139 | 旋转角度(从 X+ 轴测量) |
| #140 | Y 轴标称长度 |
| #141 | X 长度偏差 |
| #142 | Y 实测长度 |
| #143 | Y 长度偏差 |
7. 矢量测量循环
7.1 O9821 — 倾斜平面测量
功能: 测量有倾斜角度的平面。支持角度输入和 XYZ 坐标两种模式。
格式(角度输入):
G65 P9821 Aa. Dd. [Ee. Ff. Hh. Mm. Qq. Ss. Tt. Uu. Vv. Ww.]
格式(XYZ 输入):
G65 P9821 Xx. Yy. Zz. [Cc. Hh. Mm. Qq. Ww.]
| Aa | a=对应平面的角度 (°) |
| Dd | d=从特征中心到测量点的距离 |
| Xx/Yy/Zz | 测量点的坐标位置 |
| Cc | c=平面的测量面: 1=前+Z, 2=后-Z, 3=前+XY |
示例:
; 角度输入模式 — 45°斜面 G65 P9821 A45.005 D50.005 E21. F0.8 H0.2 M0.2 Q10. S1. T20. U0.5 V0.5 W2.
; XYZ 输入模式 G65 P9821 X25. Y25. Z25. C1.
7.2 O9822 — 倾斜凸台/凹槽测量
功能: 测量有倾斜角度的凸台或凹槽。
格式:
; 仅轴向 G65 P9822 Aa. Dd. [Ee. Ff. Hh. Mm. Qq. Rr. Ss. Tt. Uu. Vv. Ww.]
; 指定 Z 高度 G65 P9822 Aa. Dd. Zz. [Ee. Ff. Hh. Mm. Qq. Rr. Ss. Tt. Uu. Vv. Ww.]
| Aa | a=特征的角度 (°) |
| Dd | d=特征在 X 轴上的标称长度/直径 |
| Zz | z=测量高度 |
示例:
; 倾斜凹槽,45°角,标称长度50mm G65 P9822 A45.005 D50.005 Z50. E21. F0.8 H0.2 M0.2 Q10. R10. S1. T20. U0.5 V0.5 W2.
7.3 O9823 — 3点内孔或外圆测量
功能: 使用 3 次矢量测量移动测量内孔或外圆。比 O9814 的 4 点法更灵活,可在任意角度位置测量,适合非正交孔系。
格式:
; 3点测量 G65 P9823 Aa. Bb. Cc. Dd. [Ee. Ff. Hh. Mm. Qq. Rr. Ss. Tt. Uu. Vv. Ww.]
; 指定 Z 高度 G65 P9823 Aa. Bb. Cc. Dd. Zz. [Ee. Ff. Hh. Mm. Qq. Rr. Ss. Tt. Uu. Vv. Ww.]
| Aa | a=第一点的角度 (°) |
| Bb | b=第二点的角度 (°) |
| Cc | c=第三点的角度 (°) |
| Dd | d=特征标称直径 (mm) |
| Zz | z=测量高度 |
示例:
; 在0°、150°、35°三个方向测量Φ50内孔 G65 P9823 A45.005 B150. C35.005 D50.005 Z50. E21. F0.8 H0.2 M0.2 Q10. R10. S1. T20. U0.5 V0.5 W2.
输出变量:
| #135 | 中心 X 位置 |
| #136 | 中心 Y 位置 |
| #138 | 实测直径 |
| #139 | 圆度(最大半径 – 最小半径) |
8. 高级循环
8.1 O9818 — 第4轴测量
功能: 在 4 轴机床上测量工件旋转轴的方向和位置。支持 B 轴(绕 Y 旋转)和 A 轴(绕 X 旋转)测量。
格式(4种模式):
; K1=B轴上下测量(Y-Z平面) G65 P9818 Yy. Zz. [Kk. Qq. Bb. Ss. Ww.]
; K2=B轴左右测量(X-Z平面) G65 P9818 Xx. Zz. [Kk. Qq. Bb. Ss. Ww.]
; K3=A轴(C轴外部) G65 P9818 Xx. Yy. [Kk. Qq. Bb. Ss. Ww.]
; K4=从外部到中心 G65 P9818 Xx. Yy. [Kk. Qq. Bb. Ss. Ww.]
| Kk | k=模式: 1=B轴上下, 2=B轴左右, 3=A轴外部, 4=外部到中心 |
| Bb | b=角度公差 (°) |
| Xx/Yy/Zz | 测量位置 |
示例:
; B轴上下测量 G65 P9818 Y100. Z50. K1. Q10. B2. S1. W2.
; B轴左右测量 G65 P9818 X100. Z50. K2. Q10. B2. S1. W2.
; A轴外部测量 G65 P9818 X100. Y50. K3. Q10. B2. S1. W2.
; 外部到中心 G65 P9818 X50. Y100. K4. Q10. B2. S1. W2.
输出变量:
| #135 | 第4轴方向偏差 |
| #136 | 第4轴位置 |
| #141 | 旋转中心偏差 |
8.2 O9819 — PCD 上的内孔/外圆测量
功能: 测量圆周分布孔(PCD — Pitch Circle Diameter)的节圆直径。可测量孔组整体的节圆直径准确度。
格式:
; 外圆模式 G65 P9819 Cc. Dd. Zz. [Aa. Bb. Hh. Mm. Qq. Rr. Ww.]
; 内孔模式 G65 P9819 Cc. Dd. Kk. [Aa. Bb. Hh. Mm. Qq. Rr. Ww.]
| Cc | c=节圆直径 (PCD) 标称值 |
| Dd | d=孔/外圆直径 |
| Kk | k=内孔模式用的 Z 测量高度 |
| Aa | a=起始角度 (°) |
| Bb | b=角度公差 (°) |
示例:
; 内孔模式:PCD=Φ28.003,孔径Φ50.005 G65 P9819 C28.003 D50.005 K11. A45.005 B2. H0.2 M0.2 Q10. R10. W2.
输出变量:
| #135 | PCD 中心 X |
| #136 | PCD 中心 Y |
| #138 | 实测 PCD 直径 |
| #141 | PCD 直径偏差 |
8.3 O9820 — 毛坯余量
功能: 在多个位置测量表面的余量,确定最大余量、最小余量及其位置。适用于铸件、锻件等毛坯件的预测量。
格式:
; X 方向表面 G65 P9820 Xx. [Jj. Kk. Ss. Uu. Qq.]
; Y 方向表面 G65 P9820 Yy. [Ii. Kk. Ss. Uu. Qq.]
; Z 方向表面 G65 P9820 Zz. [Ii. Jj. Ss. Uu. Qq.]
| Xx/Yy/Zz | 被测量表面的标称位置 |
| Ii | i=X 轴测量起始位置(Y/Z 方向余量时) |
| Jj | j=Y 轴测量起始位置(X/Z 方向余量时) |
| Kk | k=Z 轴测量起始位置(X/Y 方向余量时) |
示例:
; 在X方向测量表面余量,Y方向起始J10,Z方向起始K11 G65 P9820 X100. J10. K11. S1. U0.5 Q5.
输出变量:
| #135 | 最小余量 |
| #136 | 最大余量 |
| #141 | 平均余量 |
| #142 | 最小余量位置 |
| #143 | 最大余量位置 |
8.4 O9834 — 特征到特征数据
功能: 计算两个测量特征之间的位置关系。在两个测量循环之间调用 O9834,系统自动计算第一个特征到第二个特征的相对距离/位置偏差。支持 XY 平面和 Z 平面。
XY 平面格式:
; X 方向 G65 P9834 Xx. [Ee. Ff. Hh. Mm. Ss. Tt. Uu. Vv. Ww.]
; Y 方向 G65 P9834 Yy. [Ee. Ff. Hh. Mm. Ss. Tt. Uu. Vv. Ww.]
; XY 方向 G65 P9834 Xx. Yy. [Bb. Ee. Hh. Mm. Ss. Uu. Ww.]
; 角度方向 G65 P9834 Aa. Dd. [Bb. Ee. Hh. Mm. Ss. Uu. Ww.]
; 复制上一特征数据(无参数) G65 P9834
Z 平面格式:
G65 P9834 Zz. [Ee. Ff. Hh. Mm. Ss. Tt. Uu. Vv. Ww.] G65 P9834 Aa. Zz. [Bb. Ww.] G65 P9834 Dd. Zz. [Bb. Ww.]
示例:
; 测量两孔位置度 G65 P9810 X30. Y50. F3000. G65 P9810 Z-10. G65 P9814 D20. ; 测量第一个孔 G65 P9834 ; 复制第一特征数据 G65 P9810 Z10. G65 P9810 X80. Y78.867 G65 P9810 Z-10. G65 P9814 D30. ; 测量第二个孔 G65 P9834 X50. Y28.867 M0.1 ; 计算两孔中心偏差
输出变量:
| #135 | 特征1到特征2 X 方向偏差 |
| #136 | 特征1到特征2 Y 方向偏差 |
| #137 | 特征1到特征2 Z 方向偏差 |
| #141 | XY 合成偏差 |
8.5 O9835 — 统计过程控制(SPC)刀补更新
功能: 根据多次测量平均值控制刀具偏置的自动更新。适用于批量生产中刀具磨损的自动补偿。
格式:
G65 P9835 Tt. Mm. [Vv. Cc. Ff. Zz.]
| Tt | t=刀具偏置号 |
| Mm | m=更新模式: M31=平均值更新 |
| Vv | v=更新量限值(超过此值不更新) |
| Cc | c=测量样本数量 |
| Ff | f=测量进给率 |
| Zz | z=Z 测量高度 |
示例:
; 对刀具偏置T20进行平均值更新,样本数4 G65 P9835 T20. M31. V0.25 C4. F0.8 Z1.
8.6 O9843 — 角度测量
功能: 测量表面在两个位置之间的角度。可用于补偿第4轴或验证斜面角度。
格式:
G65 P9843 Xx. Dd. [Aa. Bb. Qq. Ww. Zz.] G65 P9843 Yy. Dd. [Aa. Bb. Qq. Ww. Zz.]
| Xx/Yy | 测量表面的标称位置 |
| Dd | d=测量间距(两测量点之间的距离) |
| Aa | a=第4轴角度用于补偿 (°) |
| Bb | b=角度公差 (°) |
示例:
; X方向角度测量,间距30mm G65 P9843 X50. D30. A45. B0.2 Q15. W1. Z10.
; Y方向角度测量 G65 P9843 Y100. D50. A30. B0.1 Q20. W1. Z15.
输出变量:
| #135 | 第一测量点位置 |
| #136 | 第二测量点位置 |
| #139 | 实测角度 (°) |
| #141 | 角度偏差 |
9. 输出变量表
9.1 输出变量总览
所有测量循环的执行结果存储在以下通用变量中。不同循环对同一变量的解释可能不同,详见各循环说明。
| #135 | 特征在 X 轴上的实测位置 | 见各循环具体定义 |
| #136 | 特征在 Y 轴上的实测位置 | 见各循环具体定义 |
| #137 | 特征在 Z 轴上的实测位置 | 见各循环具体定义 |
| #138 | 特征直径/宽度 | 见各循环具体定义 |
| #139 | 特征角度或形式值(圆度、角度等) | 见各循环具体定义 |
| #140 | 理论值(标称值) | 编程时输入的目标值 |
| #141 | 偏差值(实测值 – 标称值) | 正数=偏大,负数=偏小 |
| #142 | 第二角度或偏差分量 | 见各循环具体定义 |
| #143 | 第二轴偏差 | 见各循环具体定义 |
| #144~#149 | 留用或循环特定值 | 各循环不同 |
9.2 各循环输出变量对照表
| O9811 | 单面测量 | 实测位置 | — | — | 测量轴方向 | — | — | 偏差 | — | — |
| O9812 | 凸台/凹槽 | X中心 | Y中心 | — | 实测宽度 | — | 标称宽度 | 宽度偏差 | — | — |
| O9814 | 内孔/外圆 | X中心 | Y中心 | Z高度 | 实测直径 | 圆度 | 标称直径 | 直径偏差 | — | — |
| O9815 | 内拐角 | X拐角 | Y拐角 | — | — | X面角度 | — | X偏差 | Y面角度 | Y偏差 |
| O9816 | 外拐角 | X拐角 | Y拐角 | — | — | X面角度 | — | X偏差 | Y面角度 | Y偏差 |
| O9817 | 5点矩形 | X中心 | Y中心 | Z高度 | X实测长度 | 旋转角度 | Y标称长度 | X偏差 | Y实测 | Y偏差 |
| O9823 | 3点测量 | X中心 | Y中心 | — | 实测直径 | 圆度 | — | — | — | — |
| O9818 | 第4轴 | 方向偏差 | 位置 | — | — | — | — | 旋转中心偏差 | — | — |
| O9819 | PCD | PCD中心X | PCD中心Y | — | 实测PCD | — | — | PCD偏差 | — | — |
| O9820 | 毛坯余量 | 最小余量 | 最大余量 | — | — | — | — | 平均余量 | 最小位置 | 最大位置 |
| O9834 | 特征到特征 | X偏差 | Y偏差 | Z偏差 | — | — | — | XY合成偏差 | — | — |
| O9843 | 角度测量 | 第一点 | 第二点 | — | — | 实测角度 | — | 角度偏差 | — | — |
9.3 变量保存推荐
由于输出变量 #135~#149 会在每个测量循环后被覆盖,建议在必要时将结果复制到保留变量区(#500~#531):
; O9814 内孔测量后保存数据 G65 P9814 D50. S1. ; 测量Φ50内孔 #500=#135 ; 保存中心X到#500 #501=#136 ; 保存中心Y到#501 #502=#137 ; 保存Z高度到#502 #503=#138 ; 保存实测直径到#503 #504=#139 ; 保存圆度到#504 #505=#140 ; 保存标称直径到#505 #506=#141 ; 保存直径偏差到#506
推荐变量映射:
| #500 | 备份 #135 | X 位置 / 第一值 |
| #501 | 备份 #136 | Y 位置 / 第二值 |
| #502 | 备份 #137 | Z 位置 / 第三值 |
| #503 | 备份 #138 | 直径 / 宽度 |
| #504 | 备份 #139 | 角度 / 圆度 |
| #505 | 备份 #140 | 标称值 |
| #506 | 备份 #141 | 偏差值 |
| #507 | 备份 #142 | 第二角度 / Y 实测 |
| #508 | 备份 #143 | Y 偏差 |
10. 通用参数说明表
10.1 所有测量循环通用参数
以下参数适用于所有测量循环(O9811~O9823),除非另有说明:
| 过行程距离 | Ee | 测头移出预期位置的距离 (mm) | Z=4, XY=10 | 触测后继续移动的距离,用于补偿位置偏差 |
| 测量进给率 | Ff | 触测时的进给速度 (mm/min) | 机床设定 | 建议用低速获得高精度,0.5~2 mm/min 常用 |
| 公差值 | Hh | 特征尺寸公差 (mm) | 关闭 | 超差时触发 O9700 报警 |
| 位置度公差 | Mm | 理论位置周围的圆柱形公差区 (mm) | 关闭 | 评估中心位置是否在允许范围内 |
| 安全增量 | 接近测量面之前的回退距离 (mm) | 30 | 测触测后的回退,准备下一次接近 | |
| 接近距离 | Rr | 快速定位到测量位置的距离 (mm) | 循环相关 | 内孔≈2×半径,外圆=直径+增量 |
| 偏置更新方式 | Ss | 测量结果如何更新到工件偏置 | S1=更新 | 1=更新当前, 2=不更新, 36=更新至G54G57 |
| 回退量 | Tt | 触测后的回退距离 (mm) | 2 | 确保测针离开工件表面 |
| 经验值 Ee | Uu | 工具磨损/热漂移补偿量 (mm) | 0 | 机床热变形预补偿 |
| 验证模式 | Vv | 测量值与标称值的偏差百分比验证 (%) | 关闭 | 用于发现严重偏差(如碰撞后) |
| 过行程判断 | Ww | 判断测头是否过行程 (mm) | 3 | 超过此值视为异常触测 |
10.2 Ss 偏置更新方式详解
| S1 | 更新当前激活的工件偏置 (G54~G59) | 最常用 |
| S2 | 不更新偏置,仅输出测量值到 #135~#149 | 仅用于测量/检验 |
| S3 | 更新到 G54 | 直接写入 G54 |
| S4 | 更新到 G55 | 直接写入 G55 |
| S5 | 更新到 G56 | 直接写入 G56 |
| S6 | 更新到 G57 | 直接写入 G57 |
10.3 系统配置变量
| #120 | 验证模式比率 (%) | 0=禁用 | 1=启用验证模式 |
| #123 | 到位检测公差 (mm) | 0.010 | O9810 中 C1 使用的到位精度 |
| #111+6 | 回退系数 | 0.5 | 调整触测后回退距离,值域 0.1~2.0 |
| #111+9 | 快速定位进给率 (mm/min) | 3000 | O9810 保护的快速移动速率 |
10.4 测头编号约定
| D1 | 测头1(默认,工件测量用) |
| D2 | 测头2(可通过 O9724 配置) |
| D3 | 测头3 |
| … | 更多测头可通过 O9724 配置 |
测头编号仅在 O9832(开启测头) 中使用 Dd. 参数指定。O9833(关闭测头)不接收 D 参数。
11. 安装与配置
11.1 软件安装
内容: 软件工具包 A-4012-0516
内存要求:
- 8KB 宏程序存储空间(约 20m 纸带长度)
- Fanuc 系统需开启宏程序功能(参数 8000 系列)
安装方式(推荐:使用安装向导):
手动配置(如安装向导不可用):
11.2 机床参数设置
| 参数 6006 | Bit4=1 | 启用宏程序预读控制 |
| 参数 6019 | Bit4=1 | 启用宏程序存储器 |
| 参数 5006 | Bit6=1 | 启用变量读取 |
11.3 单位制设置
发那科系统使用 G20/G21 切换单位制:
G21 ; 公制(mm)— 推荐 G20 ; 英制(inch)
所有循环均按公制编写。如使用英制模式,变量中的数值将自动转换,但公差和位置度参数按编程时的单位系统输入。
11.4 多测头配置
通过编辑 O9724 程序启用多测头支持:
测头选择示例:
G65 P9832 D2. ; 开启测头2 G65 P9832 D1. W1. ; 开启测头1并检查状态 G65 P9833 ; 关闭当前测头(无D参数)
11.5 报错信息 (O9700)
可通过编辑 O9700 程序自定义报警信息:
- 第9章所列的全部报警和信息均存储在此程序
- 用户可添加自定义机床特定报警
11.6 变量使用规定
| #1~#33 | 局部变量(G65参数传递) | 只读(传递时) |
| #100~#109 | 循环控制 | 不应修改 |
| #110~#119 | 配置参数 | 可读 |
| #120~#131 | 系统配置 | 按需设定 |
| #132~#134 | 内部参数 | 不应修改 |
| #135~#149 | 测量结果输出 | 读取主要接口 |
| #150~#199 | 内部临时变量 | 不应修改 |
| #500~#531 | 通用保留变量 | 自由使用 |
12. 完整编程示例
12.1 示例1:内孔测量与工件找正
场景: 在铣削加工中心上测量一个 Φ80 内孔,自动更新工件坐标系原点。
%O1000 ; ============================================================ ; 程序名: O1000 — 内孔测量与工件找正 ; 工件: Φ80 内孔 ; 测头: Renishaw OMP40 (测球直径 6mm) ; 系统: Fanuc 31i-B5 ; 编制: 宁波匠测科技有限公司 技术部 ; ============================================================
T01 M06 ; 换刀装入测头 G90 G21 G40 G80 G17 ; 安全模式:公制mm G54 ; 激活 G54 工件坐标系
G65 P9832 ; 开启测头(含主轴定向)
; — 1. 安全定位到孔中心上方 — G65 P9810 X0. Y0. F5000. ; XY定位到孔中心 G65 P9810 Z100. F3000. ; 升到安全高度 G65 P9810 Z10. F2000. ; 接近孔口
; — 2. 下降到测量高度 — G65 P9810 Z-20. F1000. ; 下降到测量高度(带保护)
; — 3. 执行内孔测量,S1=更新当前偏置 — G65 P9814 D80. S1. R40. ; R40=接近距离
; — 4. 读取并保存测量结果 — #500=#135 ; 保存实测中心X #501=#136 ; 保存实测中心Y #502=#138 ; 保存实测直径 #503=#139 ; 保存圆度 #504=#141 ; 保存直径偏差
; — 5. 退出到安全高度 — G65 P9810 Z100. F3000.
; — 6. 关闭测头 — G65 P9833
; — 7. 程序结束 — G28 G91 Z0. ; Z轴归零 M30 %
12.2 示例2:标定→测量→补偿完整流程
场景: 首次使用测头,依次执行标定、测量和刀补更新。
%O2000 ; ============================================================ ; 程序名: O2000 — 标定→测量→补偿完整流程 ; 工件: 标准环规 + 待测工件 ; 测头: Renishaw OMP40 (测球直径 6mm) ; 系统: Fanuc 31i-B5 ; 编制: 宁波匠测科技有限公司 技术部 ; ============================================================
; ============ 第一阶段:测头标定 ============ T01 M06 G90 G21 G40 G80 G65 P9832
; — 1.1 标定测头长度 — ; 使用已知高度基准面 Z0 G65 P9810 Z50. F3000. G65 P9810 X0. Y0. F3000. G65 P9810 Z5. F500. G65 P9801 B6. K1. Z0. T20. ; K1=长度标定 G65 P9810 Z100. F3000.
; — 1.2 标定测球偏置和半径 — ; 使用Φ50.005环规 G65 P9810 X0. Y0. F3000. G65 P9810 Z50. F2000. G65 P9801 K4. B6. D50.005 M180. Z50. ; K4=偏置+半径标定 G65 P9810 Z100. F3000.
; ============ 第二阶段:测量工件 ============ ; — 2.1 测量Φ80内孔 — G65 P9810 X0. Y0. F3000. G65 P9810 Z10. G65 P9810 Z-15. F1000. G65 P9814 D80. S1. R45. ; 测量Φ80内孔,更新偏置 G65 P9810 Z100. F3000.
; — 2.2 保存测量结果 — #520=#135 ; 孔中心X #521=#136 ; 孔中心Y #522=#138 ; 实测直径 #523=#139 ; 圆度 #524=#141 ; 直径偏差
; — 2.3 测量Φ50凸台 — G65 P9810 X150. Y0. F3000. G65 P9810 Z10. G65 P9810 Z-10. F1000. G65 P9814 D50. Z-10. S2. R65. ; 测量Φ50外圆,不更新偏置 G65 P9810 Z100. F3000.
; — 2.4 保存第二个测量结果 — #530=#135 ; 凸台中心X #531=#136 ; 凸台中心Y #532=#138 ; 凸台实测直径 #534=#141 ; 凸台直径偏差
; ============ 第三阶段:关闭测头 ============ G65 P9833
; ============ 第四阶段:刀补更新(根据测量结果)============ ; 假设#522=实测直径,#524=偏差 ; 如果直径偏大0.05mm,则更新刀具磨损补偿 IF [#524 GT 0.05] GOTO 100 IF [#524 LT -0.05] GOTO 200 GOTO 900
N100 #3003=1 ; 禁止单段 G10 L10 P1 R[#522-80.] ; 更新刀具半径补偿1 #3003=0 ; 恢复单段 M00 ; 暂停 — 偏置已更新 GOTO 900
N200 #3003=1 G10 L10 P1 R[#522-80.] #3003=0 M00
N900 G28 G91 Z0. M30 %
12.3 示例3:多特征测量与坐标系旋转
场景: 测量工件外拐角,计算旋转角度,通过 G68 旋转坐标系进行加工。
%O3000 ; ============================================================ ; 程序名: O3000 — 外拐角测量与坐标系旋转 ; 工件: 矩形工件,需要测量外拐角并旋转坐标系对齐 ; 编制: 宁波匠测科技有限公司 技术部 ; ============================================================
T01 M06 G90 G21 G40 G80 G54 X-10. Y-10. ; 预设起始点 G43 H1 Z100.
G65 P9832 ; 开启测头
; — 定位到外拐角附近 — G65 P9810 Z-5. F3000. G65 P9810 X0. Y0. F2000.
; — 测量外拐角 — G65 P9816 X0. Y0. I10. J10. ; I10 J10 = 测量增量
; — 读取测量结果 — #506=#135 ; X拐角位置 #507=#136 ; Y拐角位置 #508=#139 ; X平面角度 #509=#141 ; X偏差 #510=#142 ; Y平面角度 #511=#143 ; Y偏差
; — 退出 — G65 P9810 Z100. F3000. G65 P9833
; — 应用坐标系旋转 — G28 G91 Z0. G90 G17 G68 X#506 Y#507 R#508 ; 以实测拐角为中心旋转
; — 此处插入加工程序(在旋转后的坐标系中) — ; …
G69 ; 取消旋转 M30 %
12.4 示例4:毛坯余量检测
场景: 对铸件毛坯进行余量检测,确定最小和最大加工余量。
%O4000 ; ============================================================ ; 程序名: O4000 — 铸件毛坯余量检测 ; 编制: 宁波匠测科技有限公司 技术部 ; ============================================================
T01 M06 G90 G21 G40 G80 G65 P9832
; — 定位到Z表面上方 — G65 P9810 Z100. F3000. G65 P9810 X0. Y0. F3000. G65 P9810 Z10. F500.
; — 在多个位置测量Z表面余量 — ; 在X方向从I0到I100,Y方向从J0到J100的网格上测量 G65 P9820 Z0. I0. J0. S1. U0.5 Q5.
; — 读取余量结果 — #535=#135 ; 最小余量 #536=#136 ; 最大余量 #537=#141 ; 平均余量 #538=#142 ; 最小余量位置 #539=#143 ; 最大余量位置
G65 P9810 Z100. F3000. G65 P9833 M30 %
13. 常见陷阱与注意事项
以下是使用雷尼绍 Inspection Plus 宏程序时最常见的 10+ 个陷阱,请务必注意:
陷阱 1:O9833 错误使用 D 参数
错误:
G65 P9833 D1. ❌ — O9833 不接收 D 参数
正确:
G65 P9833 ✅ — 关闭测头(无 D 参数)
O9833(关闭测头)的官方宏输入参数中不包含 D 参数。只有 O9832(开启测头)才接收 Dd. 参数选择测头编号。
陷阱 2:混淆发那科与西门子的单位制代码
错误:
G70 ❌ — G70/G71 是西门子系统的单位制代码
正确:
G21 ✅ — 发那科系统公制 G20 ✅ — 发那科系统英制
发那科系统使用 G20/G21 切换英制/公制。G70/G71 是西门子(Siemens)系统使用的代码,在发那科控制系统中这些代码有完全不同的功能(G70=英制精确定位,G71=公制外径粗车循环)。
陷阱 3:调用参数缺少小数点
错误:
G65 P9814 D50 Z-10 ❌ — 缺少小数点
正确:
G65 P9814 D50. Z-10. ✅ — 必须带小数点
Fanuc 宏程序中,整数参数也必须包含小数点,否则变量赋值为零。
陷阱 4:I、J、K 参数顺序错误
错误:
G65 P9xxx K9. J10. I30. ❌ — 顺序错误
正确:
G65 P9xxx I30. J10. K9. ✅ — 必须按 I→J→K 顺序
当循环包含 I、J、K 可选输入时,必须严格按 I→J→K 顺序声明。
陷阱 5:忘记先 Z 后 XY
错误:
G65 P9810 X50. Y100. ❌ — 在 Z 未升起时移动 XY G65 P9810 Z10.
正确:
G65 P9810 Z100. F3000. ✅ — 先 Z 升起,再 XY 移动 G65 P9810 X50. Y100.
下降时先降 Z 再动 XY,上升时先升 Z 再动 XY,这是测头安全的第一原则。
陷阱 6:测量结果未及时保存被覆盖
错误:
G65 P9814 D50. ; 第一个测量 G65 P9814 D30. ; 第二个测量 — #135~#149 被覆盖! ; #135 现在是第二个孔的中心,第一个数据丢失
正确:
G65 P9814 D50. ; 第一个测量 #500=#135 ; 立即保存中心X #501=#136 ; 立即保存中心Y #503=#138 ; 立即保存直径 G65 P9814 D30. ; 第二个测量 — 使用 #500/#501 可保留第一个数据
陷阱 7:标定不足或标定错误
在以下情况必须重新标定:
- 首次安装测头
- 更换测针或测球
- 测头碰撞后
- 机床热机状态变化大时
- 长期未使用后
不标定直接测量的后果: 直径偏差可达 0.05~0.20mm。
陷阱 8:O9810 进给率过高导致测头损坏
错误:
G65 P9810 Z-50. F10000. ❌ — 进给率过高,碰撞风险大
正确:
G65 P9810 Z10. F3000. ✅ — 标准安全进给率 G65 P9810 Z-5. F500. ✅ — 接近区域低速
建议:远程移动 ≤F5000,接近工件区域 ≤F2000,精密接近 ≤F500。
陷阱 9:S 参数偏置更新方式使用错误
G65 P9814 D50. S3. ; S3=更新到G54 ** ; 注意:如果当前激活的不是G5x,更新可能非预期**
S1=更新当前激活的偏置;S3~S6=分别更新到 G54~G57。确认当前激活的坐标系后再使用 S1。
陷阱 10:测量进给率 Ff 设置过慢或过快
- 过慢(<100 mm/min):测针在工件表面"爬行",产生振动,测量重复性差
- 过快(>2000 mm/min):过行程大,定位精度下降
- 推荐: 480~1000 mm/min(标准钢件),铝件可适当降低
陷阱 11:Tt 回退量设置不当
回退量是触测后测针离开工件表面的距离。设置过小(<1mm)可能导致测针未完全离开,影响下一次测量;设置过大浪费循环时间。
建议: T5~T15 为常用范围,厚大工件用较大值。
陷阱 12:循环参数中的正负号方向
O9811 的 Xx/Yy/Zz 参数表示被测量表面的标称位置,而非测头移动的终点。正负号决定了测头从哪个方向接近:
G65 P9811 X50. ; 从 X+ 方向接近(测量 X+ 面) G65 P9811 X-50. ; 从 X- 方向接近(测量 X- 面)
错误的符号会导致测头向远离工件的方向移动,不触测而直接过行程报警。
陷阱 13:忘记在测头移动前开启到位检测
当需要在精密位置执行测量时,使用 C1 开启到位检测:
G65 P9810 Z-15. F500. C1. ; 带到位检测的精确定位
不使用 C1 时,O9810 在到达目标位置附近即停止,可能产生微小定位误差。
陷阱 14:混淆 O9814(4点)和 O9823(3点)的选择
- O9814: 4点(X+/X-/Y+/Y-),速度快,适用于标准内孔/外圆
- O9823: 3点(任意三个角度),灵活,适用于非正交特征、大直径孔、或空间受限的场合
错误选择可能导致测量精度不足或循环超时。
陷阱 15:在英制模式下编程未换算
如果机床使用 G20(英制),所有参数值应转换为英制单位输入:
G20 ; 英制模式 G65 P9814 D1.9685 ; 对应Φ50mm = 1.9685 inch
但 Inspection Plus 循环内部按公制编写,变量中的值在英制模式下会自动转换。最容易出错的是公差值(Hh)未换算。
附录A:快速参考卡
A.1 常用宏速查
| O9832 | 开启测头 | — | Dd. W1. |
| O9833 | 关闭测头 | — | W1. |
| O9810 | 保护定位 | Xx/Yy/Zz | Ff. Mm. C1. |
| O9801 | 标定 | Kk. Bb. | Dd. Zz. Tt. |
| O9811 | 单面测量 | Xx/Yy/Zz | Ss. Qq. Tt. |
| O9812 | 凸台/凹槽 | Xx/Yy | Zz. Rr. Ss. |
| O9814 | 内孔/外圆 | Dd. | Zz. Rr. Ss. |
| O9815 | 内拐角 | Xx. Yy. | Ii. Jj. |
| O9816 | 外拐角 | Xx. Yy. | Ii. Jj. |
| O9817 | 5点矩形 | Dd. Ee. | Zz. Aa. Bb. |
| O9823 | 3点测量 | Aa. Bb. Cc. Dd. | Zz. Ss. |
| O9834 | 特征到特征 | Xx/Yy/Zz/Aa | Bb. Mm. |
| O9843 | 角度测量 | Xx/Yy. Dd. | Aa. Bb. |
A.2 输出变量速查
| #135 | 中心X | 实测值 | 中心X | 中心X | 中心X | X偏差 | 第一点 |
| #136 | 中心Y | — | 中心Y | 中心Y | 中心Y | Y偏差 | 第二点 |
| #137 | Z高度 | — | — | Z高度 | — | Z偏差 | — |
| #138 | 实测直径 | 轴方向 | 实测宽度 | X长度 | 实测直径 | — | — |
| #139 | 圆度 | — | — | 旋转角 | 圆度 | — | 实测角 |
| #141 | 直径偏差 | 偏差 | 宽度偏差 | X偏差 | — | XY偏差 | 角度偏差 |
A.3 安全编程清单
- 换刀后执行 G65 P9832 开启测头
- 所有移动使用 G65 P9810 保护定位
- 先升 Z 再移动 XY(退出时)
- 先降 Z 再移动 XY(进入时)
- 测量完成后执行 G65 P9833 关闭测头
- 测量结果及时复制到 #500~#531 保留变量
- 标定→测量→补偿流程完整
- 参数值带小数点
- I→J→K 顺序正确
- 公制模式下使用 G21
文档版本: V2.0 适用系统: Fanuc Macro B / Mitsubishi Meldas 软件料号: A-4012-0516 参考手册: Renishaw H-5755-8600-08-A (英文) / H-5755-8608-08-A (中文)
编制单位: 宁波匠测科技有限公司 技术部 技术支持: 宁波匠测科技有限公司 版权声明: 本文档由宁波匠测科技有限公司技术部编制,仅用于技术交流与培训目的。
本文档中引用的 Renishaw 及相关产品名称为雷尼绍公司注册商标。所有宏程序参数以 Renishaw 官方编程手册(H-5755-8600-08-A)为准。