雷尼绍Inspection Plus宏程序编程指南_发那科/Meldas篇

雷尼绍 Inspection Plus 宏程序编程指南

发那科/Meldas 加工中心篇

文档版本: V2.0
适用系统: Fanuc Macro B (0M~32iM) / Mitsubishi Meldas (M3~M800)
软件料号: A-4012-0516 (Fanuc/Meldas with SupaTouch)
编制单位: 宁波匠测科技有限公司 技术部
发布日期: 2026年6月


目录

  1. 概述
  2. 编程核心规则
  3. 编程标准流程
  4. 三大基础宏程序
    • 4.1 O9832 — 测头开启
    • 4.2 O9833 — 测头关闭
    • 4.3 O9810 — 保护定位(测头触发监控)
  5. 标定循环
    • 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. 标准测量循环
    • 6.1 O9811 — XYZ 单面测量
    • 6.2 O9812 — 凸台/凹槽测量
    • 6.3 O9814 — 内孔/外圆测量
    • 6.4 O9815 — 确定内拐角
    • 6.5 O9816 — 确定外拐角
    • 6.6 O9817 — 5点矩形测量
  7. 矢量测量循环
    • 7.1 O9821 — 倾斜平面测量
    • 7.2 O9822 — 倾斜凸台/凹槽测量
    • 7.3 O9823 — 3点内孔/外圆测量
  8. 高级循环
    • 8.1 O9818 — 第4轴测量
    • 8.2 O9819 — PCD 上的内孔/外圆测量
    • 8.3 O9820 — 毛坯余量
    • 8.4 O9834 — 特征到特征数据
    • 8.5 O9835 — 统计过程控制(SPC)刀补更新
    • 8.6 O9843 — 角度测量
  9. 输出变量表
  10. 通用参数说明表
  11. 安装与配置
  12. 完整编程示例
  13. 常见陷阱与注意事项(至少10条)

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章
O9800SupaTouch 优化标定循环第5章
O9801测头标定循环(K1/K4/K5/K0/K2/K-3)第5章
O9804标定球心位置第5章
O9811XYZ 单面测量第6章
O9812凸台/凹槽测量第6章
O9814内孔/外圆测量第6章
O9815确定内拐角第6章
O9816确定外拐角第6章
O98175点矩形测量(外部/内部)第6章
O9821倾斜平面测量(角度输入/XYZ输入)第7章
O9822倾斜凸台/凹槽测量第7章
O98233点内孔/外圆测量第7章
O9818第4轴测量第8章
O9819PCD 上的内孔/外圆测量第8章
O9820毛坯余量第8章
O9834特征到特征数据(XY/Z平面)第8章
O9835统计过程控制(SPC)刀补更新第8章
O9843X或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 双安全机制

每个测量程序应始终遵循以下安全原则:

  1. O9810 保护定位 — 所有测头移动(除触测过程)都应使用 O9810
  2. 先 Z 后 XY — 下降时先 Z 轴,再 XY 移动;退出时先 Z 轴上升到安全高度,再 XY 移动

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.]

参数说明默认值
Ddd=测头编号(多测头系统),D1=测头1D1
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. ; 安全定位

内部机制:

  1. 执行 M19 主轴定向
  2. 发送测头开启 M 代码(通过 O9724 配置)
  3. 如 W1. 被指定,检查测头 LED 状态信号
  4. 返回主程序

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

内部机制:

  1. 发送测头关闭 M 代码(通过 O9724 配置)
  2. 如 W1. 被指定,检查测头已关闭的状态信号
  3. 返回主程序

4.3 O9810 — 保护定位(测头触发监控)

功能: 带测头触发监控的安全移动。一旦测头在移动过程中发生碰撞(意外触测),立即停止移动并发出报警,防止损坏测头或工件。

格式:

G65 P9810 Xx. Yy. Zz. [Ff. Mm. C1.]

参数说明默认值
Xxx=X 轴终点位置必需
Yyy=Y 轴终点位置必需
Zzz=Z 轴终点位置必需
Fff=定位进给率 (mm/min)F3000
Mmm=移动模式: 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.

编程原则:

  1. 所有测头移动(包括接近和退回)都应使用 O9810
  2. 常规移动用较高速率(F3000~F5000)
  3. 接近工件最后一段用较低速率(F500~F1000)
  4. 可通过 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.]

参数说明
Bbb=测球直径 (mm)
Xx 或 Yy优化方向(X 或 Y 之一,必选其一)
Hhh=优化公差 (mm)
Fff=优化进给率 (mm/min)
Uuu=回退过行程增量
Www=超轴外限
Qqq=安全增量
Rrr=接近距离
Zzz=测量高度

示例:

