发那科系统下 Inspection Plus vs MIDA 宏程序编程差异
文章版本: v2.0(技术审核扩写版)
文章主题: 雷尼绍 Inspection Plus 与 马波斯 MIDA 在 FANUC 系统上的宏程序体系深度对比
适用系统: FANUC 0i 系列 / 16i / 18i / 21i / 30i 系列(Custom Macro B)
编制单位: 由宁波匠测科技(专注工业精密测量15年)根据官方手册及现场案例原创编制
关键词: FANUC、Inspection Plus、MIDA、宏程序、测头、对刀仪、G65、机内测量
目录
- 一、概述
- 二、调用方式差异
- 三、循环编号体系对比
- 四、参数传递方式差异
- 五、系统变量使用差异
- 六、软件包版本分级
- 七、兼容性
- 八、完整测量调用示例
- 九、实际应用场景分析
- 十、常见问题与故障排除
- 十一、性能与精度对比分析
- 十二、程序调试与优化技巧
- 十三、总结
一、概述
在 FANUC CNC 平台上,Inspection Plus(雷尼绍) 与 MIDA(马波斯) 是两大主流的机内测量宏程序软件包。两者都基于 FANUC 的 Custom Macro B 能力,通过 G65 调用子程序实现标定、安全定位、测量与补偿写入。但由于两家公司的历史渊源不同、产品体系各异,宏程序在 调用编号、参数约定、变量分配、版本分级 等方面存在显著差异。
1.1 两大软件包的历史背景
雷尼绍(Renishaw) 成立于 1973 年,总部位于英国格洛斯特郡,是全球测头技术的先驱。其 Inspection Plus 软件包最早于 20 世纪 80 年代末期伴随 FANUC 6M 系统推出,经历了从早期 O980x 系列到现代 O98xx/O97xx 编号体系的演变。经过 30 多年的迭代,Inspection Plus 已成为全球加工中心上部署最广泛的测头宏程序软件包,装机量超过数十万套。
马波斯(Marposs) 成立于 1952 年,总部位于意大利博洛尼亚,在磨床测量和刀具监控领域拥有深厚积累。MIDA 软件包是马波斯进入加工中心测头市场后的核心产品,最初以对刀仪(Tool Check)见长,随后在工件测量(Part Check)领域逐步完善。MIDA 在汽车动力总成生产线和高端模具制造中占有重要地位。
设计哲学的根本差异:Inspection Plus 将测头视为工件找正和尺寸检测的传感器,因此工件测量循环是其核心,对刀仪功能委托给 FANUC 系统原生的 G37 指令完成。而 MIDA 将测头系统视为一个完整的测量平台,工件测量和对刀仪测量是两套平行且独立的宏程序体系,各自拥有完整的标定、测量、完整性检查和数据输出功能。
1.2 为什么需要理解这些差异
对于一个需要同时使用雷尼绍测头和马波斯对刀仪的车间(常见配置如:OMP40-2 测工件 + T25 对刀仪),理解这些差异是从容编程的前提。此外,随着智能制造和刀具全生命周期管理需求上升,越来越多的企业开始在同一台机床上混用两家产品。掌握两种宏程序体系的异同,是设备调试工程师和工艺编程人员不可或缺的技能。
1.3 市场格局与生态位
从全球市场装机量来看,Inspection Plus 在传统三轴加工中心和模具制造领域占据主导地位,特别是在亚洲市场,雷尼绍通过代理体系建立了广泛的分销网络。MIDA 则在欧洲汽车制造、动力总成生产线和高端车铣复合领域拥有深厚根基,马波斯的"测量+监控"一体化方案在集成度要求高的场景中更受欢迎。
值得注意的是,机床制造商(OEM)的预装选择往往决定了最终用户的体验路径。例如:
- 日本大隈(Okuma)的 Thermo-Friendly Concept 机床标配雷尼绍系统
- 意大利的 FPT、Jobs 等五轴机床厂商更倾向预装马波斯系统
- 德玛吉森精机(DMG MORI)根据不同机型两种系统都有支持
这种 OEM 绑定效应意味着,一个工艺工程师在不同品牌的机床之间切换编程时,很可能需要同时掌握两套宏程序体系。
1.4 技术趋势:从宏程序到图形化编程
需要指出的是,无论是 Inspection Plus 还是 MIDA,都在向图形化编程界面演进。雷尼绍的 Set and Inspect App 和马波斯的 Ready2Probe 都提供了触摸屏图形操作界面,用户在平板上选择测量特征、输入参数即可自动生成 G65 调用代码,无需手动编写宏调用。但这并不意味着宏知识变得过时——理解和调试生成代码、处理异常情况、优化测量路径等高级应用仍然需要宏程序知识作为基础。这也正是本文的价值所在。
二、调用方式差异
2.1 共同基础:G65 宏程序调用
两大软件包均采用 FANUC G65 非模态调用方式:
G65 P9xxx [地址参数...]
与 G66(模态调用)不同,G65 每次调用独立传递参数,调用结束后释放局部变量 #1~#26、#33。两者都明确禁止使用 G66 模态调用——因为测头循环需要精确控制每一步的进给与安全逻辑,模态调用可能导致参数残留或意外的循环嵌套。
2.2 核心差异:编号区间
| 维度 | Inspection Plus | MIDA |
|---|---|---|
| 工件测量 O 号前缀 | O98xx / O97xx | O93xx / O91xx / O90xx |
| 对刀仪/工具测量 O 号前缀 | O97xx(同工件测量共用区间) | O93xx(P937x/P938x) |
| 标定主程序 O 号 | O9801、O9802、O9803、O9804 | O9301(工件)/ O9376(对刀仪) |
| 安全定位宏 | P9810(O9810) | P9311(O9311) |
| 调用示例 | G65 P9810 Z-5. F3000 | G65 P9311 Z-5. F3000 |
- Inspection Plus 的宏编号集中在 O97xx ~ O98xx 区间,标定使用 O9801~O9804,测量使用 O9810~O9843 等。安全移动使用 P9810,这也是雷尼绍最具识别度的宏之一。
- MIDA 的宏编号集中在 O93xx 区间,部分车床功能使用 O90xx / O91xx。对刀仪(Tool Check)使用 P937x/P938x,工件测量(Part Check)使用 P93xx/P935x/P931x/P933x 等。
2.3 关键对比:是什么 O 号决定了系统归属
在车间现场,快速区分一个宏所属系统的最简单方法就是看 O 号:
O98xx / O97xx → Inspection Plus (雷尼绍)
O93xx / P937x → MIDA (马波斯)
2.5 M 代码与宏程序的协同
在完整的测头测量流程中,G65 宏调用只是其中的一环。前置的测头使能、后置的测头禁能、信号复位等操作通常通过 M 代码实现。两种软件包在 M 代码管理上存在一些差异:
Inspection Plus 典型的 M 代码序列:
M50 (打开测头光学接收器/测头使能)
G04 X1. (等待测头稳定,约 1 秒)
G65 P9810 Z-5. F3000 (安全定位)
G65 P9814 D50. Z-20. F1000 (测量)
G65 P9810 Z100. F3000 (安全退回)
M51 (关闭测头光学接收器/测头禁能)
MIDA 典型的 M 代码序列(通过 E32U 管理):
M303 (通过 E32U 打开探头 1 号通道)
G04 X0.5
G65 P9311 Z-5. F3000 (安全定位)
G65 P9312 A1 D50. E5. F1000 R50. (测量)
G65 P9311 Z100. F3000 (安全退回)
M304 (关闭探头通道)
差异点:
- Inspection Plus 的 M 代码(M50/M51)由机床制造商定义,不同机床厂家可能使用不同的 M 代码,需要查阅机床手册确认
- MIDA 通过 E32U 模块管理探头通道,M303/M304 是马波斯定义的标准 M 代码,在不同机床上具有较好的一致性
- 两种系统都要求在测头使能后加入
G04暂停指令等待信号稳定,时间通常为 0.5~2 秒
2.4 P9901 初始化宏的差异
Inspection Plus 提供了一个特殊的 P9901 初始化宏,用于在程序开始处加载系统参数配置。该宏会自动设置 Stand-off distance、Overtravel distance 和触测进给速度等全局参数。调用方式为:
G65 P9901 (加载默认配置)
而 MIDA 对应的初始化宏是 P9360 / O9360,用于装载 O9366 中存储的系统配置变量(#100~#150 系列)。如果 O9366 中的配置已被修改或丢失,调用 P9360 可以重新加载出厂默认值。
差异要点:Inspection Plus 的 P9901 更侧重于"软配置"——它读取内置参数表进行初始化;MIDA 的 P9360 则直接访问系统变量区(#100~#150),配置数据的存储位置对用户透明,更易于调试和修改。
2.5 G65 调用中常见陷阱
两种系统在使用 G65 调用时都存在一些共通的陷阱:
-
浮点数精度问题:FANUC 宏程序使用 32 位浮点数,约 7 位有效数字。当传递直径 1234.567mm 这样的参数时,可能因舍入误差导致测量偏差。建议将关键尺寸在注释中记录并事后验证。
-
参数省略的默认行为:Inspection Plus 中省略参数通常使用内置的 #500 系列默认值;MIDA 中省略关键参数(如 E 接近距离)可能导致循环使用危险的安全间隙值。编程时养成显式传递所有关键参数的习惯是最佳实践。
-
地址复用冲突:FANUC G65 中同一字母不能同时用作两种含义。例如 MIDA 使用 H 参数传递刀补号(#11),Inspection Plus 则未使用 H 参数——这点在两种系统之间切换编程时容易混淆。
三、循环编号体系对比
3.1 标定循环
| 功能 | Inspection Plus | MIDA |
|---|---|---|
| 测头长度标定 | O9801 | O9301(标准六面标定)/ P9376(对刀仪标定) |
| 测针 X/Y 偏置 | O9802 | O9301(集成在标定循环中) |
| 球径标定 | O9803 | O9303(三点直径标定,Premium/Ultimate) |
| 矢量测针球径标定 | O9804 | O9302(斜角标定,Premium/Ultimate) |
| 对刀仪自动标定 | 无(依赖 G37 系统参数) | P9376(自动标定)、P9386(手动标定) |
| 偏置更新宏(Offset update) | O9732 | 无独立宏(通过系统变量读取) |
标定宏的设计哲学差异:
Inspection Plus 将标定拆分为四个独立的宏(O9801~O9804),每个宏只完成一个特定的标定任务。这使得用户可以根据需要只运行部分标定流程,例如更换测针后只执行 O9802(测针偏置标定)而不必重新做全长标定。
MIDA 则将工件的长度和偏置标定集成在 O9301 一个宏中(标准六面标定),通过系统的八个方向触测同时确定长度和偏置。这种"一站式"设计简化了操作流程,但缺乏灵活性——更换测针后必须完整执行整个标定序列。高级功能(球径标定 O9303、斜角标定 O9302)仅在 Premium 及以上版本提供。
对刀仪标定的差异尤为显著:Inspection Plus 没有独立的对刀仪标定宏,对刀仪的精度管理完全依赖 FANUC 系统的 G37/G36 参数设定。而 MIDA 提供了 P9376(自动标定)和 P9386(手动标定)两个专用宏,使用标准样棒完成对刀仪位置和触测灵敏度的自动标定,能够补偿因温度漂移或机械变形导致的测量偏差。对于需要高精度刀具管理的车间,这是一个重要的差异化优势。
3.2 工件测量循环
| 功能 | Inspection Plus | MIDA |
|---|---|---|
| 安全定位移动 | P9810 | P9311 |
| 单面测量 | P9811 | P9314 |
| 内孔/外圆测量 | P9814 / P9815 / P9816 | P9312 |
| 腹板/型腔测量 | P9812 | P9313 |
| 角点检测 | P9821(斜角单面) | P9315(内/外角) |
| 三点直径测量 | P9823(3-point bore/boss) | P9335(Premium/Ultimate) |
| 多点直径测量 | 无标准宏(需定制) | P9392(Premium/Ultimate) |
| 孔系(PCD)测量 | P9819(Bore/boss on PCD) | —(通过 O932x 多工件面实现) |
| 余量测量(Stock Allowance) | P9820 | P9338(Ultimate) |
| 倾斜测量(XY 角度) | P9843(XY plane angle) | P9318(XY 倾斜检测) |
| 特征间测量(Feature-to-feature) | P9834 | —(需组合多个循环) |
| 4 轴辅助测量 | P9817(4th axis X)、P9818(4th axis Y) | O9098/O9110(C 轴标定/搜索,Premium+) |
规律性发现:阅读上面的对比表可以发现一个规律——Inspection Plus 倾向于为不同功能分配不同宏号,而 MIDA 倾向于用同一宏号加参数区分功能。 具体来说:
- Inspection Plus 的内孔测量用 P9814、外圆测量用 P9815、外圆多点测量用 P9816——三个宏号对应三个功能。
- MIDA 的 P9312 通过参数 A 区分:A1=内孔(Bore)、A2=外圆(Boss)、A3=内孔+外圆对比——一个宏号覆盖多种功能。
这种差异对编程习惯的影响很大。Inspection Plus 风格下,程序员记忆一组功能对应的宏号即可,代码可读性好,不需要在调用处查找参数说明。MIDA 风格下,宏号数量少,但需要查阅参数含义才能理解代码,适合有统一编程规范的团队。
3.3 对刀仪/工具测量循环
| 功能 | Inspection Plus | MIDA |
|---|---|---|
| 刀具长度测量(同心) | 依赖 G37 系统指令 | P9377 |
| 刀具半径测量 | 依赖 G37 2D 扩展 | P9377(集成在循环中) |
| 非同心刀具测量 | 不支持 | P9378 |
| 单刀刃测量 | 不支持 | P9388 |
| 手动长度测量 | 依赖 G37 | P9387 |
| 同心刀具完整性检查 | 不支持 | P9379 |
| 非同心刀具完整性检查 | 不支持 | P9380 |
| 激光对刀 | 不支持 | 专用激光包(MARPOSS1~9) |
这里有一个根本性的设计哲学差异:Inspection Plus 专注于 工件测量,对刀仪功能依赖 FANUC 系统原生 G37 指令补足;而 MIDA 将对刀仪(Tool Check)和工件测量(Part Check)设计为两套平行且独立的宏程序体系,各自有自己的标定、测量和完整性检查循环。
G37 与专用宏的取舍:FANUC 的 G37 自动刀具测量功能是一种系统级功能,直接从 PMC 层处理触测信号,响应速度快。但 G37 的局限也很明显——它只能做简单的长度和半径测量,不支持非同心刀具、单刀刃检查、刀具完整性检查等高级功能。此外,G37 的行为由系统参数(如 #6200、#6250 等)控制,调试不直观。
G37 参数的详细说明:
| 参数 | 功能 | Inspection Plus 推荐值 |
|---|---|---|
| #6200#0 (SKIP) | SKIP 信号类型,0=通常为常开 | 根据测头接口类型设定 |
| #6200#4 | G37 触测方向,0=正方向,1=负方向 | 通常设为 1(Z 轴负方向) |
| #6250 | G37 最大触测行程,设定范围 0~32767(脉冲数) | 通常设为 20000~30000 |
| #6251 | G37 进给速度上限 | 与触测进给 F 匹配 |
| #6252 | G37 超程极限 | 设为对刀仪保护距离 |
G37 使用中的常见错误:
- 未执行 G36 限位设定——直接使用 G37 可能因行程过长导致碰撞
- 进给速度过高——G37 的跳步响应与 G31 共享相同的硬件中断,进给速度建议不超过 F1000
- 坐标系错误——G37 在 G91 增量模式下工作,执行前需要确保模式正确
- 刀补号写入冲突——G37 自动写入当前激活的刀补号,如果 H 代码设置错误会导致写入错误的补偿寄存器
MIDA 的 P937x/P938x 系列宏在 G31 跳步指令基础上实现了自己的触测逻辑,完全绕开了 G37 的限制。这样做的好处是功能丰富、不受系统参数约束;代价是触测逻辑不如 G37 级别"底层",在极高进给率下可能存在响应延迟。实际应用中,P9377 在 FANUC 30i 系统上以 F3000 的进给触测时,重复精度仍可达到 ±2μm,完全满足大多数加工需求。
对刀仪支持广度差异的影响:对于仅使用标准同心刀具(铣刀、钻头、丝锥)的车间,Inspection Plus 配合 G37 完全够用。但如果涉及非同心刀具(镗刀、角铣头、可调刀盘)或需要刀具完整性在线监控,MIDA 的对刀仪体系具有不可替代的优势。
3.4 特殊循环与高级功能
除常规测量外,两种系统还提供一些特殊功能循环:
| 功能 | Inspection Plus | MIDA |
|---|---|---|
| 铣削中心找正 | P9814/P9815(结合 W 参数) | P9312(结合 A 参数) |
| 回转工件测量 | P9817/P9818(4 轴辅助) | O9098/O9110(C 轴测量) |
| 多测针管理 | O9830/O9831 | #127/#128 系统变量 + C 参数 |
| 热补偿监控 | 无标准宏 | P9379/P9380(刀具完整性+热漂移) |
| SPC 数据输出 | P9835 | O9160-O9168(Ultimate) |
| 报告生成 | 通过串口输出 | #117 配置以太网/串口 |
3.5 宏程序命名规范与用户自定义扩展
Inspection Plus 的用户宏预留机制:
Inspection Plus 在编号体系中预留了 O97xx 区间用于用户自定义宏。例如,用户可以将常用的测量序列(如"定位→测孔→更新坐标系→退刀")编写为一个自定义宏,存放在 O9701~O9732 区间。雷尼绍官方提供的 O9732(偏置更新宏)也在这个区间内。
MIDA 的用户宏扩展方式:
MIDA 的用户自定义主要通过以下两种方式实现:
- O9366 系统配置扩展:通过修改 #100~#150 参数值来改变宏程序行为,不需要修改宏程序本身。
- 用户自定义宏区间:MIDA 建议用户在 O9500~O9999 区间存放自定义宏,但需要注意避开 MIDA 系统占用的 O93xx/O90xx/O91xx 区间以及 O936x 配置区间。
自定义宏注意事项:
- 无论使用哪种系统,自定义宏都应避免使用与系统宏冲突的 O 号
- 自定义宏中使用的 #500 系列变量应在变量映射表中登记
- 建议在自定义宏的头部添加明确的注释,说明宏的功能、参数含义和修改记录
四、参数传递方式差异
4.1 共同点
两者都遵循 FANUC 的 G65 地址参数映射规则(16 个标准地址,对应 16 个局部变量):
| 地址 | 变量 | 地址 | 变量 | 地址 | 变量 | 地址 | 变量 |
|---|---|---|---|---|---|---|---|
| A | #1 | B | #2 | C | #3 | D | #7 |
| E | #8 | F | #9 | H | #11 | I | #4 |
| J | #5 | K | #6 | M | #13 | Q | #17 |
| R | #18 | S | #19 | V | #22 | W | #23 |
| X | #24 | Y | #25 | Z | #26 |
FANUC 宏程序参数传递的底层机制:当 G65 被调用时,CNC 自动将指定的地址参数值写入对应的 #1~#26 局部变量。在宏程序内部,这些变量可以被读取、参与运算、用于条件判断。调用返回后,这些局部变量自动释放(变为空值)。这意味着:
- 宏程序的行为完全由传入参数决定——相同宏号传入不同参数可产生完全不同的测量逻辑。
- 参数之间可以独立传递——不需要像子程序调用那样按固定顺序传参。
- 省略参数相当于传空值——宏程序内部需要处理空值情况(例如 MIDA 中省略 E 参数时使用 #104 中的安全间隙默认值)。
4.2 参数习惯差异
Inspection Plus 的典型参数用法
| 参数 | 常见含义 | 示例 |
|---|---|---|
| D | 名义直径/尺寸(环规内径、孔直径) | D25. 表示 Ø25mm |
| Z | Z 轴目标位置(标定面、测量点) | Z_ring_top |
| F | 进给速度 mm/min | F3000 |
| Q | 公差/偏差相关 | Q1 启用自动写入 |
| W | 工件坐标系号/刀补号 | W55 写入 G55 |
| U | 公差上限 | U0.1 |
| V | 公差下限 | V-0.1 |
示例 — Inspection Plus 内孔测量:
G65 P9814 D25. Z-10. F1000 Q1 W55 U0.1 V-0.1
- D25. = 名义直径 25mm
- Z-10. = 测量深度
- Q1 = 启用自动更新坐标偏置
- W55 = 写入 G55 工件坐标系
- U0.1 / V-0.1 = 公差带
MIDA 的典型参数用法
| 参数 | 常见含义 | 示例 |
|---|---|---|
| A | 测量类型/模式选择(1=内孔,2=外圆,等) | A1 内孔测量 |
| B | 角度/第二测量方向 | B90 90°角点 |
| D | 名义直径/宽度/坐标值 | D50. |
| E | 接近距离(Approach distance)— 类似安全间隙 | E5. |
| I/J | X/Y 轴偏移量 | I0 J0 |
| H | 写入的刀补号(对刀仪循环) | H1 写入 #2001 |
| F | 半径刀补号(对刀仪循环,可选) | F1 |
| R | 安全平面绝对坐标 | R50. |
| C | 探头编号(多探头系统) | C1 |
| K | 超差公差 / 测点数 | K0.05 |
示例 — MIDA 内孔测量:
G65 P9312 A1 D50. E5. I0 J0 F1000 R50.
- A1 = 内孔测量(Bore)
- D50. = 名义直径 50mm
- E5. = 接近距离 5mm
- I0 J0 = 无偏移
- F1000 = 触测进给
- R50. = 安全平面 Z=50
参数命名风格的深层含义:Inspection Plus 使用 U/V 表示公差上下限,这类似于 ISO 公差标注中的 ∅50H7 (+0.025/0) 表达方式,对机械工程师直觉友好。MIDA 使用 K 表示公差,更适合欧洲用户习惯(K 来自德语 “Korrektur” 或意大利语 “Correzione”)。两种风格没有优劣之分,但了解其文化背景有助于记忆。
4.3 核心差异总结
| 差异维度 | Inspection Plus | MIDA |
|---|---|---|
| 类型选择 | 不同宏号对应不同功能(P9814=孔,P9812=腹板) | 同一宏号通过 A 参数区分类型(P9312 A1=孔,A2=外圆) |
| 安全间隙 | 由内置变量 #506(Stand-off)控制 | 由调用参数 E(接近距离)显式传递 |
| 公差传递 | 通过 U/V 参数传递上下公差 | 通过 K 参数传递公差(单值对称公差) |
| 坐标更新 | 通过 Q/W 参数组合(Q=使能、W=坐标系号) | 通过 #123 系统变量(O9366 配置)使能 |
| 刀补写入 | 自动通过 Q 参数触发 | 对刀仪用 H/F 参数,工件测量通过系统变量控制 |
| 结果存储 | 写入 #500 系列变量(由 #501~#505 等定义) | 写入 #137 指向的偏移量开始的 #500 系列 |
参数模式的转换成本:要求一个团队从 Inspection Plus 切换到 MIDA(或反之)时,最大的学习成本不在宏号记忆,而在于参数思维模式的转换。Inspection Plus 的"不同宏号=不同功能"模式让代码更自文档化(self-documenting),阅读代码时不需要对照手册查阅参数含义。MIDA 的"同宏号+参数"模式减少了宏号记忆量,但增加了代码理解的间接性,需要程序员对 A/B/D/E 等参数的含义有清晰认识。
4.4 参数扩展与高级用法
在标准参数之外,两种系统都支持通过多行 G65 调用组合实现复杂测量序列:
Inspection Plus 多步骤组合:
G65 P9810 Z5. F3000 (安全定位到 Z5)
G65 P9811 X0. F1000 Q1 W54 (X 方向单面测量)
G65 P9810 Z5. (退回安全高度)
G65 P9811 Y0. F1000 Q1 W54 (Y 方向单面测量)
MIDA 相同逻辑:
G65 P9311 Z5. F3000 (安全定位到 Z5)
G65 P9314 A1 X0. F1000 R5. (X 方向单面测量,A1=正方向)
G65 P9311 Z5. (退回安全高度)
G65 P9314 A3 Y0. F1000 R5. (Y 方向单面测量,A3=正方向)
注意上方 MIDA 示例中使用 A1/A3 区分 X/Y 方向——A1 表示+X 方向触测,A3 表示+Y 方向触测。这种通过 A 参数进行方向选择的方式是 MIDA 的特色,比 Inspection Plus 按宏号区分更加灵活。
4.5 参数传递的高级技巧与边界情况
情况一:传递超大直径值
当名义直径 D 参数超过 999.999mm 时,FANUC 宏程序的浮点数表示可能出现精度损失。例如传递 D1234.567,实际内部存储的 #7 可能为 1234.56701 或 1234.56699,产生约 ±0.001mm 的误差。对于超大尺寸的测量(如风电齿轮箱壳体),建议将名义直径拆分为两步:先用较大的安全间隙进行粗定位,再用精确参数进行精密测量。
情况二:公英制混用
FANUC 系统可以通过参数 #1201 在公制和英制之间切换。但 Inspection Plus 和 MIDA 的宏程序内部通常假定使用公制单位(mm)。如果在英制环境下调用测量宏,传递的 D、Z、F 等参数会被宏程序内部当作英制数值处理,导致测量结果偏差。解决方案:在调用测量宏之前使用 G21(公制模式)强制切换到公制,测量完成后再切换回英制。
G20 (英制模式)
...
G21 (临时切换到公制)
G65 P9814 D50. Z-20. F1000 (在公制模式下测量,D=50mm)
G20 (恢复英制)
情况三:参数传递的顺序依赖性
虽然 G65 的参数传递是独立映射到 #1~#26 的,但参数的处理顺序在宏程序内部由开发者定义。例如在 MIDA 的 P9312 循环中,宏程序内部先处理 A 参数(确定测量类型),再处理 D 参数(名义直径),然后处理 E 参数(接近距离)。如果 A 参数的位置在调用语句中被放在后面,宏程序仍然能正确读取——因为 G65 的参数映射是位置无关的。但从编码规范的角度看,建议保持参数传递顺序的一致性,以提高代码的可读性。
建议的统一参数顺序:
| 顺序 | Inspection Plus | MIDA |
|---|---|---|
| 1 | 首先安全定位(P9810) | 首先安全定位(P9311) |
| 2 | 功能宏号 + 直径 D + 深度 Z | 功能宏号 + 类型 A + 直径 D |
| 3 | 进给 F | 接近距离 E + 偏移 I/J |
| 4 | 更新参数 Q/W | 进给 F + 安全平面 R |
| 5 | 公差 U/V | 公差/测点数 K |
五、系统变量使用差异
5.1 公共变量(#500~#999)占用
| 变量范围 | Inspection Plus | MIDA |
|---|---|---|
| #500~#505 | 测量结果存储 | 测量结果存储(默认偏移 0,可通过 #137 调整) |
| #506 | Stand-off distance(安全间隙) | 系统配置 |
| #507 | Overtravel distance(过行程) | 系统配置 |
| #508~#510 | 内部计算变量 | 系统配置 |
| #560~#599 | 自定义/设备特定 | 未占用 |
| #600~#619 | GoProbe / 用户界面配置 | 未占用 |
| #620~#639 | 保留/SPC 数据 | 未占用 |
| #100~#199 | 未系统占用(留给用户) | O9366 系统配置(详见下节) |
Inspection Plus 关键系统变量
#500 = 最后测量结果(直径/宽度等)
#501 = X 轴实测值
#502 = Y 轴实测值
#503 = Z 轴实测值
#504 = 偏差/误差值
#505 = 预留
#506 = 安全间隙(Stand-off distance)
#507 = 过行程距离(Overtravel distance)
#500 系列变量的读写行为:Inspection Plus 在每次测量循环完成后自动更新 #500~#505。这些变量是可读可写的——这意味着用户程序可以在调用循环前后读取 #500 进行自定义逻辑判断,也可以在需要时直接写入修改。例如:
(自定义超差判断逻辑)
G65 P9814 D50. Z-20. F1000
IF [#500 GT 50.05] GOTO 999
IF [#500 LT 49.95] GOTO 999
N999 #3000=100 (OUT OF TOLERANCE)
但需要注意的是,在执行新的测量循环前读取 #500 才有意义——因为新的循环会覆盖 #500 的值。
MIDA O9366 系统配置变量(#100~#150)
MIDA 通过 #100~#150 系列公共变量进行系统配置,通过 O9360 宏程序或手动赋值设定:
| 变量 | 功能 | 典型值 |
|---|---|---|
| #100 | 触发后回退量 | 2.0 mm |
| #101 | 触测进给速度 | 500 mm/min |
| #102 | 快进速度 | 3000 mm/min |
| #103 | 最大移动范围 | 100.0 mm |
| #104 | 安全间隙 | 3.0 mm |
| #105 | 探头过行程极限 | 5.0 mm |
| #106 | 计数延迟 | 50 ms |
| #110 | CNC 类型:1=Fanuc,2=Haas,4=Mitsubishi | 1 |
| #113 | 测头球径半径 | 3.0 mm |
| #119 | 公差检查使能 | 0=关闭,1=启用 |
| #123 | 自动坐标系更新 | 0=不更新,1=更新 |
| #124 | 偏置坐标系号(G54=1…G59=6) | 1 |
| #126 | Z 轴安全高度(绝对坐标) | 50.0 mm |
| #137 | 结果存储起始 #500 偏移 | 0 |
#100~#150 的配置管理策略:MIDA 将这 51 个变量用作系统级配置参数,其优点是所有配置集中管理,修改方便。缺点是在多程序、多任务的复杂应用中,如果配置变量被意外修改(例如,另一段宏程序不小心写入了 #100~#150 区域),会导致测头行为异常且难以排查。建议的做法是:
- 在 CNC 开机时通过 O9360 一次性加载配置
- 对 #100~#150 区域进行写保护(通过 PMC 逻辑)
- 在多系统共存的机床上,为 MIDA 配置变量预留独立的变量区域
变量占区的混用风险:当同一台机床上同时运行 Inspection Plus 和 MIDA 时,#500 系列变量的冲突是需要重点关注的。Inspection Plus 使用 #500~#505 存储测量结果,MIDA 默认也使用 #500~#505。如果两者都通过 #500 来传递测量数据,后执行的循环会覆盖前者的结果。解决方案是调整 MIDA 的 #137 偏移量,例如设 #137=10,使 MIDA 将结果写入 #510~#515,避开 Inspection Plus 的 #500~#505 区域。
变量区域规划建议表(适合 Inspection Plus + MIDA 混用场景):
| 变量范围 | 规划用途 | 归属系统 | 冲突风险 |
|---|---|---|---|
| #100~#150 | 系统配置参数 | MIDA | ⚠️ 高——防止其他程序写入 |
| #200~#269 | 刀具长度补偿(#2001~#2699 的宏变量访问) | 系统 | 低——系统级保护区 |
| #500~#505 | 工件测量结果存储 | Inspection Plus | ⚠️ 中——MIDA 需通过 #137 偏移 |
| #506~#507 | Stand-off / Overtravel | Inspection Plus | 低——仅 Inspection Plus 使用 |
| #510~#515 | MIDA 工件测量结果(偏移后) | MIDA | 低——需确认 #137 设置 |
| #520~#539 | 用户自定义结果缓存 | 用户程序 | 低——建议用户程序使用此区间 |
| #560~#599 | 用户自定义参数 | 用户程序 | 低——自由使用 |
| #600~#619 | GoProbe / iHMI 配置 | Inspection Plus | 低——仅 GoProbe 场景使用 |
| #620~#639 | SPC / 统计过程控制数据 | Inspection Plus | 低——仅 Plus 版使用 |
| #700~#799 | 刀具磨损补偿(#2701~#2799) | 系统 | 低——系统级保护区 |
| #800~#999 | 用户自由使用/机内数据库 | 用户程序 | 低——自由使用 |
建立变量映射表是在多系统共存环境中避免数据冲突的最有效手段。建议在机床的宏程序说明书首页(或作为注释写在第一个程序段中)清晰标注变量占用情况,供所有编程人员参考。
5.2 宏程序内部结构差异
| 特性 | Inspection Plus | MIDA |
|---|---|---|
| 子宏调用深度 | 较浅(通常 2~3 层) | 较深(安全定位→触测→结果计算→输出,4~5 层) |
| M 代码触发 | 部分版本使用 M00/M01 暂停 | 内置暂停逻辑由系统变量控制 |
| 报警机制 | 通过 #3000 内置报警 | 通过 O9366 配置的报警行为(#122) |
| 模态 G 代码管理 | 循环内外独立保存/恢复 | 循环内部自动保存和恢复 G90/G91/G54~G59 等模态 |
| 测头使能/禁能 | 通常由 M 代码外部管理 | 部分循环内置探头开关逻辑 |
调用深度的实际影响:Inspection Plus 的宏调用深度较浅(通常 2~3 层),在 FANUC 系统的宏调用堆栈中占用较少的嵌套层级。这对于那些宏调用嵌套层级有限制的系统(如 FANUC 0i-D 最大 4 层嵌套)来说是一个优势。MIDA 的调用深度可达 4~5 层,在资源受限的系统上可能遇到嵌套深度限制。实际部署时需要在 O9366 中确认系统的参数 #6005(宏调用嵌套深度)是否足够。
M 代码管理的差异:Inspection Plus 将测头的使能和禁用交给外部 M 代码管理(通常是 M50/M51 或 M60/M61,视机床厂家定义而定)。这意味着在调用测量循环之前和之后,用户程序需要显式地打开和关闭测头。MIDA 的部分循环(如 P9377 对刀仪测量)内置了测头开关逻辑,自动在进入循环时打开测头、退出循环时关闭测头,减少了用户编程的遗漏风险。
5.3 局部变量与全局变量的隔离策略
两种系统在处理变量隔离方面也有不同:
Inspection Plus 在测量循环内部大量使用局部变量(#1#26)进行计算,尽量减少对公共变量(#500#999)的写操作。测量结果仅在循环结束时写入 #500 系列,计算过程中的中间值不污染公共变量空间。
MIDA 的循环内部同时使用局部变量和公共变量。配置参数(#100~#150)在循环内部被频繁读取,部分中间计算结果也可能写入公共变量。这意味着 MIDA 的公共变量占用量更高,变量冲突的风险也更大。
建议的变量管理策略:在多系统共存环境中,建议建立详细的变量占用清单(Mapping Table),明确记录每个软件包占用的变量范围。同时,在机床的梯形图(PMC)层面对关键变量的写操作进行监控,防止意外覆盖。
六、软件包版本分级
6.1 Inspection Plus 版本分级
Inspection Plus 分为两个主要层级,外加扩展选件:
| 层级 | 名称 | 说明 | 宏数量 |
|---|---|---|---|
| ✅ Standard(标准版) | Inspection Plus Standard | 基础工件找正与测量:单面测量、孔测量、腹板测量、角点测量、安全定位等 | ~15 个核心宏 |
| 🔷 Plus(增强版) | Inspection Plus(带 Plus 选件) | 含 Standard 全部功能 + 矢量测量、斜角测量、三点圆、特征间测量、余量测量、4 轴测量等 | ~30+ 个宏 |
| 🛠 GoProbe(简化版) | Inspection Plus with GoProbe | 基于 Standard 的用户友好接口,面向操作工而非程序员 | 相同的底层宏 + GUI 层 |
| 📱 Set and Inspect(App 版) | Inspection Plus with Set and Inspect | 触屏图形化界面,通过 iHMI 或外部平板操作 | 同上 + 图形层 |
Standard 与 Plus 的关键差异:
| 功能 | Standard | Plus |
|---|---|---|
| 安全定位 (P9810) | ✅ | ✅ |
| 单面/孔/腹板/角点 | ✅ | ✅ |
| 三点圆标定/测量 | ❌ | ✅ |
| 斜角测量 | ❌ | ✅ |
| 特征间测量 (P9834) | ❌ | ✅ |
| 余量测量 (P9820) | ❌ | ✅ |
| 4 轴辅助测量 (P9817/P9818) | ❌ | ✅ |
| SPC 刀补更新 (P9835) | ❌ | ✅ |
版本升级路径:Inspection Plus 的 Standard 到 Plus 升级需要购买软件选件包(产品代码 A-4012-2xxx 系列)。升级后,原有的 Standard 宏保持不变,Plus 功能以额外宏的形式加载到 CNC 中。这意味着用户可以在升级后继续使用原有的 Standard 程序,不影响现有生产。这是雷尼绍版本管理的一个优点——向后兼容性有保障。
6.2 MIDA 版本分级
MIDA 软件包分为 三个正式层级,工件测量和对刀仪各有自己的版本体系:
工件测量(Part Check)版本
| 层级 | 代码 | 说明 | 代表宏 |
|---|---|---|---|
| 🟢 BASIC | C092*A200A | 基础工件测量:单面、孔、腹板、标定 | O9301, O9311~O9315 |
| 🔵 PREMIUM | C092*A200B | 含 BASIC 全部 + 三点圆、斜测量、双触角点 | O9317, O9318, O9332, O9333, O9334, O9335, O9357~O9358 |
| 🟣 ULTIMATE | C092*A200C | 含 PREMIUM 全部 + 多孔、余量、多工件面、倾斜补偿 | O9325~O9327, O9336~O9338, O9160~O9168 |
版本代码说明:C092*A200A/B/C 中的星号
*为语言代码占位符(D=德语、E=西班牙语、F=法语、G=英语、I=意大利语)。例如 C092G200A 表示英文版 BASIC,C092G200B 表示英文版 PREMIUM,C092G200C 表示英文版 ULTIMATE。
对刀仪(Tool Check)版本
| 层级 | 代码 | 说明 | 代表宏 |
|---|---|---|---|
| 🟢 BASIC | — | 基础对刀:同心刀具长度/半径 | P9376, P9377 |
| 🔵 PREMIUM | — | 含 BASIC + 非同心刀具、单刀刃 | P9378, P9388 |
| 🟣 ULTIMATE | — | 含 PREMIUM + 完整性检查、热漂移检测 | P9379, P9380, P9387 |
车床工件测量(Lathe Part Check)版本
| 层级 | 代码 | 包含功能 |
|---|---|---|
| 🟢 BASIC | — | X/Z 标定、X/Z 单点触测、X 直径测量、Z 沟槽测量 |
| 🔵 PREMIUM | — | + Y/C 轴标定、Y 直径测量、C 轴中心搜索 |
| 🟣 ULTIMATE | — | + A 轴标定、C/A 倾斜度、C/A 径向/端面跳动、槽搜索+原点设定 |
MIDA 版本分级的业务逻辑:马波斯采用三级版本策略(BASIC → PREMIUM → ULTIMATE),逐级增加功能。这与欧洲工业软件常见的"功能金字塔"定价模式一致——入门级覆盖核心需求,中端覆盖扩展需求,高端覆盖全部需求。对于机床制造商(OEM),可以根据目标市场选择预装版本;对于终端用户,可以在后续根据生产需求升级。
Inspection Plus 与 MIDA 版本管理的一个重要差异:Inspection Plus 的 Plus 选件是"附加选件",原有 Standard 功能不受影响;MIDA 的 PREMIUM/ULTIMATE 是"完整替换",新版本的宏程序完全替代旧版本。这意味着 MIDA 用户在升级后,原有的部分宏号可能发生变化或行为不一致,需要在升级后重新验证现有程序。
6.3 版本分级对比总结
Inspection Plus: Standard ──→ Plus (选件)
↓ ↓
O981x-P98xx O982x-P98xx+P983x
MIDA Part Check: BASIC ──→ PREMIUM ──→ ULTIMATE
↓ ↓ ↓
O931x O933x+O935x O932x+O916x
MIDA Tool Check: BASIC ──→ PREMIUM ──→ ULTIMATE
P9377 P9378+P9388 P9379+P9380
6.4 版本选择决策树
以下决策路径可以帮助用户快速确定适合的版本:
是否需要 4 轴/倾斜/矢量测量?
├── 需要 → Inspection Plus Plus / MIDA PREMIUM 或 ULTIMATE
└── 不需要 → 继续判断
是否需要非同心刀具测量或完整性检查?
├── 需要 → MIDA(必须选择 PREMIUM/ULTIMATE 对刀仪版)
└── 不需要 → 继续判断
是否需要 SPC 数据输出/自动报告?
├── 需要 → Inspection Plus Plus (P9835) / MIDA ULTIMATE (O916x)
└── 不需要 → 继续判断
是否需要 C 轴/Y 轴车床测量?
├── 需要 → MIDA LATHE ULTIMATE
└── 不需要 → Inspection Plus Standard / MIDA BASIC(二选一,取决于测头品牌)
七、兼容性
7.1 控制系统兼容性矩阵
| 控制系统 | Inspection Plus | MIDA |
|---|---|---|
| FANUC 0i-D/F | ✅ 完全支持 | ✅ 完全支持(需 Custom Macro B) |
| FANUC 0i-C | ❌ 不支持(无宏 B) | ❌ 不支持(无宏 B) |
| FANUC 16i/18i/21i | ✅ 完全支持 | ✅ 完全支持 |
| FANUC 30i/31i/32i | ✅ 完全支持 | ✅ 完全支持 |
| FANUC 0i-TF(车床) | ✅ 支持(车床版) | ✅ 支持(A4AG05/A5AG13) |
| FANUC Power Motion i | ✅ 支持 | ✅ 支持 |
| FANUC Series 0i-MODEL F Plus | ✅ 完全支持 | ✅ 完全支持 |
| Mitsubishi M80/M800 | ⚠️ 需专用版(A-4012-2106) | ⚠️ 可移植(需调 #110=4) |
| Haas | ✅ 有专用版 | ⚠️ 需改 #110=2 并调参数 |
| Okuma | ✅ 有专用版(OSP) | ⚠️ 需专用移植 |
| Siemens 840D/828D | ⚠️ 需转换为 SPF 格式 | ✅ 有原生西门子版 |
| Heidenhain i530/620/640 | ⚠️ 需专用版 | ❌ 无官方支持 |
| Mazak(Matrix/Smooth) | ✅ 有专用版 | ⚠️ 有限支持 |
FANUC 系统版本演进的影响:随着 FANUC 系统从 0i-D 演进到 0i-F,再到最新的 0i-F Plus,宏程序的兼容性基本得到保障。但需要注意几个关键参数的默认值变化:
- 参数 #6000(宏程序功能):在 0i-F 及以上版本中建议设为 1(启用宏 B 全部功能)
- 参数 #6005(宏调用嵌套深度):建议设为最大值(通常为 4 或 5),以支持 MIDA 的多层调用
- 参数 #6200(SKIP 信号):需要根据测头接口类型正确设置
7.2 FANUC 系统特殊要求
| 要求 | Inspection Plus | MIDA |
|---|---|---|
| Custom Macro B | ✅ 必需 | ✅ 必需 |
| O9000~O9999 可用 | ✅ 需要 | ✅ 需要 |
| 宏程序存储空间 | 约 15~30 KB(视版本) | 约 8~50 KB(视版本) |
| G31 跳步功能 | ✅ 必需 | ✅ 必需 |
| #500~#999 公共变量 | ✅ 需要(至少 #500~#510) | ✅ 需要(至少 #100~#150 + #500 区域) |
| 参数 #6200(SKIP) | ✅ 需正确设定 | ✅ 需正确设定 |
| G37 自动刀具测量 | ⚠️ 对刀仪需要 | ⚠️ 部分版本可选 |
| P/S 报警 #3000 | ✅ 使用 | ✅ 使用 |
存储空间的评估方法:选择软件版本前,建议通过以下方法评估 CNC 的可用宏程序存储空间:
- 在 MDI 模式下,按下
SYSTEM→PMCLAD(或维护菜单),查看宏程序存储区使用率 - 常用的 FANUC 0i-F 标准配置提供 512KB 宏程序存储空间,足够同时容纳两套软件包(总占用约 50~80KB)
- 如果存储空间紧张,可以考虑删除不需要的宏程序(例如,不使用对刀仪功能时删除 P937x/P938x 系列)
7.3 硬件接口差异
| 硬件 | Inspection Plus | MIDA |
|---|---|---|
| 光学接收器 | OIM/OMI-2/OMM-2C(雷尼绍专属) | 不适用(马波斯使用不同通信协议) |
| 信号接口 | 通过 I/O 或串口连接 PMC | E32U 接口模块(核心) |
| 测头通信协议 | 光学/无线电(跳频) | 硬线/光学(通过 E32U 桥接) |
| 对刀仪 | 依赖 FANUC G37 系统功能 | MIDA T25/T30 等 + E32U |
| 多探头支持 | 通过多测针(Multi-stylus O9830/O9831) | 通过 C 参数(#3)和 #127/#128 系统变量 |
| 数据输出 | 串口 RS232 | RS232 / 以太网(#117 配置) |
E32U 接口模块的关键作用:MIDA 的 E32U 模块是整个测头系统的核心枢纽。它承担以下功能:
- 信号中转:将测头触发信号转换为 CNC 可识别的 SKIP 信号
- 多探头管理:最多支持 4 个探头(接触式测头、对刀仪、激光等),通过 C 参数选择
- 协议转换:将马波罗的专有通信协议转换为 FANUC 标准的 I/O 接口
- 诊断功能:提供探头状态、信号强度、触发计数等诊断信息
Inspection Plus 没有对应的独立接口模块——雷尼绍的测头信号直接通过 OMI-2 接收器传入 CNC 的 I/O 点。这种架构更简单,但在多探头管理和协议转换灵活性上不如 MIDA 的 E32U 方案。
7.4 典型混用场景的兼容性问题
常见配置(雷尼绍测头 + 马波斯对刀仪)在实际中需要处理以下兼容性问题:
- O 号冲突:Inspection Plus 占用 O98xx/O97xx,MIDA 占用 O93xx/O90xx,两者互不冲突 ⇒ 可以共存
- #500 系列冲突:两者都使用 #500~#505 存储测量结果 ⇒ 需要协调,可调整 MIDA 的 #137 偏移量
- G37 使用冲突:Inspection Plus 不管理对刀仪 G37,MIDA 对刀仪循环有自己的触测逻辑 ⇒ 不冲突
- 参数空间:总存储需求约 15+20=35KB,FANUC 0i-F 标准配置 512KB ⇒ 通常足够
混用时的变量映射表示例:
变量范围 | 用途 | 归属
#100~#150 | MIDA 系统配置参数 | MIDA
#500~#505 | Inspection Plus 测量结果 | Inspection Plus
#506 | Stand-off distance | Inspection Plus
#507 | Overtravel distance | Inspection Plus
#510~#515 | MIDA 测量结果(当 #137=10) | MIDA
#560~#599 | 用户自定义(自由使用) | 共享
7.5 新旧版本兼容性注意事项
Inspection Plus 版本演进中的兼容性变化:
- v3.x → v4.x:新增了 P9835(SPC 刀补更新)、P9843(倾斜测量)等宏,原有宏行为不变
- v4.x → v5.x:增加了 GoProbe 接口层,底层 O 号不变
- v5.x 及以上:支持 Set and Inspect App,通过 iHMI 或外部平板操作,宏接口不变
MIDA 版本演进中的兼容性变化:
- BASIC → PREMIUM:新增宏(O933x/O935x 系列),BASIC 宏行为保持不变
- PREMIUM → ULTIMATE:新增宏(O932x/O916x 系列),PREMIUM 宏行为保持不变
- 但需要注意:部分早期 MIDA 版本的 O9301 标定循环在升级到最新版后,触测顺序有所调整,可能需要重新标定后使用
八、完整测量调用示例
8.1 示例工件
测量一个 Ø50mm 内孔,名义位置 X0 Y0,深度 Z-20,测量后写入 G54 坐标系偏置,允许公差 ±0.05mm。
8.2 Inspection Plus 示例
%
O1000 (INSPECTION PLUS - HOLE MEASUREMENT EXAMPLE)
(==============================================================)
(使用设备: 雷尼绍 OMP40-2 + OMI-2 接收器)
(软件包: Inspection Plus Standard)
(==============================================================)
(1. 换测头)
T01 M06 (换入测头)
G90 G54 G00 X0 Y0 (定位到孔中心)
G43 H01 Z100. (调取测头刀长补偿到安全高度)
(2. 安全定位到孔口上方)
G65 P9810 Z-5. F3000 (安全向下移动到 Z-5,路上遇障碍急停)
(3. 内孔测量主循环)
( 参数说明:)
( D50. = 名义直径 50mm)
( Z-20. = 测量深度)
( F1000 = 触测进给 1000mm/min)
( Q1 = 启用自动更新工件偏置)
( W54 = 写入 G54 工件坐标系)
( U0.05 V-0.05 = 上下公差带)
G65 P9814 D50. Z-20. F1000 Q1 W54 U0.05 V-0.05
(4. 退刀)
G65 P9810 Z100. F3000 (安全退回)
G91 G28 Z0 (回参考点)
M30
%
执行后变量状态:
#500 = 50.003 (实测直径)
#501 = 0.001 (X 实测偏差)
#502 = -0.002 (Y 实测偏差)
#504 = 0.003 (最大误差)
G54 X 偏置已自动更新 (因 Q1+W54)
8.3 MIDA 示例
%
O2000 (MIDA - HOLE MEASUREMENT EXAMPLE)
(==============================================================)
(使用设备: 马波斯 MIDA 测头 + E32U 接口)
(软件包: MIDA Part Check PREMIUM)
(==============================================================)
(0. 系统配置初始化)
G65 P9360 (加载 O9366 系统配置参数)
(1. 换测头)
T01 M06 (换入测头)
G90 G54 G00 X0 Y0 (定位到孔中心)
G43 H01 Z100. (调取测头刀长补偿)
(2. 安全定位到孔口上方)
G65 P9311 Z-5. F3000 (安全向下移动到 Z-5)
(3. 内孔测量循环)
( 参数说明:)
( A1 = 测量类型 1=内孔 (Bore))
( D50. = 名义直径 50mm)
( E5. = 接近距离 5mm)
( I0 J0 = X/Y 偏移量)
( F1000 = 触测进给 1000mm/min)
( R50. = 安全平面绝对坐标 Z=50)
G65 P9312 A1 D50. E5. I0 J0 F1000 R50.
(4. 超差检查与坐标系更新)
( 注: MIDA 不自动写入坐标系,以下为手动逻辑)
( 检查 #500 (实测直径) 是否在公差内)
IF [#500 GT 50.05] GOTO 900 (超差报警)
IF [#500 LT 49.95] GOTO 900 (超差报警)
(5. 更新 G54 X 偏置 = 当前 G54 X + 实测偏差)
#5221 = #5221 + #501 (G54 X 偏置更新)
#5222 = #5222 + #502 (G54 Y 偏置更新)
(6. 退刀)
G65 P9311 Z100. F3000 (安全退回)
G91 G28 Z0
M30
N900 (超差处理)
#3000 = 100 (HOLE SIZE OUT OF TOLERANCE)
M30
%
MIDA 自动坐标系更新的配置方法:如果希望 MIDA 自动完成坐标系更新,可以在 O9366 中设置以下变量:
#123 = 1 (启用自动坐标系更新)
#124 = 1 (目标坐标系: G54=1, G55=2, ..., G59=6)
设置后,P9312 循环会在测量完成后自动更新指定坐标系的偏置值,无需手动写 #5221 = #5221 + #501 这类逻辑。
8.4 对刀仪对比示例
Inspection Plus 对刀方式(依赖 G37)
(雷尼绍测头系统不包含对刀仪宏程序)
(对刀仪测量依赖 FANUC G37 系统功能)
T02 M06 (换待测刀)
G90 G00 X#501 Y#502 (移到对刀仪中心, #501/#502 预先存储)
G43 H02 Z150. (调刀长补偿到安全高度)
G36 Z-50. (限制 G37 最大行程 50mm — 防撞)
G37 G91 Z-30. F500 (自动对刀:Z 向下探 30mm)
(触发后自动更新 H02 长度补偿)
G90 G00 Z300. (退刀)
M30
MIDA 对刀方式(专用宏)
(MIDA 对刀仪宏 — P9377 同心刀具长度/半径测量)
T02 M06 (换待测刀)
G90 G00 X_toolsetter Y_toolsetter (移到对刀仪位置,坐标预先存储)
G43 H02 Z100.
G65 P9377 H2 F2 K6. M5. (P9377 测量)
(H2 = 写入 #2002 长度补偿)
(F2 = 写入 #2102 半径补偿)
(K6. = 接触深度 6mm)
(M5. = 起始安全区 5mm)
G90 G00 Z300. (退刀)
M30
P9377 参数详解:
- H(#11)= 刀长补偿号:写入到对应编号的 #200x 系列几何补偿变量
- F(#9)= 刀径补偿号:写入到对应编号的 #210x 系列磨损补偿变量
- K(#6)= 触测深度:沿 Z 轴向下测量的距离
- M(#13)= 安全起始距离:从当前位置到对刀仪触测面的距离
MIDA 的 P9377 会一次测量返回刀具的长度和半径两个值,这对需要同时设定长度和半径补偿的铣刀来说非常高效。相比之下,使用 G37 对刀需要两次独立操作(一次测长度、一次测半径),且半径测量需要系统选装 G37 的 2D 扩展功能。
8.5 倾斜孔测量对比示例
当测量一个与 Z 轴成 30° 角的倾斜孔时,两种系统的处理方式差异更为明显:
Inspection Plus(需要 Plus 选件):
(倾斜孔测量 — 需要 Inspection Plus Plus)
G65 P9810 Z50. F3000 (安全定位到安全高度)
G65 P9843 B30. (设置倾斜角度 30°)
G65 P9814 D30. Z-15. F1000 Q1 (在倾斜平面上测量 Ø30 孔)
G65 P9810 Z100. F3000 (退回)
MIDA(需要 PREMIUM 或以上):
(倾斜孔测量 — MIDA PREMIUM/ULTIMATE)
G65 P9311 Z50. F3000 (安全定位到安全高度)
G65 P9318 A1 B30. D30. E3. F800 R50. (测量 30° 倾斜平面上的 Ø30 孔)
G65 P9311 Z100. F3000 (退回)
两者在倾斜测量功能上的能力基本相当,但 MIDA 的 P9318 将角度参数 B 和直径参数 D 放在同一个调用中,逻辑更紧凑。Inspection Plus 需要分两步设置(先用 P9843 设定角度,再用 P9814 测量),步骤更清晰但代码行数更多。
8.6 示例对比总结
| 方面 | Inspection Plus | MIDA |
|---|---|---|
| 代码行数(工件测量) | 约 20 行(含注释) | 约 35 行(含手动超差逻辑) |
| 自动坐标系更新 | ✅ 内置(Q+W 参数) | ⚠️ 需手动写 #522x 更新,或通过 #123/#124 使能 |
| 超差内建处理 | ✅ 内置报警逻辑 | ⚠️ 需手动 IF-#3000 |
| 对刀仪测量 | ❌ 无宏,依赖 G37 | ✅ 专用 P937x 宏 |
| 编程上手难度 | 较低(参数直观,功能内聚) | 中等(需了解 A/E 系统,手动管理结果) |
九、实际应用场景分析
9.1 场景一:三轴立式加工中心 — 精密零件批量生产
配置:FANUC 0i-MF + 雷尼绍 OMP40-2 + 马波斯 T25 对刀仪
需求:铝制手机壳中框批量生产,尺寸公差 ±0.03mm,每件加工前需要自动找正工件位置,加工后自动检测关键尺寸。
推荐方案:
- 工件找正和尺寸检测 → Inspection Plus(P9811 单面测量 + P9814 孔测量 + Q/W 自动更新坐标系)
- 刀具测量 → MIDA P9377(长度+半径一次完成)
- 刀具完整性检查 → MIDA P9379(每 50 件检查一次)
关键点:
- #500 系列变量需要错开:设 MIDA #137=10,使用 #510~#515 区域
- 程序流程:MIDA 对刀 → Inspection Plus 工件找正 → 加工 → Inspection Plus 检测 → MIDA 刀检
完整程序框架示例:
%
O3000 (BATCH PRODUCTION - EXAMPLE FLOW)
(========================================================)
(1. 刀具准备 — MIDA 对刀)
T01 M06 (换测头)
M303 (通过 E32U 打开探头通道)
G43 H01 Z100.
G65 P9377 H1 F1 K6. M5. (测头长度/半径标定)
M304 (关闭探头通道)
(2. 工件找正 — Inspection Plus)
T01 M06 (换测头)
M50 (打开 OMI-2 接收器)
G65 P9810 Z100. F3000 (安全定位)
G65 P9811 X0. F1000 Q1 W54 (X 方向找正)
G65 P9811 Y0. F1000 Q1 W54 (Y 方向找正)
G65 P9810 Z100. F3000 (退回)
M51 (关闭接收器)
(3. 加工主程序...)
(4. 加工后检测 — Inspection Plus)
M50
G65 P9810 Z-5. F3000
G65 P9814 D50. Z-20. F1000 Q1 W54 U0.05 V-0.05
G65 P9810 Z100. F3000
M51
(5. 刀检 — MIDA)
M303
G65 P9379 H1 K6. M5. (刀具完整性检查)
M304
M30
%
为什么这种混用方式在实际生产中可行? 因为两个软件包的宏调用序列是线性的——测量循环在有限时间内完成,变量写入后可以被下一个循环读取或覆写。只要在调用序列中合理安排使用顺序,变量冲突的风险是可控的。
9.2 场景二:五轴加工中心 — 复杂曲面模具加工
配置:FANUC 31i-B5 + 雷尼绍 RMP600 + MIDA 测头(同一台机床)
需求:注塑模具型腔加工,涉及 3+2 定位加工和五轴联动,需要进行工件倾斜找正、余量测量和刀具监控。
推荐方案:
- 工件找正 → Inspection Plus Plus(P9843 倾斜测量 + P9810 安全定位 + P9820 余量测量)
- 刀具完整性 → MIDA ULTIMATE(P9379/P9380 完整性检查)
- 热漂移补偿 → MIDA P9387(定期自动测量对刀仪位置,补偿热漂移)
关键点:
- Inspection Plus 的 P9843 倾斜测量在五轴加工中尤为重要——可以在 3+2 定位后快速确定工件倾斜量
- MIDA 的热漂移补偿功能在长时间模具加工(单次加工可长达 8~12 小时)中非常有价值
详细流程说明:
在五轴模具加工中,通常的流程是:
- 粗加工后检测:使用 Inspection Plus 的 P9820 余量测量对毛坯进行扫描,确定各区域的加工余量分布。P9820 可以输出最大余量、最小余量和平均余量,帮助编程人员判断是否需要调整粗加工程序。
- 半精加工定位:使用 P9843 倾斜测量确定工件在夹具上的实际倾斜角度,通过 R 参数(旋转轴补偿)对刀路进行偏置。
- 精加工前监控:在精加工开始前,使用 MIDA P9379 对关键刀具(如球头铣刀)进行完整性检查,确认刀尖无崩刃。
- 长时间加工中定时刀检:对于单次加工超过 4 小时的程序,可以在程序中间插入 MIDA P9387 热漂移检测,定时测量对刀仪位置,自动补偿机床热变形引起的误差。
为什么这种场景下两套系统互补性最强? 五轴模具加工的特点是"单件加工、时间长、刀具成本高"。Inspection Plus 擅长在加工前快速确认工件位置和余量分布(这对复杂曲面加工尤为重要),而 MIDA 擅长在长时间加工过程中持续监控刀具状态和热变形。二者的组合覆盖了"加工前→加工中→加工后"的全流程质量管控。
9.3 场景三:车铣复合中心 — 高精度轴类零件加工
配置:FANUC 0i-TF + 马波斯测头 + 马波斯对刀仪
需求:液压阀芯加工,涉及外圆、端面、沟槽和内孔的测量,刀具种类多(车刀、铣刀、钻头、丝锥)。
推荐方案:
- MIDA LATHE ULTIMATE(全功能车床工件测量 + 对刀仪管理)
- 车床专用的 O90xx/O91xx 系列宏支持 C 轴定位、Y 轴测量、跳动检测等功能
关键点:
- 这是 MIDA 最具优势的场景之一——Inspection Plus 的车床支持远不如 MIDA LATHE 完善
- MIDA 的 C 轴中心搜索功能(O9098/O9110)是车铣复合加工的标准配置
车铣复合中的典型测量流程:
车铣复合中心(如 INDEX、DMG MORI NTX 系列)通常具备 C 轴(主轴分度)和 Y 轴功能。MIDA LATHE ULTIMATE 的车床工件测量宏专门针对这种机床结构设计:
(车铣复合 — MIDA LATHE 测量流程示例)
G65 P9360 (加载系统配置)
(1. C 轴中心搜索 — 加工前确定主轴中心)
G65 P9098 (C 轴中心自动搜索)
(2. 外圆直径测量)
G65 P9321 A1 D50. F500 R50. (A1=外圆直径测量)
(3. 端面跳动检测 — ULTIMATE 功能)
G65 P9325 A1 D50. C0. F500 (A1=端面跳动,C0=起始角度)
(4. 对刀仪刀具测量)
G65 P9377 H1 F1 K6. (刀具长度/半径)
为什么 MIDA 在车铣复合中表现更好? 因为 MIDA LATHE 的宏程序针对车床的坐标系特点(X 为直径编程、Z 为轴向、C 为回转轴)做了专门优化,而 Inspection Plus 最初是为铣床设计的,移植到车床后在某些功能上(如 C 轴测量、跳动检测)无法与原生车床版 MIDA 匹敌。
9.4 场景四:机床老旧翻新 — 升级添加测头系统
配置:2008 年 FANUC 18i-MB + 二手雷尼绍 MP3 + 新增 MIDA 对刀仪
需求:在预算有限的情况下提升机床自动化水平,减少人工对刀时间。
推荐方案:
- 工件测量 → Inspection Plus Standard(成本较低,核心功能齐全)
- 对刀仪 → MIDA BASIC(P9376/P9377 基础对刀)
- 总成本控制:Inspection Plus Standard + MIDA BASIC 的组合在功能上覆盖了大部分需求
关键点:
- 老旧系统的宏程序存储空间可能有限(早期 FANUC 18i 标准配置仅 128KB),需要确认空间是否足够
- FANUC 18i 宏调用嵌套深度可能有限,MIDA 的深层调用可能需要留意
- G37 功能在老旧系统中的支持程度需要验证
老旧系统升级清单:
| 检查项目 | 说明 | 检查方法 |
|---|---|---|
| Custom Macro B 是否启用 | 没有宏 B 支持,两套系统都无法运行 | 检查参数 #6000 是否为 1 |
| O9000~O9999 可用数量 | 需要至少 40 个空闲 O 号 | 检查程序存储区列表 |
| 可用宏程序存储空间 | 至少需要 40KB 可用空间 | SYSTEM → 程序存储区使用率 |
| G31 跳步功能 | 测头触测的底层支持 | MDI 模式下执行 G31 G91 X10. F100 |
| #500~#999 公共变量 | 需要至少 100 个可用变量 | 检查变量列表 |
| G37 自动对刀功能 | 使用 G37 对刀时需要 | 检查参数 #6250 是否存在 |
| 参数 #3202 NEP 位 | 用于保护宏程序不被误删 | 检查 #3202 的 NEP 位设置 |
| 主轴定向功能 | 测头换刀后需要定向 | M19 指令是否正常执行 |
翻新项目的成本效益分析:
以一个典型的 FANUC 18i 老旧机床翻新项目为例:
- 测头系统投入(Inspection Plus Standard + 雷尼绍 OMP40-2):约 ¥35,000
- 对刀仪投入(MIDA BASIC + T25 对刀仪):约 ¥20,000
- 安装调试费:约 ¥8,000~¥15,000
- 总投资:约 ¥63,000~¥70,000
预期收益:
- 减少人工对刀时间:每班节省约 30~60 分钟
- 减少首件报废率:预计从 3%~5% 降至 0.5% 以下
- 提升加工一致性:批量尺寸偏差标准差降低 50% 以上
- 投资回收期:通常在 6~12 个月(视生产批量而定)
十、常见问题与故障排除
10.1 测头不触发
| 可能原因 | Inspection Plus | MIDA |
|---|---|---|
| 测头未使能 | 检查 M 代码(M50/M51 等) | 检查 C 参数(#3)是否正确指定探头编号 |
| SKIP 信号未到达 | 检查参数 #6200 设定 | 检查 E32U 指示灯状态和连接 |
| 电池电量不足 | OMP40-2 电池指示灯检查 | MIDA 探头电池状态通过 E32U 诊断 |
| 安全距离过小 | 调小 #506(Stand-off) | 调大 E 参数(接近距离) |
10.2 测量结果异常
现象一:测量值系统性偏大或偏小
可能原因:
- 标定失效——测针磨损或碰撞后未重新标定
- 温度补偿缺失——车间温度变化超过 ±5°C 时,机床热变形会导致测量偏差
- 测针弯曲——使用前检查测针跳动,超过 0.01mm 需要更换
- 参数错误——检查名义直径 D 参数是否正确(特别是英制/公制混用时)
现象二:测量值跳动大,重复性差
可能原因:
- 测头触发机构磨损——雷尼绍测头的 OMP 系列约有 100 万次触发寿命
- 切削液干扰——冲洗触测面后重试
- 进给速度过高——FANUC G31 跳步响应时间约 2~4ms,F3000 进给时理论分辨率为 0.1~0.2mm,建议 F 值不超过 1000mm/min 以获得 ±2μm 重复精度
- 振动过大——主轴定向后等待 0.5~1 秒再开始触测
10.3 报警处理
| 报警号 | Inspection Plus | MIDA |
|---|---|---|
| P/S 100~199 | 超差报警(需检查测量值在公差范围) | 超差或系统配置错误 |
| P/S 200~299 | 测头未触发 | 探头通信故障 |
| P/S 300~399 | 安全定位碰撞警告 | 移动范围超限(#103 限制) |
| P/S 400~499 | 标定数据无效 | 标定参数异常 |
通用排查流程:
- 记录报警号和报警信息
- 检查测头是否点亮(光学测头)或 E32U 指示灯状态
- 在 MDI 模式下单独测试安全定位宏(P9810/P9311),排除定位问题
- 使用标准环规/样棒测试单个测量宏,确认系统工作正常
- 检查参数设置(#506/#507 或 O9366 配置)
10.4 对刀仪相关故障
故障一:对刀仪测量值不稳定
可能原因及解决方案:
- 对刀仪测头表面有切削液或切屑 — 使用压缩空气吹扫,条件允许时安装气帘保护
- 对刀仪安装松动 — 检查对刀仪底座的紧固螺栓扭矩
- G37 参数设置不当(Inspection Plus 模式) — 检查参数 #6200(SKIP 信号类型)、#6250(G37 触测方向)
- P9377 接近距离过小(MIDA 模式) — 增大 M5 参数(安全起始距离)
- 对刀仪标定失效 — 重新运行 P9376(MIDA)或重新设定 G37 参考点
故障二:对刀后刀具实际加工尺寸与测量值不符
排查步骤:
- 检查对刀仪的标定数据是否准确——使用标准样棒重新标定
- 确认刀补号是否正确对应——检查 H 参数(MIDA)或 G37 写入的刀补号
- 检查刀具夹持状态——刀柄锥面是否有异物,拉钉是否磨损
- 验证机床的热稳定状态——冷机与热机状态下的对刀结果可能相差 0.01~0.03mm
- 检查对刀仪与主轴的同轴度——使用检棒验证对刀仪中心与主轴中心的重合度
10.5 标定相关的常见问题
问题一:标定后测量值仍然不准
可能原因:
- 标定参考件不准确——环规或标准棒的实际尺寸与输入的名义值不一致。建议将环规定期送第三方计量,确认实际尺寸。
- 标定环境与测量环境不一致——恒温室中标定的测头,在车间环境中使用会产生温度误差。规划标定流程时,应尽量在机床实际工作温度下标定。
- 测针未锁紧——拧紧测针后,使用标记笔在螺纹连接处做标记,确认在标定过程中没有松动。
- 多测针切换后的参数遗漏——使用多测针系统时,不同测针有不同的球径和偏置值,切换后忘记加载对应的参数。
问题二:标定宏触发报警
| 报警场景 | Inspection Plus | MIDA |
|---|---|---|
| 标定环规未找到 | 检查 P9810 安全定位位置 | 检查 E 参数接近距离是否足够 |
| 标定结果超出预期范围 | 检查 #506/#507 设置 | 检查 #104/#105 系统配置 |
| 测头在标定过程中未触发 | 检查测头电池和 SKIP 信号 | 检查 E32U 通道和 C 参数 |
| 标定数据写入失败 | 检查 O9732 是否存在 | 检查 #137 偏移量设置 |
标定频率建议:
- 高强度生产(24 小时连续运转):每天标定一次
- 正常生产(8~16 小时单班/双班制):每周标定一次
- 低频率使用(偶尔加工):每次使用前标定
- 碰撞或更换测针后:立即标定
- 车间温度变化超过 ±5°C 时:重新标定
10.4 混用系统的特有故障
故障模式:Inspection Plus 和 MIDA 互相干扰
表现:运行 Inspection Plus 循环后,MIDA 循环表现异常;或反之。
排查步骤:
- 检查 #500 系列变量:Inspection Plus 占用 #500~#505,检查 MIDA 的 #137 偏移量是否已设置
- 检查 #100~#150 变量:确认没有其他程序意外修改了 MIDA 的配置参数
- 检查模态 G 代码状态:MIDA 循环结束后是否残留了 G91 增量模式或其他非标准模态
- 检查宏调用栈:确认没有未结束的宏调用残留(例如,安全定位宏被中断后未正常退出)
十一、性能与精度对比分析
11.1 触测响应速度
机内测量的精度和速度受多种因素影响,其中最重要的是 FANUC G31 跳步功能的响应时间。
| 因素 | Inspection Plus | MIDA |
|---|---|---|
| 触测信号路径 | 测头 → OMI-2 → CNC I/O → 宏程序 | 测头 → E32U → CNC I/O → 宏程序 |
| 典型响应延迟 | 2~4 ms | 3~5 ms(含 E32U 处理时间) |
| 建议最大触测进给 | F1000(钻孔/铣刀测量) | F800(接触式对刀仪测量) |
| F3000 时的理论分辨率 | ~0.2 mm | ~0.25 mm |
实际影响:在大多数车间应用中,Inspection Plus 和 MIDA 的触测响应速度差异完全可以忽略。但是对于需要在高速主轴上测量旋转刀具(如激光对刀)的场景,响应延迟会直接影响测量精度。MIDA 的 E32U 模块在处理接触式信号时多了一层信号转换,理论上增加了约 1~2ms 延迟,但在实际应用中这个差异通常不影响最终精度(以 F500 进给时约为 0.01~0.02mm 的误差,对大多数加工公差来说可以接受)。
11.2 重复精度对比
在理想条件下(恒温 20°C、标准环规、清洁环境),两种系统的典型重复精度如下:
| 测量类型 | Inspection Plus | MIDA |
|---|---|---|
| 内孔直径(Ø50 环规,F500) | ±1.5 μm | ±2.0 μm |
| 外圆直径(Ø50 标准棒,F500) | ±1.5 μm | ±2.0 μm |
| 单面位置(F500) | ±1.0 μm | ±1.5 μm |
| 刀具长度(F500,接触式对刀仪) | ±2.0 μm(G37) | ±2.0 μm(P9377) |
说明:以上数据为出厂标称值,实际应用中受机床精度、环境温度和操作规范影响可能存在差异。Inspection Plus 在工件测量中的重复精度略优于 MIDA,这可能与雷尼绍在测头硬件层面多年的技术积累有关。MIDA 在对刀仪测量中与 Inspection Plus+G37 持平,且功能更丰富。
11.3 循环时间对比
以下为完成一次 Ø50mm 内孔标准测量(4 点触测)的典型循环时间:
| 环节 | Inspection Plus | MIDA |
|---|---|---|
| 安全定位(Z100→Z-5) | ~2 s | ~2 s |
| 4 点触测(F1000) | ~4 s | ~4 s |
| 内部计算 | <0.1 s | <0.1 s |
| 坐标系更新 | <0.1 s | ~0.2 s(含手动逻辑) |
| 总计 | ~6.2 s | ~6.3 s |
两种系统的单次测量循环时间差异几乎不可感知。当涉及大量测量序列时,MIDA 的手动坐标系更新逻辑(IF 判断 + #522x 赋值)会比 Inspection Plus 的自动更新多消耗约 0.1~0.2s,但在批量生产中,这个差异完全可以忽略不计。
11.4 精度影响因素与优化建议
- 触测进给速度:降低进给可提高精度,F500 比 F1000 提高约 50% 重复精度,但循环时间翻倍
- 触测次数:MIDA 的多数测量循环默认使用 4 点触测,Inspection Plus 同;MIDA 的 P9392 支持多点触测以提高孔径精度
- 温度补偿:MIDA 的 P9387 热漂移检测功能可以在长时间加工中自动补偿温度引起的测量偏差
- 测针状态:定期检查测针球径磨损,建议每月执行一次 O9803(Inspection Plus)或 O9303(MIDA)球径标定
11.5 寿命与可靠性对比
| 对比维度 | Inspection Plus | MIDA |
|---|---|---|
| 测头典型触发寿命 | OMP40-2: >100 万次 | MIDA 接触式: >80 万次 |
| 对刀仪典型寿命 | 依赖 G37 传感器 | T25: >50 万次触测 |
| 标定有效期建议 | 每周一次(8 小时×5 天工作制) | 每周一次(或每次更换刀具批次后) |
| 固件升级方式 | 通过雷尼绍 Field Service 软件 | 通过马波斯 E32U 管理软件 |
| 技术支持响应 | 通过当地代理商(国内响应通常 24~48h) | 通过马波斯中国分公司(直接技术支持) |
寿命影响因素:测头的实际寿命受使用频率、切削液环境、碰撞事故等因素影响很大。在正常的加工环境中,一套雷尼绍 OMP40-2 或马波斯 MIDA 接触式测头的使用寿命通常在 3~5 年。定期维护(清洁密封圈、检查电池触点、更换 O 型圈)可以显著延长使用寿命。
11.6 综合性价比分析
在评估两种系统的综合性价比时,需要从以下几个维度考虑:
初始采购成本:
- Inspection Plus Standard + 雷尼绍 OMP40-2 + OMI-2 接收器:约 ¥30,000~¥50,000(视渠道和配置)
- MIDA Part Check BASIC + MIDA 测头 + E32U:约 ¥35,000~¥55,000
- 两者在对刀仪模块上的成本差异更明显:MIDA Tool Check BASIC(含 P9376/P9377)约 ¥15,000~¥25,000,而 Inspection Plus 对刀不需要额外宏程序购买成本(但需机床已安装 G37 功能)
长期使用成本:
- Inspection Plus 的宏程序升级费用较低(Standard → Plus 选件)
- MIDA 的三级版本升级(BASIC → PREMIUM → ULTIMATE)费用逐级递增
- 对于需要同时使用工件测量和对刀仪的用户,MIDA 的一体化方案在整体成本上可能有优势
隐性成本:
- 培训成本:Inspection Plus 编程简洁,学习曲线较平缓
- 故障停机成本:MIDA 的 E32U 故障诊断更直观,减少排查时间
- 扩展成本:后续增加激光对刀或多探头系统时,MIDA 的 E32U 架构扩展性更好
决策矩阵:
| 需求场景 | 推荐选择 | 理由 |
|---|---|---|
| 仅工件测量,三轴铣床 | Inspection Plus Standard | 成本低,编程简洁 |
| 工件测量 + 对刀仪,三轴铣床 | Inspection Plus + MIDA BASIC | 各取所长,总成本可控 |
| 工件测量 + 对刀仪,五轴加工 | Inspection Plus Plus + MIDA PREMIUM | 倾斜测量 + 刀具完整性 |
| 车铣复合,全功能需求 | MIDA LATHE ULTIMATE | 车床原生支持最好 |
| 全自动生产线,多探头 | MIDA PREMIUM/ULTIMATE | E32U 架构扩展性好 |
| 老旧机床翻新 | Inspection Plus + MIDA BASIC | 兼容性好,性价比高 |
十二、程序调试与优化技巧
12.1 宏程序调试的一般性原则
无论使用哪种软件包,在调试宏程序时都应遵循以下一般性原则:
原则一:从简单到复杂。不要一开始就编写完整的测量序列。先从单个宏(如安全定位)开始测试,确认后再添加测量宏,最后加入公差判断和坐标系更新逻辑。每一步都验证通过后,再进行下一步。
原则二:用 MDI 验证每一步。MDI 模式是最安全的测试环境——指令执行完立即停止,不会自动跳转到下一个程序段。在 MDI 模式下逐个测试宏调用,可以精确定位问题。
原则三:记录基准值。在执行测量程序之前,记录当前坐标系偏置(#5221#5226)和刀具补偿值(#2001#2100)。测量后与这些基准值对比,可以快速判断测量结果是否正确写入。
原则四:使用模拟输出代替实际写入。在首次调试时,可以先不启用坐标系自动更新(Inspection Plus Q=0,或 MIDA #123=0),让测量结果只写入 #500 系列变量而不修改坐标系偏置。确认测量结果合理后,再启用自动更新功能。
原则五:建立错误恢复机制。在测量程序的关键步骤(如安全定位、触测开始、坐标系更新)之后,添加状态检查逻辑。如果状态异常(如 #500 超出预期范围),触发安全退回流程,而不是继续执行后续加工程序。
12.2 调试前的准备工作
在调试任何一种宏程序之前,建议完成以下准备工作:
- 备份系统参数:通过 RS232 或 CF 卡备份 FANUC 的 #500~#999 公共变量和宏程序存储区
- 创建测量日志:在程序中添加测量结果的串口输出,便于跟踪:
- Inspection Plus:通过 P9835 或自定义串口输出逻辑
- MIDA:通过 #117 配置以太网/串口输出
- 单步验证:在 MDI 模式下逐个测试宏程序,确认每一步的行为符合预期
12.2 Inspection Plus 调试技巧
技巧一:验证安全定位
(在 MDI 模式下单独测试安全定位)
G65 P9810 Z100. F3000
(如果机床不动或报警,检查 #506 和 #507 是否设置合理)
技巧二:查看测量结果
(执行测量后,在 MDI 模式下查看 #500 系列变量)
G65 P9814 D50. Z-20. F1000
(然后切换到 OFFSET/SETTING 页面查看 #500~#505 的值)
技巧三:模拟运行
在没有实际工件的情况下,可以使用较大的安全间隙和较低的进给速度进行空跑测试:
#506 = 20.0 (将安全间隙临时放大到 20mm)
#507 = 15.0 (将过行程放大到 15mm)
G65 P9814 D100. Z-10. F300 (使用较低进给和较大名义直径)
12.3 MIDA 调试技巧
技巧一:系统配置验证
(在 MDI 模式下检查 O9366 配置是否生效)
G65 P9360 (加载配置)
#3000=100 (#100= [NO.100]) (输出 #100 的值作为报警号,直观查看)
注意:上述技巧利用了 FANUC 的 #3000 报警可以包含变量值的特性。更常规的做法是通过机床的变量显示页面检查 #100~#150 的值。
技巧二:手动单步触测
MIDA 允许通过手动方式模拟触测过程,验证信号通路:
1. 在 MDI 模式下,使用 G31 手动触测
2. 观察 E32U 模块上的 LED 指示灯是否正常点亮
3. 检查宏程序是否能够正确读取触测结果
技巧三:减少嵌套深度
如果在老旧系统上遇到宏嵌套深度限制,可以通过以下方式减少 MIDA 的调用深度:
- 将部分功能拆分为独立的 G65 调用序列
- 降低 #103(最大移动范围)以减少安全检查的复杂度
- 在 MIDA 的循环中嵌入部分计算逻辑,减少子宏调用(需修改宏源码,仅对授权用户可用)
12.4 通用优化建议
- 预加载配置:在程序开头统一加载配置,避免在每个循环中重复加载
- 减少注释行:虽然注释不影响执行速度,但在程序传输和存储中占用空间
- 合理选择进给速度:F500 适用于精度要求 ≤±5μm,F1000 适用于 ±10μm,F2000 适用于快速找正
- 使用子程序封装重复逻辑:对于需要多次执行的测量序列(如批量生产中每件测量),将测量流程封装为子程序
- 变量范围定期清理:在程序结束前,将被占用的公共变量复位(设为 0 或空值),避免对后续程序造成干扰
- 安全定位宏的优先级:在任何移动测头的操作之前,优先执行安全定位宏(P9810/P9311),不要依赖机床的快速移动(G00)来定位测头——G00 不具备碰撞检测功能
12.5 宏程序安全管理
在多系统共存的生产环境中,宏程序的安全管理不容忽视。以下是推荐的实践经验:
程序保护策略:
- O 号锁定:在 FANUC 系统参数中,将 O9000~O9999 区域设置为"只读"或"隐藏"状态(参数 #3202 的 NEP 位 = 1),防止操作工意外删除或修改宏程序
- 密码分级管理:
- 操作工:只能运行 O 主程序,不能查看或编辑 O9xxx 宏
- 编程员:可以查看但不能修改宏程序
- 调试工程师:完全访问权限
- 变量写保护:在 PMC 梯形图中添加逻辑,监控 #100~#150(MIDA)和 #500~#510(Inspection Plus)区域的写操作,对非预期写入触发报警
防碰撞策略:
- 安全定位是生命线:在每次测头移动前,确保安全定位宏(P9810/P9311)被正确调用。不要因为赶时间而手动编写 G00 移动来代替安全定位。
- Z 轴优先级:所有移动操作优先在 Z 轴完成,然后再进行 X/Y 方向的定位——这是避免测头碰撞的最基本原则。
- 过行程保护:合理设置 #507(Inspection Plus 的 Overtravel)或 #105(MIDA 的探头过行程极限),确保在意外碰撞时触发报警。
- "Dry Run"测试:在首次运行新写的测量程序时,在空机床状态下进行模拟运行,观察移动轨迹是否合理。
程序版本管理:
对于需要频繁修改宏程序的车间,建议建立以下版本管理规范:
- 所有宏程序的修改需记录修改人、日期和修改内容(作为注释写在程序开头)
- 修改后使用标准环规/样棒验证,合格后方可投入生产
- 保留至少两个版本的备份:当前运行版 + 上一个稳定版
- 在 CNC 的 CF 卡或存储区中保存宏程序的原始出厂版本,以便在升级失败时恢复
十三、总结
13.1 核心差异一览表
| 维度 | Inspection Plus | MIDA |
|---|---|---|
| 开发商 | 雷尼绍(Renishaw) | 马波斯(Marposs) |
| 宏编号体系 | O98xx / O97xx | O93xx / O90xx / O91xx |
| 标定宏 | O9801~O9804(4 个独立宏) | O9301~O9372(工件)/ P9376(对刀仪) |
| 安全定位宏 | P9810(O9810) | P9311(O9311) |
| 功能区分方式 | 不同宏号 = 不同功能 | 同宏号 + A 参数 = 不同功能 |
| 工件测量范围 | 孔/外圆/腹板/角点/矢量/余量/4 轴 | 孔/外圆/腹板/角点/斜特征/多点/多面/C 轴 |
| 对刀仪测量 | ❌ 依赖 G37 系统功能 | ✅ 完整 P937x/P938x 宏体系 |
| 版本分级 | Standard / Plus(+GoProbe) | BASIC / PREMIUM / ULTIMATE |
| 系统变量占区 | #500~#510 + #560~#639 | #100~#150(配置)+ #500(结果,可偏移) |
| 参数风格 | Q/W/U/V 组合更新坐标系 | A/B/D/E 组合选择类型+参数 |
| 自动坐标更新 | ✅ 内置 | ⚠️ 需手动或通过 #123 使能 |
| 对刀仪宏体系 | ❌ 无 | ✅ 完整的标定+测量+检查+手动循环 |
13.2 选型建议
- 已使用雷尼绍测头 + 无需自动对刀 → Inspection Plus 足够,编程简洁,参数直观
- 已使用马波斯测头系统(含 E32U) → MIDA 是最佳匹配,对刀仪+工件测量一体化
- 雷尼绍测头 + 马波斯对刀仪混用 → 两者宏编号互不冲突,可以共存,需注意 #500 变量协调
- 需要强大对刀仪管理(非同心刀、完整性检查、热漂移) → MIDA 对刀仪体系明显更完整
- 需要多轴车削中心 C/Y 轴测量 → MIDA ULTIMATE 的车床工件测量版功能更丰富
- 追求编程简洁与低学习成本 → Inspection Plus 上手更快
- 老旧机床翻新升级 → Inspection Plus Standard + MIDA BASIC 组合性价比最高
13.3 最终建议
两者并非零和竞争关系。实际生产场景中,Inspection Plus 擅长工件找正与尺寸检测,MIDA 擅长对刀仪管理与刀具监控。一台同时安装了雷尼绍测头和马波斯对刀仪的加工中心上,两套宏程序可以和平共存并互补。理解其差异——编号体系、参数约定、变量占用——是高效编程的第一步。
在实际应用中,我们建议:
- 不要急于二选一——根据实际需求选择最适合的软件包,必要时混用
- 建立变量映射表——在多系统共存环境中,明确记录每个软件包的变量占用情况
- 培训先行——确保编程人员和操作工都理解两种系统的差异
- 测试验证不可省略——每次更换硬件或升级软件后,使用标准环规/样棒进行验证
13.4 未来展望
随着制造业向工业 4.0 和智能制造转型,机内测量技术也在快速演进:
- 图形化编程普及:雷尼绍的 Set and Inspect 和马波斯的 Ready2Probe 正在降低宏程序编程的门槛。未来,操作工可能不再需要记忆宏号和参数含义,只需在触摸屏上选择特征、输入尺寸即可生成完整的测量程序。
- 自适应加工闭环:宏程序测量结果直接反馈到 CAM 系统,自动调整后续刀路。Inspection Plus 的 P9835 SPC 更新和 MIDA 的 O916x 数据输出都在向这个方向演进。
- 多传感器融合:一台机床上同时安装接触式测头、激光对刀仪和在线测量探头,通过统一的宏程序接口协同工作。MIDA 的 E32U 架构在这方面具有天然优势。
- 数字孪生集成:测量数据实时同步到机床的数字孪生模型,实现虚拟调试和远程监控。两种系统都在开发相应的数据接口。
无论技术如何演进,理解宏程序底层逻辑的能力——包括 G65 调用机制、参数传递规则、变量分配策略——仍然是工艺工程师的核心竞争力。希望本文能够成为您在不同系统之间游刃有余的参考指南。
机内测量技术的价值只有在正确配置和熟练使用的前提下才能充分发挥。希望本文的深度对比能够帮助读者在不同系统之间从容切换,实现更高的加工精度和生产效率。
13.5 最后的提醒
在使用宏程序进行机内测量时,永远记住三个"不要":
- 不要在未验证安全定位宏的情况下直接使用 G00 移动测头——安全定位宏是防碰撞的最后一道防线。
- 不要在不清除上次测量结果的情况下开始新的测量——确认 #500 系列变量已被读取或复位。
- 不要在未确认变量映射表的情况下混用两套系统——变量冲突是混用场景中最常见且最难排查的问题。
安全第一、理解先行、验证贯穿始终——这是用好机内测量宏程序的不二法则。无论您的车间选择了 Inspection Plus 还是 MIDA,或者两者混用,掌握本文所述的核心差异和实用技巧,都将使您在不同系统之间游刃有余。数控加工的未来是自动化和智能化的,而宏程序正是实现这一目标的基础语言。今天在宏程序上投入的每一分努力,都将在未来的生产效率和质量提升中获得回报。
参考资料
- Renishaw Inspection Plus Programming Manual (H-2000-6222)
- Renishaw Probe Software Programs and Features (H-2000-2298)
- Marposs MIDA D310A1AG07 (Tool Check on Fanuc)
- Marposs MIDA D310A2AG16 (Part Inspection on Fanuc)
- Marposs MIDA D310A4AG05 / D310A5AG13 (Lathe versions)
- Marposs D6C05500G0 (MIDA Software Levels)
- Marposs MIDA Macro Reference: O9301 — 标准六面标定循环(BASIC 级工件测量标定核心宏)
- Marposs MIDA Macro Reference: O9302 — 斜角标定循环(Premium/Ultimate 级矢量测针标定)
- Marposs MIDA Macro Reference: O9303 — 三点直径标定循环(Premium/Ultimate 级球径标定)
- Ready2Probe — Marposs 图形化编程界面 (C0920B00C / C0921B00C)
- FANUC Custom Macro B 编程手册
本文档由 Rex 团队编写维护 · v2.0 技术审核扩写版
314

被折叠的 条评论
为什么被折叠?



