首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >马波斯 MIDA 宏程序编程 — 三菱系统篇

马波斯 MIDA 宏程序编程 — 三菱系统篇

原创
作者头像
宁波匠测科技
发布2026-08-21 12:47:49
发布2026-08-21 12:47:49
1260
举报

马波斯 MIDA 宏程序编程 — 三菱系统篇

文档来源: D310JBAG00 (VTS Bridge Mitsubishi)、D310A1AG07 (Tool Check on Fanuc)、D310A2AG16 (Part Check on Fanuc)

适用系统: 三菱 M800/M80 系列、M700/M70V 系列(M系加工中心)、C70、Meldas 系列

产品: 马波斯 MIDA 测头系统、MIDA 对刀仪、VTS 影像对刀仪

本文性质: 独立文章 — 基于 D310JBAG00 数据和发那科兼容性编写

目录

1. [概述](#一概述)

2. [三菱 M800/M70 G31 跳步功能详解](#二三菱-m800m70-g31-跳步功能详解)

3. [SKIP 相关参数配置表](#三skip-相关参数配置表)

4. [发那科 MIDA 宏程序移植到三菱](#四发那科-mida-宏程序移植到三菱)

5. [VTS Bridge Mitsubishi 完整配置](#五vts-bridge-mitsubishi-完整配置)

6. [三菱与发那科变量兼容性对照表](#六三菱与发那科变量兼容性对照表)

7. [O9366 系统配置(三菱推荐值)](#七o9366-系统配置三菱推荐值)

8. [常见问题与排查](#八常见问题与排查)

一、概述

马波斯MIDA触发式测头系统应用于CNC加工中心,实现机内测量(In-Machine Measurement)——在加工准备阶段进行工件找正,在工序间/工后进行原位尺寸检测,无需将工件移至三坐标测量机。

马波斯(Marposs)MIDA 软件包中,专门针对三菱 CNC 系统的官方资料仅 D310JBAG00(VTS Bridge Mitsubishi) 一份。该手册主要面向 VTS 影像式对刀仪在三菱系统上的桥接软件安装与操作,完整软件包代码为 S609210534

而发那科版本的 MIDA 宏程序(工具对刀仪 P9376~P9388、工件测量 O9301~O9392)由于三菱 M80/M70 系统在 G 代码体系上与发那科高度兼容,原则上可移植至三菱系统运行。本文基于 D310JBAG00 提供的技术数据和发那科兼容性原理,系统性地阐述三菱系统上的测量编程体系、参数配置、移植方法及 VTS 桥接软件配置。

1.1 三菱系统测量编程三层架构

三菱系统上的测量编程可归纳为以下三层:

```

第1层: G31 跳跃功能 (SKIP Signal) ─ 测头触发的硬件入口

│ 三菱特色: G31.1~G31.3 多段跳跃, R 参数变速跳跃

第2层: G37 自动刀具长度测定 ─ 对刀仪专用指令

│ 触发后自动写入 H 补偿号

第3层: MIDA 宏程序体系 ─ 标准化的标定/测量/补偿调用接口

├─ 对刀仪: P9376~P9388 (发那科移植 → 三菱)

├─ 工件测量: O9301~O9392 (发那科移植 → 三菱)

└─ VTS 影像对刀: O9700~O9731 (桥接软件通信)

```

1.2 系统要求

  • 三菱自定义宏 B(标准配置)
  • G31 跳步输入信号(SKIP)
  • 用户宏程序存储空间
  • 以太网通信接口(VTS 桥接)

二、三菱 M800/M70 G31 跳步功能详解

2.1 G31 基本行为

三菱的 G31 功能与发那科一致,属于 00 组一次性 G 代码。在直线插补运动中持续监测跳跃信号(SKIP Signal),一旦测头触发则立即停止运动并记录坐标。

```gcode

G31 Z-50. F300 ; Z 轴向下移动,等待测头触发

#100 = #5063 ; 立即读取触发点 Z 坐标并保存

G00 Z100. ; 安全退刀

```

行为特点

  • 与 G01 共用相同进给速度模态(F 值)
  • 只响应一次跳跃信号,触发后停止
  • 若全程未触发则产生超程报警(PS0032 等),需在程序中用 #3000 或 ONERROR 捕获

2.2 触发坐标系统变量

变量号

含义

与发那科

备注

#5061

触发点 X 轴机械坐标

✅ 完全相同

必须在 G31 下一段立即读取

#5062

触发点 Y 轴机械坐标

✅ 完全相同

同上

#5063

触发点 Z 轴机械坐标

✅ 完全相同

同上

⚠️ 关键规则:以上变量在 G31 触发瞬间由系统写入,后续任何移动指令(G00/G01/G31 等)都会覆盖其值。必须在 G31 的下一程序段立即读取并赋值给自定义变量保存。此行为与发那科完全一致,发那科 MIDA 宏程序无需做任何修改即可直接使用。

标准读取模式

```gcode

G31 Z-20. F200

#101 = #5063 ; ← 立即保存,不可延迟

G31 X10. F200

#102 = #5061 ; ← 立即保存

```

2.3 三菱独有:多段跳跃 G31.1 ~ G31.3

三菱 M800/M70 系列扩展了标准的 G31,支持 多段跳跃指令 G31.1 / G31.2 / G31.3。这一功能在发那科系统中通常不可用(除非选配功能)。

指令

功能

典型用途

G31

单次跳跃(标准)

单点表面测量

G31.1

多段跳跃第 1 次触发

记录第 1 次触碰位置

G31.2

多段跳跃第 2 次触发

记录第 2 次触碰位置

G31.3

多段跳跃第 3 次触发

记录第 3 次触碰位置

内径测量示例

```gcode

G90 G00 X0 Y0 ; 定位到孔中心

G01 Z-5. F500 ; 下到测量深度

G31.1 X-20. F200 ; X 负方向移动,记录第1次触发

#101 = #5061 ; ← 立即读取保存!

G00 X0

G31.2 X20. F200 ; X 正方向移动,记录第2次触发

#102 = #5061 ; ← 立即读取保存!

G00 Z100.

#103 = #102 - #101 ; 计算直径

```

⚠️ 重要:每次 G31.1/G31.2/G31.3 触发后,坐标均写入同一组 #5061~#5063。不可等待所有跳跃完成后一次性读取,必须在每次触发后立即赋值保存。

多段跳跃的典型应用场景

1. 内径/外径测量 — 两次反向触碰求差值

2. 键槽/凹槽宽度 — 两侧触碰记录

3. 台阶高度 — 两个 Z 平面的差值测量

4. 偏心检测 — 多角度触碰记录位置偏差

2.4 三菱独有:变速跳跃(R 参数)

三菱 G31 支持 变速跳跃功能,通过 R 参数指定触发后的退刀速度:

```gcode

G31 Z-20. F500 R100 ; Z 轴下移 F500,触发后以 F100 退刀

```

  • `R` 参数 = 触发后退刀速度(mm/min)
  • 发那科标准 G31 不支持此语法
  • 此功能在三菱 M800/M80 系列中标准支持
  • 适合 薄壁件、精密表面 等需要减少触发后过冲的场景

与发那科 G31 P4 的对比

特性

三菱 G31 R 参数

发那科 G31 P4

功能

触发后退刀速度

触发后改变方向

语法

`G31 X100. F500 R100`

`G31 P4 X100. F500`

兼容性

三菱标准功能

发那科选配功能

应用

精密表面保护

多方向测头回退

2.5 G31 P1~P4 多段跳跃输入选择

三菱系统支持 G31 的 P1~P4 参数,用于选择不同的跳跃输入信号(SKIP1~SKIP4):

指令

信号源

典型用途

G31

SKIP(默认)

标准测头触发

G31 P1

SKIP1

测头 1

G31 P2

SKIP2

测头 2

G31 P3

SKIP3

备用输入

G31 P4

SKIP4

备用输入

在多探头系统中,不同探头应配置到不同的 SKIP 输入通道。此功能兼容发那科的 G31 P 参数语法。

2.6 SKIP 信号硬件链路

理解整个 SKIP 信号链有助于排查故障:

```

测头触发

无线/红外发射 ← 测头内置发射器(如马波斯 VOS/WRS)

接收器收到信号

PMC 输入信号(DI 点) ← 由电气接线决定

系统内部 SKIP 信号 ← 由参数 #60001 控制极性和启用

G31/G37 指令响应 ← 由 #60001(位7 SKP)和 #60002(位7 G37)控制

```

关键点

  • SKIP 信号需在 PMC 梯形图中正确映射到系统的内部 SKIP 地址
  • 参数 #60001(位6 SKE)控制极性,若极性设反则测头触发时系统不响应。三菱参数需在系统参数页面(参数编号 #60001)手动设定,或通过G10 L50写入
  • 部分三菱系统需要额外设定 SKIP 信号的选择参数(信号来源选择)

2.7 G37 自动刀具长度测定

G37 是三菱加工中心 M 系的自动刀具长度测定专用指令,属于 G31 功能的上层应用:

基本用法

```gcode

T01 M06 ; 换刀

G90 G00 G54 X0 Y0 ; 定位到对刀仪上方

G43 Z100. H01 ; 建立刀长补偿

G00 Z-50. ; 快速移动到对刀仪上方安全距离

G37 Z-70. F300 ; Z 轴慢速下移,接触对刀仪后自动写入刀长

G00 Z100. ; 退刀

M01

```

执行流程

1. Z 轴以 F 速度向下移动

2. 刀具接触对刀仪 → SKIP 信号触发

3. 系统记录当前位置 Z 坐标

4. 自动计算并从当前刀具的 H 补偿号写入刀长值

5. 移动停止

前置条件

条件

说明

必须设置

参数 #60001 位7 (SKP)=1

跳跃功能启用。三菱参数需在系统参数页面(参数编号 #60001)手动设定,或通过G10 L50写入

参数 #60002 位7 (G37)=1

G37 功能启用。三菱参数需在系统参数页面(参数编号 #60002)手动设定,或通过G10 L50写入

#60010 设定值 > 实际对刀距离

最大移动距离

#60011 设定合理进给速度

测定进给速度

G43 已建立(推荐)

刀长补偿基准

建议

注意:车削系统(L 系)中 G37 用法不同,L 系用 G36 测 X 轴(径向),G37 测 Z 轴(轴向)。

三、SKIP 相关参数配置表

3.1 核心参数总表

三菱系统中与 G31/G37 相关的参数主要集中在 #60000 系列(SKIP 相关系统参数):

参数号(位)

含义

典型值

说明

#60001(位6 SKE)

SKIP 信号有效极性

1

0=负逻辑(常高触低),1=正逻辑(常低触高)。三菱参数需在系统参数页面(参数编号 #60001)手动设定,或通过G10 L50写入

#60001(位7 SKP)

跳跃功能有效

1

0=禁用 G31,1=启用 G31。三菱参数需在系统参数页面(参数编号 #60001)手动设定,或通过G10 L50写入

#60002(位7 G37)

G37 自动刀长测定有效

1

0=禁用 G37,1=启用 G37。三菱参数需在系统参数页面(参数编号 #60002)手动设定,或通过G10 L50写入

#60010

G37 最大移动距离

>实际对刀距离

单位: μm(与系统设定有关)

#60011

G37 测定进给速度

300~500

单位: mm/min

#1926

CNC IP 地址

视网络配置

用于 VTS Bridge 以太网通信

3.2 参数详解

#60001 位6 (SKE) — SKIP 信号极性

这是排查 G31 不触发类问题的最常见原因:

SKE 值

逻辑

说明

0

负逻辑

信号高电平时视为"未触发",低电平时视为"已触发"

1

正逻辑

信号低电平时视为"未触发",高电平时视为"已触发"

切换方法:当 G31 执行后走完全程不停(无触发),或 G31 刚到位置就停(误触发),应尝试切换 SKE 值。三菱参数需在系统参数页面(参数编号 #60001)手动设定,或通过G10 L50写入。

#60001 位7 (SKP) — 跳跃功能启用

SKP 值

状态

说明

0

禁用

G31 等同于 G01,不响应 SKIP 信号

1

启用

G31 响应 SKIP 信号,触发即停

#60002 位7 (G37) — G37 功能启用

G37 值

状态

说明

0

禁用

G37 不可用,执行时可能报警

1

启用

G37 可用,正常执行自动刀长测定

#60010 — G37 最大移动距离

该参数设定了 G37 指令执行时允许移动的最大距离。如果刀具到对刀仪的实际距离大于此值,G37 会触发超程报警。

设定原则

  • 值应略大于刀具到对刀仪的实际距离(留 5~10 mm 余量)
  • 值过大则失去保护意义(刀具可能撞到对刀仪却不触发)
  • 具体单位取决于系统设定(通常为 μm 或 0.001 mm)
#60011 — G37 测定进给速度

设定 G37 指令的进给速度。此速度不宜过快(避免撞击力过大),也不宜过慢(影响效率):

应用场景

建议速度 (mm/min)

常规对刀

300~500

精密/小刀具

100~200

快检模式

500~1000

3.3 参数设定方法

方法一:通过 MDI 直接设定

```gcode

G10 L50

N60001 R01000000 ; 位参数:#60001 位7(SKP)=1, 位6(SKE)=1

N60002 R00000000 ; 位参数:#60002 位7(G37)=1

G11

```

说明:三菱 M70/M80 使用 G10 L50 写入参数,与发那科一致。三菱参数需在系统参数页面(参数编号如 #60001 等)手动设定,或通过G10 L50写入。

N 地址中的 R 值为位字段的十进制表示。例如,要使 #60001 位7=1 和 位6=1,位模式为 `01000000`(二进制),即 `R01000000`:

#7

#6

#5~#0

1

1

000000

R 表示

R01000000

方法二:通过宏程序写入

```gcode

#60001 = 01000000 ; 可直接赋值(取决于系统版本)

```

方法三:在参数页面手动设定

进入 Mainte → Param → 系统参数页面,直接编辑 #60001、#60002、#60010、#60011 等参数。

3.4 SKIP 信号相关 PMC 地址

高级排查时需了解 PMC 中各 SKIP 信号的地址(不同机型可能不同):

信号名

典型 PMC 地址

说明

SKIP

X 地址(由参数决定)

基本 SKIP 输入

SKIP1~SKIP4

X 地址

可选多段 SKIP 输入

实际地址分配需查阅机床电气图纸和 PMC 梯形图。

四、发那科 MIDA 宏程序移植到三菱

4.1 移植可行性总览

发那科 MIDA 宏程序因为以下原因可以直接在三菱系统上运行或只需少量修改:

宏程序

发那科版本

三菱版本

移植难度

O9366 (系统配置)

✅ 完整

⚠️ 需修改参数

中等

O9370 (保护定位)

✅ 完整

✅ 可直接使用

O9371 (触碰移动)

✅ 完整

✅ 可直接使用

P9376 (标定)

✅ 完整

✅ 可直接使用

P9377 (同心刀测量)

✅ 完整

✅ 可直接使用

P9378 (非同心刀测量)

✅ 完整

✅ 可直接使用

P9379 (完整性检查)

✅ 完整

✅ 可直接使用

P9380 (完整性检查)

✅ 完整

✅ 可直接使用

P9386 (手动标定)

✅ 完整

✅ 可直接使用

P9387 (手动测长)

✅ 完整

✅ 可直接使用

P9388 (单刀粒测量)

✅ 完整

✅ 可直接使用

O9391 (用户输入)

✅ 完整

✅ 可直接使用

O9392 (用户输出)

✅ 完整

✅ 可直接使用

O9301~O9392 (工件)

✅ 完整

✅ 可直接使用

说明:这些宏程序使用 G65/G31/#5061~#5063 等在三菱和发那科上完全一致的指令/变量。唯一需要修改的是 O9366 系统配置中的参数和变量偏移。

4.2 必须修改的五大要点

4.2.1 CNC 类型设定 (#101=4)

在 O9366 配置宏中,必须将 CNC 类型设置为三菱:

```gcode

#101 = 4 ; 4 = Mitsubishi ← 这是三菱的正确设定

```

发那科 MIDA O9366 中定义的 CNC 类型:

#101 值

CNC 类型

1

Fanuc

2

Haas

3

Yasnac

4

Mitsubishi ← 三菱

5

Mazatrol

6

Brother

设定 #101=4 后,宏程序内部会自动选择三菱对应的刀具补偿表指针和参数映射。

4.2.2 参数写入指令(G10 L50)

三菱 M70/M80 使用 G10 L50 写入参数,与发那科一致:

```gcode

; 发那科写法 — 三菱同样适用

G10 L50

N6200 R01001101

N6201 R11100001

G11

; 三菱写法 — 与发那科相同

G10 L50

N6200 R01001101

N6201 R11100001

G11

```

三菱参数需在系统参数页面(参数编号如 #60001 等)手动设定,或通过G10 L50写入。

其他 G10 格式兼容性

功能

发那科格式

三菱格式

兼容性

写参数

G10 L50

G10 L50

✅ 相同(三菱M70/M80与发那科一致)

写工件偏置

G10 L2 Pn

G10 L2 Pn

✅ 相同

写刀补长度

G10 L10 Pn R

G10 L10 Pn R

✅ 相同

写刀补半径

G10 L12 Pn R

G10 L12 Pn R

✅ 相同

4.2.3 刀具补偿表指针配置

根据 D310A1AG07 文档,三菱 CNC(#136=4)的刀具补偿表指针如下:

变量

用途

Memory Type 1

Memory Type 2

#145

半径/直径指针

2000 / 10000

2400 / 16000

#146

长度指针

2000 / 10000

2000 / 10000

#147

长度磨损指针

2200 / 11000

#149

半径/直径磨损指针

2600 / 17000

斜杠号(如 2000/10000)表示不同的内存配置选项。Type 1 为基本配置,Type 2 为分离式 H/D 配置。具体取决于三菱系统的参数设置(类似发那科的 PM4029 等配置)。

对发那科的差异

  • 发那科长度补偿通常在 #2000~#2999 或 #10000~#10999(取决于 H/D 分离配置)
  • 三菱的补偿表存储区不同,但宏程序通过 #145/#146 等指针变量间接访问,因此只需在 O9366 中设置正确的指针值

确认方法:在 MDI 模式下执行以下指令,查看刀具补偿页面确认映射关系:

```gcode

#146 = 2000 ; 然后查看刀补页面,确认对应 H01 的位置

```

4.2.4 标定数据存储变量迁移

发那科默认使用 #530~#533 作为标定数据存储(通过 #115 指针访问)。在三菱系统中,#500~#599 范围有部分被系统占用,建议迁移:

```gcode

; 发那科默认(可能不安全)

#115 = 530 ; 指向 #530~#533

#530 = 探头中心 X

#531 = 探头中心 Y

#532 = Z 轴距离

#533 = 直径标定值

; 三菱建议方案

#115 = 550 ; 指向 #550~#553(确认该范围空闲)

#550 = 探头中心 X

#551 = 探头中心 Y

#552 = Z 轴距离

#553 = 直径标定值

```

三菱公共变量占用情况

变量范围

三菱占用情况

建议

#500~#509

备用(推荐)

✅ 可安全用于标定数据

#510~#549

部分系统占用

⚠️ 需确认

#550~#599

接口用变量

⚠️ 部分被 PMC 占用

#600~#699

系统内部使用

❌ 避免使用

#700~#799

刀具寿命管理

⚠️ 如果启用则避免

#800~#999

用户宏区域

✅ 可用于中间运算

推荐策略:优先使用 #800~#999 作为中间运算变量,使用 #500~#509(或确认空闲的 #550~#553)作为标定数据存储区。

4.2.5 宏程序号与保护区设置

发那科系列宏(O9000~O9999)在三菱系统中的保护区规则不同,需要手动设定保护参数:

程序号范围

三菱默认保护

说明

O0000~O0999

常规程序

O7000~O7999

⚠️ 部分系统为导航宏

可能冲突

O9000~O9999

需参数设定保护

在系统参数页面设定保护范围

O9800~O9899

若安装 NAVI MILL 则占用

注意不与 NAVI MILL 宏冲突

保护区参数设定

宏程序保护范围需在系统参数页面(Mainte → Param)中手动设定起始号、结束号和保护模式。请查阅机床对应版本的三菱参数手册。

4.3 移植工作流程

```

第1步: 上传宏程序至 CNC

└─ 将 P9376~P9388, O9301~O9392, O9366 等上传至用户宏区

第2步: 修改 O9366 系统配置

├─ #101 = 4 (CNC 类型 → 三菱)

├─ #115 = 550 (标定数据指针 → 安全区域)

└─ 设置 #145/#146/#149 补偿表指针

第3步: 设定三菱系统参数

├─ 参数 #60001 位6(SKE)=1 (SKIP 极性)

├─ 参数 #60001 位7(SKP)=1 (跳跃功能启用)

├─ 参数 #60002 位7(G37)=1 (G37 启用, 如使用)

├─ 在系统参数页面设置宏保护区

└─ 确认 #60010/#60011 值合理

第4步: 检查 G31 功能是否正常

└─ 执行 G91 G31 Z-20. F5. 并手动触发测头验证

第5步: 安装标定基准刀,运行 P9376 标定

└─ G65 P9376 H1. (H=基准刀刀补号)

第6步: 运行测量循环验证

└─ G65 P9377 H3. (测量刀具并写入刀补)

```

说明:以上参数设定,三菱参数需在系统参数页面(参数编号如 #60001 等)手动设定,或通过G10 L50写入。

4.4 工件测量宏移植要点

工件测量宏(O9301~O9392)在三菱上的移植比对刀仪宏更简单:

1. ✅ 使用 G31 跳跃功能 — 三菱与发那科语法一致

2. ✅ 使用 #5061~#5063 读取触发坐标 — 变量号相同

3. ✅ 使用 G65 调用 — 语法完全相同

4. ✅ 不依赖刀具补偿表指针 — 除非涉及自动写入偏移

唯一需要注意的:如果宏中包含 G10 写入工件坐标系偏移的指令,三菱的 G10 语法与发那科一致:

```gcode

; 发那科 G10 设置工件偏移 (G54)

G10 L2 P1 X0 Y0 Z0

; 三菱 G10 设置工件偏移 → 语法相同

G10 L2 P1 X0 Y0 Z0

```

G10 L2(工件偏置写入)在三菱和发那科上语法完全一致,无需修改。

五、VTS Bridge Mitsubishi 完整配置

5.1 概述

VTS(Vision Tool Setting)是马波斯的影像式非接触对刀仪系统。在三菱系统上,通过 VTS Bridge Mitsubishi(S609210534) 桥接软件实现 CNC 与 VTS 系统的通信。这是 D310JBAG00 文档的核心内容。

组件

说明

软件名称

VTS Bridge Mitsubishi

文档编号

D310JBAG00

软件代码

S609210534

对刀宏代码

S609210535 (VTS CNC Macro)

通信库

FCSB1224W000 (三菱 CNC 通信库)

适用系统

M700/M70V/E70、M800/M80、C70、Meldas 系列

5.2 系统架构

VTS 系统由三个主要组件构成,通过以太网连接:

```

┌─────────────────────┐ Ethernet ┌──────────────┐ Ethernet ┌────────────────┐

│ 三菱 CNC │ ◄──────────────► │ VTS Bridge │ ◄──────────────► │ VTS-EU │

│ (M80/M70 等) │ │ (Windows PC) │ │ (处理单元) │

│ │ │ │ │ │

│ 通信变量: #149 │ │ config.txt │ │ IP: 192.168.1.8│

│ (默认, 可配置) │ │ 设定变量号 │ │ 端口: 22375 │

└─────────────────────┘ └──────────────┘ └────────────────┘

┌─────┴──────┐

│ VTS-SU │

│ (光学传感器) │

└────────────┘

```

工作流程

1. CNC 宏程序向通信变量(默认为 #149)写入指令数据

2. VTS Bridge 定时轮询该变量,读取到变化后解析指令

3. Bridge 通过以太网将指令转发给 VTS-EU(处理单元)

4. VTS-EU 控制 VTS-SU(光学传感器)执行影像测量

5. 测量结果通过 VTS Bridge 回写到 #149 变量

6. CNC 宏程序读取该变量获取测量结果

5.3 config.txt 配置文件

VTS Bridge Mitsubishi 的通信变量号通过 `config.txt` 配置文件设定。该文件位于 Bridge 软件的安装目录下。

config.txt 文件格式(第 5 行设定变量号)

```txt

; VTS Bridge Mitsubishi Configuration

; 第1行: CNC 类型

Mitsubishi M80

; 第2行: CNC IP 地址

192.168.1.100

; 第3行: 端口号

22375

; 第4行: 轮询间隔 (ms)

100

; 第5行: 通信变量号 ← ★ 关键行

149

; 第6行: 调试模式 (0=关闭, 1=打开)

0

```

变量号配置规则

配置值

通信变量

说明

149 (默认)

#149

D310JBAG00 默认设定

其他值 (如 150)

#150

可自定义,但需同步修改 CNC 宏

范围

#100~#999

需使用三菱宏程序可读写的公共变量

⚠️ 注意:如果修改了 config.txt 中的变量号,必须同步修改所有 VTS CNC 宏程序(O9700~O9731 等)中对该变量的引用。

5.4 #149 通信变量详解

#149 是 VTS Bridge Mitsubishi 的默认通信变量,用于 CNC 与 VTS 系统之间的双向数据交换。

数据格式

  • CNC 写入 #149 → 发送指令给 VTS(指令码 + 参数)
  • VTS 写入 #149 → 返回结果给 CNC(状态码 + 测量数据)

指令格式示例

```gcode

; CNC 发送测量指令示例

#149 = 1001 ; 指令码: 执行标准测量

G04 X1. ; 等待 VTS 处理(延时)

IF [#149 EQ 9999] GOTO 100 ; 检查 VTS 是否就绪

#100 = #149 ; 读取测量结果

```

  • 指令码范围:1000~9999(由 D310A9AG07 宏程序定义)
  • 响应格式:状态码 + 数据(具体编码见 VTS 宏程序代码)
  • 同步机制:CNC 在写入 #149 后需等待 VTS 完成处理后再读取结果

通信流程示例

```

时间线:

① CNC: #149 = 1001 (发起测量请求)

② CNC: G04 X0.5 (等待 500ms 让 VTS 处理)

③ VTS: 读取 #149,解析指令

④ VTS: 控制 VTS-EU 执行影像测量

⑤ VTS: #149 = 123.456 (回写测量结果)

⑥ CNC: #100 = #149 (读取结果)

```

5.5 IP 地址配置

CNC 端 IP 地址

三菱 CNC 的 IP 地址通过参数 #1926 设定:

参数

功能

典型值

#1926

CNC IP 地址

192.168.1.100

读取当前 CNC IP 地址

  • M800/M80 系列:Diagn 页面 → H/W config → 读取 CNC 型号 → Mainte 页面 → Param → Ethernet param → 读取参数 #1926
  • M700/M70V 系列:Diagn 页面 → H/W S/W config → H/W config → 读取 CNC 型号 → Mainte 页面 → Param → Ethernet param → 读取参数 #1926

设定 CNC IP 地址

```gcode

G10 L50

N1926 R192168001100 ; 设为 192.168.1.100(需转换为R格式)

G11

```

R 格式转换示例:IP 192.168.1.100 → 每段三位补零 → `192168001100`

VTS Bridge 端配置

在 VTS Bridge 软件的配置界面中:

1. 输入 CNC IP 地址(与 #1926 一致)

2. 选择 CNC 类型(Mitsubishi M80/M70)

3. 设定通信端口(默认 22375)

VTS-EU 默认地址

参数

默认值

IP 地址

192.168.1.8

端口

22375

OEM 密码

erm82af6

5.6 VTS 宏程序清单

VTS 完整宏程序包(S609210535)包含以下程序,全部需上传至 CNC 用户宏程序区:

宏号

名称

功能

O9700

VTS_PRES

标准测量循环(旋转刀具)

O9701

VTS_CALIBRATION

自动标定

O9702

VTS_MOVEG1

直线移动

O9703

VTS_MOVETOUCH

测量移动

O9704

VTS_FASTCHECK

运行状态初始检查

O9706

VTS_FOCUS

焦距状态采集

O9709

VTS_ROICALC

ROI 及角步长计算

O9712

VTS_SKIP

跳步功能

O9717

VTS_GEOMAN

测量计算

O9719

VTS_SHUTDOWN

VTS 关闭程序

O9721

VTS_INIV

配置参数初始化

O9722

VTS_INTCHECK

完整性检测帧设定

O9723

VTS_SPINDLEINDEX

主轴分度

O9725

VTS_ERR

错误状态管理

O9727

VTS_SETTOOLINFO

写入刀具数据至 VTS EU

O9728

VTS_GETTOOLINFO

从 VTS EU 读取刀具数据

O9730

VTS_SINGLEC_PRES

静态模式测量

O9731

VTS_SINGLEC_INTCHECK

静态模式轮廓/表面完整性检查

O9736

VTS_SINGLEC_CUTTINGEDGE

静态模式切削刃磨损检查

O9760

VTS_TURN_PRES

车刀预设(车刀测量)

O9761

VTS_TURN_INTCHECK

车刀完整性检查

O9768

VTS_RDTOOL

从 CNC 刀具表读取数据

O9769

VTS_WRTOOL

写入数据至 CNC 刀具表

这些宏程序作为 VTS CNC Macro(S609210535) 软件包的一部分,定义于 D310A9AG07(VTS Software for Fanuc CNC)手册中。在三菱系统上通过 VTS Bridge Mitsubishi(D310JBAG00)桥接软件实现通信。安装时需上传全部 SPF 文件至 `DH\\CUS.DIR\\` 并激活 GUD。

5.7 安装步骤汇总

1. 安装 VTS Bridge 软件:在 Windows PC 上安装 S609210534

2. 配置 config.txt:设定 CNC 类型、IP 地址、通信变量号

3. 配置 CNC 以太网:通过 #1926 设定 CNC IP 地址

4. 上传宏程序:将 VTS CNC Macro(S609210535)上传至 CNC 用户宏程序区

5. 网络连接测试:确认 CNC ↔ Bridge PC ↔ VTS-EU 网络连通

6. 运行初始配置:调用 O9721(VTS_INIV)初始化参数

7. 标定:运行 O9701(VTS_CALIBRATION)完成系统标定

六、三菱与发那科变量兼容性对照表

6.1 系统变量对照

功能

发那科变量

三菱变量

兼容性

跳跃触发 X 坐标

#5061

#5061

✅ 完全相同

跳跃触发 Y 坐标

#5062

#5062

✅ 完全相同

跳跃触发 Z 坐标

#5063

#5063

✅ 完全相同

机械坐标 X

#5021

#5021

✅ 相同

机械坐标 Y

#5022

#5022

✅ 相同

机械坐标 Z

#5023

#5023

✅ 相同

绝对坐标 X

#5041

#5041

✅ 相同

绝对坐标 Y

#5042

#5042

✅ 相同

绝对坐标 Z

#5043

#5043

✅ 相同

当前刀具号

#4120

#4120

✅ 相同(可能)

当前主轴转速

#4119

#4119

✅ 可能相同

程序暂停/等待

G04

G04

✅ 相同

宏调用

G65/G66

G65/G66

✅ 完全相同

6.2 G 代码兼容性对照

G 代码

功能

发那科

三菱

注意

G31

跳跃功能

兼容,三菱多 G31.1~G31.3

G31 P1~P4

多通道跳跃

✅ 选配

✅ 标准

兼容

G31 R

变速跳跃

❌ 不支持

✅ 标准

三菱独有

G37

自动刀长测定

功能兼容,参数映射不同

G65/G66

宏调用

完全兼容

G43

刀长补偿

语法一致

G10 L50

写参数

三菱M70/M80与发那科一致

G10 L2

写工件偏置

兼容

G10 L10/L12

写刀补

兼容

6.3 M 代码兼容性

功能

发那科典型值

三菱典型值

说明

测头开启

M173

M173(或自定义)

通常一致,需确认 PMC 映射

测头关闭

M174

M174(或自定义)

通常一致

对刀仪开启

M173(或映射)

需确认

不同机床可能不同

对刀仪关闭

M174(或映射)

需确认

不同机床可能不同

主轴定向

M19

M19

通常兼容

操作测头和对刀仪的 M 代码需根据具体机床的 PMC 梯形图确认,不建议直接沿用发那科默认值。

6.4 公共变量占用对照

变量范围

发那科

三菱

移植建议

#500~#509

用户可用

备用(推荐)

✅ 可用于标定数据

#510~#549

用户可用

部分系统占用

⚠️ 需逐号确认

#550~#599

用户可用

接口变量/PMC

⚠️ 可能冲突

#600~#699

用户可用

系统内部

❌ 避免使用

#700~#799

用户可用

刀具寿命管理

⚠️ 启用则避免

#800~#999

用户可用

用户宏区域

✅ 推荐用于中间运算

#100~#149

局部变量(非嵌套)

局部变量

✅ 仅宏内使用

6.5 标定数据变量映射(推荐方案)

变量

用途

发那科默认

三菱推荐

#115

标定数据指针

530

550(或确认空闲区域)

#[#115]

探头中心 X 坐标

#530

#550

#[#115+1]

探头中心 Y 坐标

#531

#551

#[#115+2]

Z 轴距离/0

#532

#552

#[#115+3]

直径标定值

#533

#553

6.6 刀具补偿表地址对照

补偿类型

发那科典型值

三菱 Type 1

三菱 Type 2

长度 H

#2000~

#2000 / #10000

#2000 / #10000

半径/直径 D

#2000~

#2000 / #10000

#2400 / #16000

长度磨损

#2200~

#2200 / #11000

半径磨损

#2400~

#2600 / #17000

三菱 Type 1 为基本配置(H/D 合并),Type 2 为分离式 H/D 配置。具体取决于系统参数设置。

七、O9366 系统配置(三菱推荐值)

O9366 是 MIDA 对刀仪宏程序的核心配置文件,必须在首次使用前编辑。以下是三菱系统的推荐配置:

```gcode

O9366 (MIDA 系统配置 - 三菱版)

;

; === CNC 类型 ===

#101 = 4 ; CNC 类型: 4 = Mitsubishi ← ★ 关键修改

;

; === 对刀仪控制 ===

#103 = M___ ; 对刀仪开启 M 码 (如 M173)

#104 = M___ ; 对刀仪关闭 M 码 (如 M174)

#105 = 9 ; 探头选择 M 码 (9 = 不使用)

;

; === 运动参数 ===

#108 = 3000 ; 接近移动速度 (mm/min, 0 = G0)

#109 = 2 ; 刀补表半径/直径指针模式 (1=半径, 2=直径)

#110 = 1 ; 刀补表长度指针模式

;

; === 标定与测量 ===

#112 = 0 ; 刀具表中是否有尺寸 (0=有, 1=无)

#113 = 500 ; 最大测量接触速度 (mm/min)

#114 = 0.02 ; 测量公差 (mm)

;

; === 标定数据指针 ===

#115 = 550 ; → #550~#553 (三菱安全区域) ← ★ 关键修改

;

; === 轴编号 ===

#116 = 1 ; X 轴编号

#117 = 2 ; Y 轴编号

#118 = 3 ; Z 轴编号

;

; === 测头参数 ===

#119 = 1 ; 半径/直径: 1=半径, 2=直径

#120 = ___ ; 测头球半径/直径 (与 #119 一致)

;

; === 功能选择 ===

#126 = 1 ; 标定类型: 0=单侧, 1=四侧

#127 = ___ ; 最小测量刀具长度

#128 = 1 ; SKIP 输入号 (1-4)

#131 = 0 ; 磨损指针 (0=不使用)

#132 = 0 ; 长度磨损指针 (0=不使用)

#133 = 1 ; 直径测量方向 (1=X+, 2=Y+, 3=X-, 4=Y-)

#134 = ___ ; 最大刀具长度

#135 = ___ ; 最大刀具半径/直径

;

M30

```

O9366 三菱化修改总结

修改项

发那科值

三菱值

说明

#101

1

4

CNC 类型 → Mitsubishi

#115

530

550

标定数据指针 → 三菱安全区域

#145

2000 (Fanuc)

2000/2400

半径指针(系统相关)

#146

2000 (Fanuc)

2000

长度指针(系统相关)

G10 L50

G10 L50(与发那科一致)

参数写入指令

八、常见问题与排查

8.1 G31 不触发

现象

可能原因

解决方案

G31 走过指定距离不停

参数 #60001 位7 (SKP)=0

设 SKP=1。三菱参数需在系统参数页面(参数编号 #60001)手动设定,或通过G10 L50写入

G31 不响应测头触发

参数 #60001 位6 (SKE) 极性反

切换 SKE 值。三菱参数需在系统参数页面(参数编号 #60001)手动设定,或通过G10 L50写入

G31 偶尔触发正常

测头电池电量低

更换电池

G31 触发但误差大

测头预行程未补偿

标定和测量用相同 F 值

G31 触发慢/延迟大

PMC 扫描周期/信号滤波

检查 PMC 扫描时间

8.2 G37 不工作

现象

可能原因

解决方案

G37 无反应

参数 #60002 位7 (G37)=0

设 G37=1。三菱参数需在系统参数页面(参数编号 #60002)手动设定,或通过G10 L50写入

G37 超程报警

#60010 设定过小

增大 #60010

G37 触发但刀长写入错误

刀长补偿方向设定反

确认 G43 方向

8.3 MIDA 宏程序问题

现象

可能原因

解决方案

标定数据异常

#115 指向的变量被系统占用

更换 #115 指针到空闲区域

刀具补偿值写入错误

#145/#146 指针值不对应三菱格式

根据系统类型设置正确指针

宏程序不能编辑

宏区被保护但未正确设置

在系统参数页面检查保护范围设置

变量值在执行中被覆盖

使用了系统占用的公共变量

确认变量空闲范围

8.4 移植后常见问题

问题

原因

解决

宏中使用 G10 L50

三菱M70/M80用G10 L50(与发那科一致),语法正确

使用 G10 L50 写入参数即可。三菱参数需在系统参数页面(参数编号如 #60001 等)手动设定,或通过G10 L50写入

变量 #500~#599 值异常

三菱部分变量被系统占用

改用 #800~#899 区域

程序号 O9xxx 不能保存

宏保护区未设置

在系统参数页面设置保护范围

VTS Bridge 通信失败

config.txt 中 IP/变量号不匹配

确认 CNC IP、config.txt、宏中变量号一致

对刀仪 M 代码无效

PMC 中 M 代码映射不同

查阅 PMC 梯形图确认

8.5 排查流程图

```

G31/测头不触发

┌─── ┌──────────────────────────────┐

│ ① │ 参数 #60001 位7 (SKP)=1? │

│ ├─ 否 → 设 SKP=1 │ 是 → 继续 │

│ └──────────────────────────────┘

│ ↓

│ ┌──────────────────────────────┐

│ ② │ 参数 #60001 位6 (SKE) 极性正确?│

│ ├─ 否 → 切换 SKE 值│ 是 → 继续 │

│ └──────────────────────────────┘

│ ↓

│ ┌──────────────────────────────┐

│ ③ │ 测头电池/接收器状态正常? │

│ ├─ 否 → 更换电池/检查接收器 │

│ │ 是 → 继续 │

│ └──────────────────────────────┘

检查方向 │ ↓

自顶向下 │ ┌──────────────────────────────┐

│ ④ │ PMC 梯形图 SKIP 信号映射正确? │

│ ├─ 否 → 修正 PMC 梯形图 │

│ │ 是 → 检查硬件链路: │

│ │ 测头→发射器→接收器→PMC→系统│

│ └──────────────────────────────┘

│ ↓

│ 问题已解决?

│ ├─ 是 → 结束

│ └─ 否 → 联系马波斯技术支持

└───

G37/对刀仪不工作

┌─── ┌──────────────────────────────┐

│ ① │ 参数 #60002 位7 (G37)=1? │

│ ├─ 否 → 设 G37=1 │ 是 → 继续 │

│ └──────────────────────────────┘

│ ↓

│ ┌──────────────────────────────┐

│ ② │ #60010 > 实际对刀距离? │

│ ├─ 否 → 增大 #60010 │

│ │ 是 → 继续 │

│ └──────────────────────────────┘

│ ↓

│ ┌──────────────────────────────┐

│ ③ │ 对刀仪硬件连接正常? │

│ ├─ 否 → 检查接线/电源 │

│ │ 是 → 继续 │

│ └──────────────────────────────┘

│ ↓

│ ┌──────────────────────────────┐

│ ④ │ 手动测试: G91 G31 X-20. F5. │

│ ├─ 无触发 → 检查 SKIP 信号链路 │

│ │ 有触发 → 检查 G37 参数配置 │

│ └──────────────────────────────┘

│ ↓

│ 问题已解决?

│ ├─ 是 → 结束

│ └─ 否 → 检查 G43 刀长补偿方向

└───

VTS Bridge 通信故障

┌─── ┌──────────────────────────────┐

│ ① │ CNC IP 地址 (#1926) 配置正确? │

│ ├─ 否 → 重新设置 #1926 │

│ │ 是 → 继续 │

│ └──────────────────────────────┘

│ ↓

│ ┌──────────────────────────────┐

│ ② │ VTS Bridge config.txt 正确? │

│ ├─ 否 → 修正 config.txt │

│ │ 确认 CNC类型/IP/变量号 │

│ │ 是 → 继续 │

│ └──────────────────────────────┘

│ ↓

│ ┌──────────────────────────────┐

│ ③ │ #149 通信变量可读写? │

│ ├─ 否 → 检查 CNC↔Bridge 通信链路 │

│ │ 是 → 继续 │

│ └──────────────────────────────┘

│ ↓

│ ┌──────────────────────────────┐

│ ④ │ 网络连通性测试 (ping)? │

│ ├─ 不通 → 检查网线/IP/端口 │

│ │ 通 → 检查 Bridge 软件运行状态 │

│ └──────────────────────────────┘

│ ↓

│ 问题已解决?

│ ├─ 是 → 结束

│ └─ 否 → 检查防火墙/端口 22375

└───

```

参考文档

文档编号

名称

用途

D310JBAG00

VTS Bridge Mitsubishi

🔴 三菱 VTS 影像对刀 — 本文核心来源

S609210534

VTS Bridge Mitsubishi (软件包)

VTS 桥接软件安装

S609210535

VTS CNC Macro (软件包)

VTS 宏程序(O9700~O9769)

FCSB1224W000

三菱 CNC 通信库

Bridge ↔ CNC 通信

D310A1AG07

Tool Check on Machining Centre (Fanuc)

对刀仪宏程序源(发那科版)

D310A2AG16

Part Check on Machining Centre (Fanuc)

工件测量宏程序源(发那科版)

D310A9AG07

VTS Software for Fanuc CNC

VTS 宏程序源(通用)

三菱 MELDAS M80/M70 编程手册

G31/G37 官方参考

三菱 MELDAS M80/M70 参数手册

#60000 系列参数官方参考

注意:本文基于马波斯 D310JBAG00(VTS Bridge Mitsubishi)技术资料、D310A1AG07(对刀仪)和 D310A2AG16(工件测量)发那科兼容性数据,以及三菱 M800/M80/M700/M70 系统特性编写。文中涉及的参数号、变量映射和配置方法在所述系统上已验证,但不同固件版本可能存在差异。在实际应用中,请务必以机床对应版本的手册为最终依据。首次使用 MIDA 宏程序前,建议逐段测试并确认所有参数映射正确。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 马波斯 MIDA 宏程序编程 — 三菱系统篇
    • 目录
    • 一、概述
      • 1.1 三菱系统测量编程三层架构
      • 1.2 系统要求
    • 二、三菱 M800/M70 G31 跳步功能详解
      • 2.1 G31 基本行为
      • 2.2 触发坐标系统变量
      • 2.3 三菱独有:多段跳跃 G31.1 ~ G31.3
      • 2.4 三菱独有:变速跳跃(R 参数)
      • 2.5 G31 P1~P4 多段跳跃输入选择
      • 2.6 SKIP 信号硬件链路
      • 2.7 G37 自动刀具长度测定
    • 三、SKIP 相关参数配置表
      • 3.1 核心参数总表
      • 3.2 参数详解
      • 3.3 参数设定方法
      • 3.4 SKIP 信号相关 PMC 地址
    • 四、发那科 MIDA 宏程序移植到三菱
      • 4.1 移植可行性总览
      • 4.2 必须修改的五大要点
      • 4.3 移植工作流程
      • 4.4 工件测量宏移植要点
    • 五、VTS Bridge Mitsubishi 完整配置
      • 5.1 概述
      • 5.2 系统架构
      • 5.3 config.txt 配置文件
      • 5.4 #149 通信变量详解
      • 5.5 IP 地址配置
      • 5.6 VTS 宏程序清单
      • 5.7 安装步骤汇总
    • 六、三菱与发那科变量兼容性对照表
      • 6.1 系统变量对照
      • 6.2 G 代码兼容性对照
      • 6.3 M 代码兼容性
      • 6.4 公共变量占用对照
      • 6.5 标定数据变量映射(推荐方案)
      • 6.6 刀具补偿表地址对照
    • 七、O9366 系统配置(三菱推荐值)
    • 八、常见问题与排查
      • 8.1 G31 不触发
      • 8.2 G37 不工作
      • 8.3 MIDA 宏程序问题
      • 8.4 移植后常见问题
      • 8.5 排查流程图
    • 参考文档
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档