; 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.指定标定测头长度模式
Bbb=测球直径 (mm)
Zzz=在 Z 轴上的标定位置(基准面 Z 坐标)
Ttt=回退量 (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.指定标定偏置和半径模式
Bbb=测球直径 (mm)
Ddd=环规直径 (mm)
M180.启用180°主轴定向(默认启用)
Sss=偏置更新方式
Zzz=标定 Z 位置

示例:

; 使用Φ50.005环规标定,测球直径6mm
G65 P9801 K4. B6. D50.005 M180. Z50.

; 标定后不更新偏置,仅计算
G65 P9801 K4. B6. D50.005 S2. Z50.

标定流程:

  1. 测头移动到环规中心上方
  2. 下降至 Z 测量高度
  3. 在 4 个方向(X+/X-/Y+/Y-)触碰环规内壁
  4. 计算测球偏置和有效半径
  5. 更新到系统偏置存储器

5.4 O9801(K5) — 标准球标定

功能: 在已知直径的标准球上进行标定。适用于无法使用环规的场合,或需要更高的标定灵活性。

格式:

G65 P9801 K5. Zz. Dd. Bb. Tt. [M180. Ee. Xx. Yy.]

参数说明
K5.指定标准球标定模式
Zzz=在 Z 轴上的标定位置
Ddd=标准球直径 (mm)
Bbb=测球直径 (mm)
Ttt=回退量 (mm)
M180.启用180°主轴定向
Eee=标准球在 Z 轴上的位置偏差
Xxx=标准球中心 X 位置
Yyy=标准球中心 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) — 其他标定模式

K值功能格式说明
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标定球直径
Qq安全增量
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被测量表面的标称位置必需
Eee=过行程距离 (mm)Z=4, XY=10
Fff=测量进给率 (mm/min)机床设定
Hhh=公差 (mm) — 超差时报警关闭
Mmm=位置度公差 (mm)关闭
Qqq=安全增量 (mm)30
Sss=偏置更新方式S1=更新
Ttt=回退量 (mm)2
Uuu=经验值 Ee (mm) — 补偿磨损/热漂移0
Vvv=验证模式 (%)关闭
Www=过行程判断 (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.]

附加参数说明
Rrr=快速定位接近距离 (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.]

参数说明
Ddd=特征标称直径 (mm)
Zzz=测量高度位置
Rrr=接近距离:内孔≈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.]

参数说明
Xxx=拐角标称 X 位置
Yyy=拐角标称 Y 位置
Bbb=角度公差 (°) 如 B0.25=±0.25°
Ddd=X 轴距拐角到第一测量点的距离
Eee=Y 轴距拐角到第一测量点的距离
Iii=第二测量点沿 X 的增量距离
Jjj=第二测量点沿 Y 的增量距离
Zzz=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.]

参数说明
Ddd=X 轴上的特征标称长度
Eee=Y 轴上的特征标称长度
Zzz=Z 测量高度位置(仅外部特征需要)
Aaa=测量面: A14=默认, A12=顶面, A11=右面, A13=左面
Bbb=角度公差 (°)
Hhh=P2/P4 点在 X 上相对于左下角的位置
Ttt=同一面上两测量点间距
Vvv=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.]

参数说明
Aaa=对应平面的角度 (°)
Ddd=从特征中心到测量点的距离
Xx/Yy/Zz测量点的坐标位置
Ccc=平面的测量面: 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.]

参数说明
Aaa=特征的角度 (°)
Ddd=特征在 X 轴上的标称长度/直径
Zzz=测量高度

示例:

; 倾斜凹槽,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.]

参数说明
Aaa=第一点的角度 (°)
Bbb=第二点的角度 (°)
Ccc=第三点的角度 (°)
Ddd=特征标称直径 (mm)
Zzz=测量高度

示例:

; 在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.]

参数说明
Kkk=模式: 1=B轴上下, 2=B轴左右, 3=A轴外部, 4=外部到中心
Bbb=角度公差 (°)
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.]

参数说明
Ccc=节圆直径 (PCD) 标称值
Ddd=孔/外圆直径
Kkk=内孔模式用的 Z 测量高度
Aaa=起始角度 (°)
Bbb=角度公差 (°)

示例:

; 内孔模式: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被测量表面的标称位置
Iii=X 轴测量起始位置(Y/Z 方向余量时)
Jjj=Y 轴测量起始位置(X/Z 方向余量时)
Kkk=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.]

参数说明
Ttt=刀具偏置号
Mmm=更新模式: M31=平均值更新
Vvv=更新量限值(超过此值不更新)
Ccc=测量样本数量
Fff=测量进给率
Zzz=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测量表面的标称位置
Ddd=测量间距(两测量点之间的距离)
Aaa=第4轴角度用于补偿 (°)
Bbb=角度公差 (°)

示例:

; 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 各循环输出变量对照表

宏号功能#135#136#137#138#139#140#141#142#143
O9811单面测量实测位置测量轴方向偏差
O9812凸台/凹槽X中心Y中心实测宽度标称宽度宽度偏差
O9814内孔/外圆X中心Y中心Z高度实测直径圆度标称直径直径偏差
O9815内拐角X拐角Y拐角X面角度X偏差Y面角度Y偏差
O9816外拐角X拐角Y拐角X面角度X偏差Y面角度Y偏差
O98175点矩形X中心Y中心Z高度X实测长度旋转角度Y标称长度X偏差Y实测Y偏差
O98233点测量X中心Y中心实测直径圆度
O9818第4轴方向偏差位置旋转中心偏差
O9819PCDPCD中心XPCD中心Y实测PCDPCD偏差
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备份 #135X 位置 / 第一值
#501备份 #136Y 位置 / 第二值
#502备份 #137Z 位置 / 第三值
#503备份 #138直径 / 宽度
#504备份 #139角度 / 圆度
#505备份 #140标称值
#506备份 #141偏差值
#507备份 #142第二角度 / Y 实测
#508备份 #143Y 偏差

10. 通用参数说明表

10.1 所有测量循环通用参数

以下参数适用于所有测量循环(O9811~O9823),除非另有说明:

参数字母含义默认值说明
过行程距离Ee测头移出预期位置的距离 (mm)Z=4, XY=10触测后继续移动的距离,用于补偿位置偏差
测量进给率Ff触测时的进给速度 (mm/min)机床设定建议用低速获得高精度,0.5~2 mm/min 常用
公差值Hh特征尺寸公差 (mm)关闭超差时触发 O9700 报警
位置度公差Mm理论位置周围的圆柱形公差区 (mm)关闭评估中心位置是否在允许范围内
安全增量Qq接近测量面之前的回退距离 (mm)30测触测后的回退,准备下一次接近
接近距离Rr快速定位到测量位置的距离 (mm)循环相关内孔≈2×半径,外圆=直径+增量
偏置更新方式Ss测量结果如何更新到工件偏置S1=更新1=更新当前, 2=不更新, 3~6=更新至G54~G57
回退量Tt触测后的回退距离 (mm)2确保测针离开工件表面
经验值 EeUu工具磨损/热漂移补偿量 (mm)0机床热变形预补偿
验证模式Vv测量值与标称值的偏差百分比验证 (%)关闭用于发现严重偏差(如碰撞后)
过行程判断Ww判断测头是否过行程 (mm)3超过此值视为异常触测

10.2 Ss 偏置更新方式详解

S值行为说明
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.010O9810 中 C1 使用的到位精度
#111+6回退系数0.5调整触测后回退距离,值域 0.1~2.0
#111+9快速定位进给率 (mm/min)3000O9810 保护的快速移动速率

10.4 测头编号约定

编号说明
D1测头1(默认,工件测量用)
D2测头2(可通过 O9724 配置)
D3测头3
更多测头可通过 O9724 配置

测头编号仅在 O9832(开启测头) 中使用 Dd. 参数指定。O9833(关闭测头)不接收 D 参数


11. 安装与配置

11.1 软件安装

内容: 软件工具包 A-4012-0516

内存要求:

  • 8KB 宏程序存储空间(约 20m 纸带长度)
  • Fanuc 系统需开启宏程序功能(参数 8000 系列)

安装方式(推荐:使用安装向导):

  1. 将 CNC 设为 EDIT 模式
  2. 装入包含安装向导的纸带/存储卡
  3. 运行安装程序,自动加载所有宏程序

手动配置(如安装向导不可用):

  1. 将各宏程序(O9700~O9843)逐个通过纸带/CF卡/RS232 加载到 CNC
  2. 确保宏程序号与系统中现有程序号不冲突
  3. 编辑 O9724(设置程序)配置机床特定参数

11.2 机床参数设置

参数设置说明
参数 6006Bit4=1启用宏程序预读控制
参数 6019Bit4=1启用宏程序存储器
参数 5006Bit6=1启用变量读取

11.3 单位制设置

发那科系统使用 G20/G21 切换单位制:

G21 ; 公制(mm)— 推荐
G20 ; 英制(inch)

所有循环均按公制编写。如使用英制模式,变量中的数值将自动转换,但公差和位置度参数按编程时的单位系统输入。

11.4 多测头配置

通过编辑 O9724 程序启用多测头支持:

  1. 读取 O9724 程序
  2. 找到多测头设定区域
  3. 启用 #120 中的相应位
  4. 设定各测头的开启/关闭 M 代码

测头选择示例:

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/ZzFf. Mm. C1.
O9801标定Kk. Bb.Dd. Zz. Tt.
O9811单面测量Xx/Yy/ZzSs. Qq. Tt.
O9812凸台/凹槽Xx/YyZz. Rr. Ss.
O9814内孔/外圆Dd.Zz. Rr. Ss.
O9815内拐角Xx. Yy.Ii. Jj.
O9816外拐角Xx. Yy.Ii. Jj.
O98175点矩形Dd. Ee.Zz. Aa. Bb.
O98233点测量Aa. Bb. Cc. Dd.Zz. Ss.
O9834特征到特征Xx/Yy/Zz/AaBb. Mm.
O9843角度测量Xx/Yy. Dd.Aa. Bb.

A.2 输出变量速查

变量O9814O9811O9812O9817O9823O9834O9843
#135中心X实测值中心X中心X中心XX偏差第一点
#136中心Y中心Y中心Y中心YY偏差第二点
#137Z高度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)为准。

相关阅读