首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >马波斯 MIDA 宏程序编程指南 — 西门子 SIEMENS 840D/828D 系统篇

马波斯 MIDA 宏程序编程指南 — 西门子 SIEMENS 840D/828D 系统篇

原创
作者头像
宁波匠测科技
修改2026-08-21 20:24:11
修改2026-08-21 20:24:11
220
举报

马波斯 MIDA 宏程序编程指南 — 西门子 SIEMENS 840D/828D 系统篇

适用系统: Siemens 840D / 840Di / 810D / 828D

目录

  • [一、西门子宏程序架构概述](#一西门子宏程序架构概述)
  • [二、系统设置与参数要求](#二系统设置与参数要求)
  • [三、软件安装步骤](#三软件安装步骤)
  • [四、对刀仪(Tool Check)— D310D1AG03](#四对刀仪tool-check--d310d1ag03)
  • [五、工件测量(Part Inspection)— D310D2AG11](#五工件测量part-inspection--d310d2ag11)
  • [六、激光对刀(Laser Tool Check)— D310D3AG17](#六激光对刀laser-tool-check--d310d3ag17)
  • [七、车床对刀(Tool Check on Lathes)— D310D4AG01](#七车床对刀tool-check-on-lathes--d310d4ag01)
  • [八、车床工件测量(Part Check on Lathes)— D310D5AG06](#八车床工件测量part-check-on-lathes--d310d5ag06)
  • [九、VTS影像对刀系统 — D310D9AG02](#九vts影像对刀系统--d310d9ag02)
  • [十、VTS Bridge桥接 — D310DBAG00](#十vts-bridge桥接--d310dbag00)
  • [十一、GUD变量总表](#十一gud变量总表)
  • [十二、错误代码与报警总表](#十二错误代码与报警总表)
  • [十三、综合编程示例](#十三综合编程示例)
  • [十四、注意事项与常见问题](#十四注意事项与常见问题)

一、西门子宏程序架构概述

1.1 与发那科系统的核心差异

特性

发那科 (FANUC)

西门子 (SIEMENS)

调用方式

`G65 P9376 A_ B_ C_`

直接调用 SPF 文件名

程序载体

宏程序 O9000~O9999

SPF 子程序文件

全局变量

#500~#999 公共变量

GUD(Global User Data)变量

参数传递

地址字母 `A B C D...`

括号参数 `(param1, param2, ...)`

安装目录

宏程序目录

`DH\CUS.DIR`(用户循环目录)

变量定义

固定 # 编号

命名变量 + DEF 定义文件

1.2 供货包目录结构

马波斯西门子软件光盘包含以下目录:

```

根目录/

├── 840D_PL/ # Siemens 840D Power Line (PCU50)

│ ├── BMP/ # 图形界面位图文件

│ └── COM/ # 软键与用户界面文件

├── 840D_SL/ # Siemens 840D Solution Line (HMI Embedded)

│ ├── BMP/ # 图形界面位图文件

│ └── COM/ # 软键与用户界面文件

├── 828D_840D_SL_V2_6/ # Siemens 828D / 840D SL (NCU 2.6+)

│ ├── PNG/ # 图形界面 PNG 文件

│ └── COM/ # 软键与用户界面文件

├── SPF/ # ★ 核心测量循环子程序

└── GUD/ # ★ GUD 全局变量定义文件

```

1.3 SPF 文件命名规则

西门子系统的宏程序以 `.SPF` 为扩展名,命名遵循以下规则:

前缀

应用领域

来源文档

`MPS_*`

对刀仪(Tool Check)

D310D1AG03

`MS_*`

工件测量(Part Inspection)

D310D2AG11

`ML_*`

激光对刀(Laser Tool Check)

D310D3AG17

`MTS_*`

车床对刀(Lathe Tool Check)

D310D4AG01

`MPL_*`

车床工件测量(Lathe Part Check)

D310D5AG06

`VTS_*`

VTS影像对刀

D310D9AG02

二、系统设置与参数要求

2.1 NC 参数要求

使用马波斯宏程序前,必须确认以下机床数据满足最低要求:

参数号

参数名

说明

最低要求

18118

`MM_NUM_GUD_MODULES`

GUD 模块数量

≥ 5

18130

`MM_NUM_GUD_NAMES_CHAN`

通道特定用户变量数

≥ 100(对刀仪≥15)

18160

`MM_NUM_USER_MACROS`

宏程序数量

≥ 100(工件测量/激光)

28020

`MM_NUM_LUD_NAMES_TOTAL`

局部用户变量总数

≥ 1000(工件测量/激光)

28040

`MM_LUD_VALUES_MEM`

局部变量值存储区大小

≥ 200(工件测量/激光)

2.2 修改参数步骤

1. 进入 STARTUP(调试)MACHINE DATA(机床数据)

2. 按 OPTIONS(选项)SELECT ALL(全选)

3. 搜索对应参数号并修改

4. 创建新 NC 存档使参数生效

2.3 GUD 激活

SPF 文件和 GUD 文件上传后,需要 激活 GUD

```

[西门子操作面板]

1. SERVICES(服务)

2. DEFINITIONS(定义)

3. SELECT GUD x(选择 GUD 编号)

4. DATA MANAGEMENT(数据管理)

5. ACTIVATION(激活)

6. YES(确认)

```

各软件包使用的 GUD 编号:

软件包

默认 GUD

说明

对刀仪 MPS_*

GUD 4

对刀仪测量

工件测量 MS_*

GUD 9

工件测量

激光 ML_*

GUD 4

激光对刀

车床对刀 MTS_*

GUD 4

车床对刀

车床工件 MPL_*

GUD 4

车床工件测量

VTS VTS_*

GUD 内建

VTS 影像测量

注意:如果默认 GUD 已被机床占用,可将 GUD 文件重命名为其他空闲编号(如 GUD6),并相应修改参数 18118。

2.4 828D 特殊许可要求

Siemens 828D 系统需要启用以下许可才能正确显示循环图形页面:

```

Sinumerik HMI SL Runtime OA Easyscreen

启用步骤:

1. SET-UP(设置)

2. >(扩展)

3. LICENCES(许可)

4. ALL OPTIONS(所有选项)

5. 勾选上述许可

```

三、软件安装步骤

3.1 安装前备份

```mermaid

graph LR

A[SERVICES] --> B[> 扩展]

B --> C[Standard MIS]

C --> D[选择 NC]

D --> E[命名存档]

E --> F[ARCHIVE 存档]

```

3.2 安装方式

支持以下安装方式:

  • USB 直接拷贝:CNC 有 USB 端口时适用
  • PC 网络传输:通过以太网电缆连接 PC 和 CNC

3.3 核心安装流程

1. 拷贝 SPF 文件 → `DH\CUS.DIR\`(用户循环目录)

2. 拷贝 GUD 文件 → `DH\DEF.DIR\`(定义目录)

3. 激活 GUD(见 2.3 节)

4. 检查加载状态:确认 SPF 文件旁有 X 标记

5. 重启系统:断电重启后生效

3.4 图形界面安装(可选)

图形界面为可选功能,测量循环可在无图形界面下完全运行。

3.4.1 840D_PL(Power Line / PCU50)

```

BMP 文件 → DH\CUS.DIR\HLP.DIR\

COM 文件:

marpostc.com → DH\CUS.DIR\ (对刀仪)

marpos.com → DH\CUS.DIR\ (同时有工件测头时)

marp_xx.com → DH\MB.DIR\ (报警文本,xx=语言)

修改 aeditor.com → 添加 HS6="MARPOSS" 软键

```

3.4.2 840D_SL(Solution Line / HMI Embedded)

```

修改 aeditor.com:

//S(Start)

...

HS6=("MARPOSS",,se1)

PRESS(HS6)

LS("MARP_PS","marpostc.com",1)

END_PRESS

...

//END

放置路径:

aeditor.com(修改版) → card/user/sinumerik/hmi/proj

marpostc.com → card/user/sinumerik/hmi/proj

.bmp 文件 → card/user/sinumerik/hmi/ico/子目录

aluc_xxx.txt → card/user/sinumerik/hmi/lng/相应语言

修改 common.com:

[MMC_DOS]

SC316 = aeditor.com ; ISO 方式:配置 HS6 软键调用 MARPOSS

SC8454 = marpostc.com ; ShopMill/Turn 方式:配置软键调用对刀仪

SC8496 = aeditor.com ; ISO 方式:配置 HS6 软键调用 MARPOSS(冗余入口)

```

3.4.3 828D / 840D_SL V2.6(NCU 2.6+)

```

修改 aeditor.com:

HS9=("MARPOSS",,se1) ← 828D 使用 HS9

LS("MARP_PS","marpostc.com",1)

修改 easyscreen.ini:

[STARTFILES]

StartFile05 = area := AreaProgramEdit, dialog := SlProgramEdit,

screen := EditorScreen, startfile := aeditor.com

[LANGUAGEFILES]

LngFile03 = aluc.txt

```

3.5 各软件包界面文件对照表

软件包

COM 文件

软键标签

对刀仪

`marpostc.com`

MARP_PS

工件测量

`marpos_s.com`

MARP_SONDA

激光

`marpos_l.com`

MARP_LASER

车床对刀

`marpostl.com`

MARP_TL

车床工件

`marpospl.com`

MARP_SONDAT

VTS

内建

VTS

四、对刀仪(Tool Check)— D310D1AG03

4.1 概述

适用于 Siemens 840D/840Di/810D/828D 系统的接触式对刀仪测量软件包(SW 4.6)。通过 MIDA 对刀仪测头实现刀具的长度、半径测量和完整性检查。

4.2 核心 SPF 文件对照表

文件名

功能

调用格式

`MPS_INI.SPF`

系统初始化/参数配置

首次运行前配置一次

`MPS_CAL.SPF`

对刀仪标定

`MPS_CAL(M_DISTS, M_OFSL, M_DIR)`

`MPS_PRES.SPF`

刀具长度/半径测量

`MPS_PRES(M_DISTS, M_OFSR, M_OFSL, M_TOLR, M_TOLL, M_DIR)`

`MPS_INTL.SPF`

长度完整性检查

`MPS_INTL(M_DISTS, M_TOLL)`

4.3 MPS_INI 初始化参数

在首次使用前,必须在 `MPS_INI.SPF` 中配置以下参数:

参数名

说明

取值示例

`MAR_TASTA_ON`

测头开启 M 代码

`70`

`MAR_TASTA_OFF`

测头关闭 M 代码

`71`

`MAR_INPUT`

测头输入号/类型

`1`(Source) / `-1`(Sink) / `2` / `-2`

`MAR_AXIS_L`

长度测量轴名称

`Z`

`MAR_AXIS_R`

半径测量轴名称

`Y`

`MAR_AXIS_P`

移动到对刀仪中心轴名称

`X`

`MAR_PROBE_L`

长度测量轴上的对刀仪位置

`-200.0`

`MAR_PROBE_R`

半径测量轴上的对刀仪位置

`-150.0`

`MAR_PROBE_P`

对刀仪中心位置

`0`

`MAR_DIR_L`

长度测量方向

`1`(正) / `-1`(负)

`MAR_DIR_R`

半径测量方向

`1`(正) / `-1`(负)

`MAR_SAFETY`

安全距离

`50.0`

`MAR_TOLL_TOUCH`

触测重复性最大误差

`0.010`

`MAR_VT`

最大切削速度

`-1`(使用 Len_Feed)

`MAR_DIST`

粗触后退距离

`1.8`

`MAR_LATO`

测头接触块尺寸

`20.0`

`MAR_C`

测头搜索行程

`10.0`

`MAR_TIPOCAL`

标定触碰次数

`1`(Z+径向) / `2`(Z+4方向) / `3`(仅Z)

`MAR_MAXL`

最大可测刀具长度

`300.0`

`MAR_MINL`

最小可测刀具长度

`5.0`

`MAR_MAXR`

最大可测刀具半径

`60.0`

`MAR_STOP`

断刀报警管理

`0`(停机) / `1`(仅设MAR_UTR=1)

`MAR_RAPIDO`

定位速度

`3000`

`MAR_LEN_FEED`

同心刀具触测速度

`200`

`MAR_RPM`

主轴转速(MAR_VT=-1时)

`400`

`MAR_LANG`

报警消息语言

`2`(English)

`MAR_TOOLDATA`

刀具测量类型

`0`(已知刀具) / `1`(未知刀具)

4.4 MPS_CAL — 对刀仪标定

功能:使用已知尺寸的标准刀具(Master)精确检测对刀仪在机床坐标系中的位置。

调用格式

```sinumerik

MPS_CAL(M_DISTS, M_OFSL, M_DIR)

```

参数说明

参数

说明

示例值

`M_DISTS`

快速接近安全距离 (mm)

`10`

`M_OFSL`

径向标定触测位置距刀尖距离 (mm)

`5`

`M_DIR`

主轴旋转方向

`3`(M3正转) / `4`(M4反转)

完整示例

```sinumerik

T99 M6 ; 调用标定刀具

D1 ; 激活刀具补偿

MPS_CAL(10, 5, 4) ; 标定:快速接近10mm,M4 400rpm

; 径向触测在距刀尖5mm处

M30 ; 程序结束

```

输出参数

  • `MAR_MEAS_R` — 标定后的半径测量位置
  • `MAR_MEAS_L` — 标定后的长度测量位置
  • `MAR_PROBE_P` — 标定后的对刀仪中心位置(仅当 MAR_TIPOCAL=2 时)

标定前准备

1. 将标定标准刀装入主轴

2. 在刀具偏置表中输入标定刀的长度和直径

3. 若使用负刀具,标定刀长度应为负值

4.5 MPS_PRES — 刀具预设/测量

功能:测量刀具长度和半径,可检查刀具是否断裂。

调用格式

```sinumerik

MPS_PRES(M_DISTS, M_OFSR, M_OFSL, M_TOLR, M_TOLL, M_DIR)

```

参数说明

参数

说明

示例值

`M_DISTS`

快速接近安全距离 (mm)

`10`

`M_OFSR`

长度测量偏移(距刀具中心,=0则测量中心)

`9`

`M_OFSL`

直径测量位置(距刀尖,=0则不测半径)

`3`

`M_TOLR`

半径公差(=0直接写入,≠0则检查)

`0`

`M_TOLL`

长度公差(=0直接写入,≠0则检查)

`0`

`M_DIR`

主轴旋转方向

`3`(M3) / `4`(M4)

刀具测量示例(测量长度+半径,写入刀补表):

```sinumerik

T5 M6 ; 调用待测刀具

D1 ; 激活补偿

MPS_PRES(10, 9, 3, 0, 0, 4) ; 接近10mm,偏离中心9mm测长度

; 距刀尖3mm测半径,M4旋转

; 结果直接更新刀补表

M30

```

刀具长度检查示例(仅检查,不更新刀补表):

```sinumerik

T5 M6

D1

MPS_PRES(20, 9, 0, 0, 0.5, 4) ; 长度检查,公差0.5mm

; M_TOLL=0.5 → 超差报警

M30

```

输出

  • 长度和半径测量值写入刀具表
  • 磨损值写入刀具表磨损字段
  • `MAR_UTR` — 超差指示(仅当 MAR_STOP=1 时)

4.6 MPS_INTL — 长度完整性检查

功能:快速检查轴向刀具(钻头、丝锥、铰刀等)的长度完整性。

调用格式

```sinumerik

MPS_INTL(M_DISTS, M_TOLL)

```

参数说明

参数

说明

示例值

`M_DISTS`

快速接近安全距离 (mm)

`10`

`M_TOLL`

长度公差 (mm)

`0.5`

示例

```sinumerik

T5 M6

D1

MPS_INTL(10, 0.5) ; 接近10mm,长度公差0.5mm

M30

```

五、工件测量(Part Inspection)— D310D2AG11

5.1 概述

适用于加工中心的接触式工件测量软件包(SW 10.0),支持 INSPECTION PREMIUM(标准版)和 INSPECTION ULTIMATE(高级版)两个版本。

5.2 版本功能对照

功能

PREMIUM

ULTIMATE

基础循环(ALM/IT/MOVE/TOUCH等)

手动测量(单点/孔/腹板/角点)

自动标定

自动孔/外圆测量

自动腹板/型腔测量

自动角点测量

三点圆标定/测量

双孔/外圆测量

三/四孔/外圆测量

余量测量

表面倾斜角测量

8点平行六面体偏移/倾斜测量

5.3 SPF 文件清单

基础循环(通用)

文件名

功能

`MS_ALM.SPF`

报警管理

`MS_IT/UK/GR/SP/FR/RU.SPF`

多语言消息显示

`MS_IN1~IN5.SPF`

用户自定义输入(循环前执行)

`MS_OUT1~OUT5.SPF`

用户自定义输出(循环后执行)

`MS_MOVE.SPF`

线性移动

`MS_MOVEB.SPF`

带安全距离的移动

`MS_MMOVEB.SPF`

多点移动

`MS_TCHS.SPF`

触测移动

`MS_SAVE.SPF`

测量值保存

手动测量循环

文件名

功能

`MS_MTXYZ.SPF`

单点测量(手动)

`MS_MHP.SPF`

孔/外圆测量(手动)

`MS_MWP.SPF`

腹板/型腔测量(手动)

`MS_MCORN.SPF`

角点测量(手动)

自动测量循环

文件名

功能

`MS_SCAL.SPF`

安全定位

`MS_CA.SPF`

标定

`MS_3CAL.SPF`

三点圆标定

`MS_3HP.SPF`

三点圆测量

`MS_HP.SPF`

孔/外圆测量

`MS_WP.SPF`

腹板/型腔测量

`MS_TXYZ.SPF`

单点测量(自动)

`MS_CORN.SPF`

角点测量(自动)

`MS_ANGL.SPF`

表面倾斜角测量(Ultimate)

`MS_SVRM.SPF`

余量测量(Ultimate)

`MS_3HP2.SPF`

双孔/外圆测量(Ultimate)

`MS_3HP34.SPF`

三/四孔/外圆测量(Ultimate)

5.4 MS_INISx 初始化配置

系统支持最多 5 种配置(对应 MS_INIS1~MS_INIS5),可管理不同铣头或不同测针配置。

配置参数

参数名

说明

示例值

`MS_SON`

测头开启 M 代码

`70`

`MS_SOFF`

测头关闭 M 代码

`71`

`MS_INPUTS`

测头输入号/类型

`1`(Source) / `-1`(Sink) / `2` / `-2`

`MS_ACT`

测头自动激活

`1`(循环内激活) / `0`(程序激活)

`MS_Z`

平行于测头的轴

`Z`

`MS_X`

测头平面的第一轴

`X`

`MS_Y`

测头平面的第二轴

`Y`

`MS_ST`

触测速度 (mm/min)

`100~400`

`MS_RAPID`

安全移动速度 (mm/min)

`1000~2000`

`MS_CS`

过行程搜索范围

`5.0`

`MS_R`

触测后退距离

`2.0`

`MS_TOOLM`

智能刀具管理

`0`(无) / `1`(有)

`MS_X_SHIFT`

测针 X 方向偏移

`0`(无偏移)

`MS_Y_SHIFT`

测针 Y 方向偏移

`0`(无偏移)

`MS_L_TOOL`

测针长度(有偏移时)

`100.0`

`MS_R_SPHERE`

测球半径(有偏移时)

`3.0`

`MS_LANG`

语言选择

`2`(English)

5.5 测针偏移配置(L型测针/偏置测针)

当使用 L型测针偏置直测针 时,需配置:

```

MS_X_SHIFT = 20.0 ; 测针在 X 方向偏移量

MS_Y_SHIFT = 0.0 ; 测针在 Y 方向偏移量

MS_L_TOOL = 80.0 ; 测针有效长度

MS_R_SPHERE = 3.0 ; 测球半径

```

每个 测针-测球 组合对应一个 MS_INISx 文件,最多 5 个配置。

5.6 手动测量循环详解

5.6.1 单点测量 — MS_MTXYZ

在 X/Y/Z 任一方向单次触碰,获取工件表面坐标。

5.6.2 内孔测量(Bore)— MS_MHP(T_M=1)

测量内孔圆心坐标和直径,4点触碰。

5.6.3 外圆测量(Boss)— MS_MHP(T_M=2)

测量外圆圆心坐标和直径,4点触碰。

5.6.4 障碍孔测量(Obstructed Bore)— MS_MHP(T_M=3)

部分被遮挡的孔测量,3点触碰。

5.6.5 腹板测量(Web)— MS_MWP

测量凸台在 X/Y 方向的尺寸和中心位置。

5.6.6 型腔测量(Pocket)— MS_MWP

测量凹槽的 X/Y 方向内部尺寸和中心位置。

5.6.7 角点测量(Corner)— MS_MCORN

测量内角或外角的位置坐标。

5.7 自动测量循环详解

5.7.1 安全定位 — MS_SCAL

受保护的安全移动循环,避免碰撞。

5.7.2 标定 — MS_CA

使用标准球或标准块标定测头位置。

5.7.3 三点圆标定 — MS_3CAL

用三点标定测头位置和测球半径。

5.7.4 三点圆测量 — MS_3HP

三点确定一个圆(外圆或障碍孔),适用于部分遮挡的孔。

5.7.5 孔/外圆测量 — MS_HP

自动内孔或外圆测量(4点)。

5.7.6 腹板/型腔 — MS_WP

自动测量腹板(凸台)或型腔(凹槽)尺寸。

六、激光对刀(Laser Tool Check)— D310D3AG17

6.1 概述

适用于加工中心和铣床的 MIDA 激光对刀系统(SW 14.0),支持非接触式刀具测量、标定和完整性检查。

6.2 系统架构

系统支持最多 2个激光头3个加工头 的组合,并可按工作区域逻辑划分。

```

Head 1 Head 2 Head 3

Laser 1 Laser 2

Zone 1 Zone 2 Zone 3

```

6.3 SPF 文件清单

文件名

功能

`ML_LCAL.SPF`

标定循环

`ML_PRES.SPF`

刀具预设/测量

`ML_INTS.SPF`

切削刃完整性检查(直线扫描)

`ML_INTP.SPF`

切削刃轮廓复杂检查

`ML_INTC.SPF`

刀具圆弧扇区检查

`ML_INTL.SPF`

刀具轴向断裂检查

`ML_DISC.SPF`

盘铣刀预设

`ML_TMC.SPF`

热漂移补偿

`ML_BAR.SPF`

镗刀长度/半径测量(类型1)

`ML_PRESC.SPF`

镗刀长度/半径测量(类型2)

`ML_HEAD.SPF`

初始化调用

`ML_INIL1~6.SPF`

初始化参数配置(激光x头组合)

`ML_IN1~6.SPF`

用户自定义输入文件

`ML_OUT1~6.SPF`

用户自定义输出文件

`ML_LON.SPF`

激光开启

`ML_LOFF.SPF`

激光关闭

`ML_RT.SPF`

读取主轴刀具数据

`ML_WT.SPF`

写入刀具表数据

`ML_ALM.SPF`

消息显示

`ML_UK/FR/IT/SP/GR/CH/LANG.SPF`

多语言消息

`ML_G1.SPF`

线性移动

`ML_G2.SPF`

顺时针圆弧移动

`ML_G3.SPF`

逆时针圆弧移动

`ML_GT.SPF`

带触测移动

`ML_SIN.SPF`

调用用户输入文件

`ML_SOUT.SPF`

调用用户输出文件

`ML_SL.SPF`

激光输出状态测试

`ML_TCHL.SPF`

触测程序

6.4 ML_HEAD 参数配置

参数名

说明

示例值

`M_LASER_HEAD`

激光/头数量配置

`0`(1激光1头) / `1`(多激光/多头)

`ML_LANG`

报警消息语言

`1`(Italian)~`7`(Russian)

6.5 ML_INIL1~6 参数配置

参数名

说明

示例值

`ML_MH`

标定标准件类型

`1`(无球标准盘) / `0`(带球标准)

`ML_PULSE`

动态输出脉冲时间 (s)

`0.020`

`ML_INPUT`

测头输入号/类型

`+1`(上升沿) / `-1`(下降沿)

`ML_DIRR`

半径测量接近方向

`+1`(正) / `-1`(负)

`ML_DIRL`

长度测量接近方向

`+1`(正) / `-1`(负)

`ML_LR`

激光束半径测量位置(机床坐标)

`0`

`ML_LP`

平行于激光束的测量位置

`0`

`ML_LL`

激光束长度测量位置

`0`

`ML_PROBE`

机械接触位置偏移

`0`(无) / `-100`(有)

`ML_FH`

激光叉深

`50`

`ML_WP`

工作平面选择

`1`~`6`(见详表)

`ML_TM`

磨损/断刀刀具管理

`0`(不停机) / `1`(停机报警) / `2`(锁定不停机)

`ML_TT`

触测重复性公差

`0.005`

`ML_MINL`

最小可测刀具长度

`50`

`ML_MAXL`

最大可测刀具长度

`200`

`ML_MAXR`

最大可测刀具半径

`30`

`ML_DIST1`

首次触测后退距离

`1.8`

`ML_DIST2`

二次触测后退距离

`0.2`

`ML_DIST3`

三次触测后退距离

`0.05`

`ML_RAPID`

快速移动速度

`3000~6000`

`ML_ON`

激光开启 M 代码

`51`

`ML_OFF`

激光关闭 M 代码

`52`

`ML_DINON`

动态输出使能 M 代码

`53`

`ML_DINOFF`

动态输出关闭 M 代码

`54`

`ML_PROBEON`

机械测针使能 M 代码

`ML_1_2`

半径测量方式

`1`(单方向) / `2`(双方向)

`ML_DA`

死轴管理

`0`(无) / `1`(X) / `2`(Y) / `3`(Z)

`ML_LASER_OK`

激光 OK 输入地址

`ML_STATIC`

静态输出输入地址

`ML_BIT_OK`

激光 OK 位位置

`0~7`

`ML_BIT_STATIC`

静态输出位位置

`0~7`

`ML_ANGLETILT`

激光安装倾斜角度

`0`(无倾斜)

工作平面选择 (ML_WP)

说明

1

XY平面:激光∥X轴,长度沿Z轴

2

XY平面:激光∥Y轴,长度沿Z轴

3

XZ平面:激光∥X轴,长度沿Y轴

4

XZ平面:激光∥Z轴,长度沿Y轴

5

YZ平面:激光∥Y轴,长度沿X轴

6

YZ平面:激光∥Z轴,长度沿X轴

6.6 ML_LCAL — 激光标定

调用格式

```sinumerik

ML_LCAL(M_DISTS, M_RPM)

```

参数

  • `M_DISTS` — 安全距离(主轴鼻端距激光轴向位置)
  • `M_RPM` — 主轴转速(建议≥1000 RPM)

示例

```sinumerik

T99 M6 ; 调用标定刀具

D1 ; 激活补偿

ML_LCAL(100, 3000) ; 快速接近100mm,3000rpm标定

M30

```

输出参数

  • `ML_LAPM[n]` — 轴向负方向激光位置
  • `ML_LAPP[n]` — 轴向正方向激光位置
  • `ML_LARM[n]` — 径向负方向激光位置
  • `ML_LARP[n]` — 径向正方向激光位置
  • `ML_LAC[n]` — 轴向激光中心
  • `ML_LRC[n]` — 径向激光中心
  • `ML_LMB[n]` — 激光束平均半径
  • `ML_LPP[n]` — 平行于激光束的机械接触位置

6.7 ML_PRES — 刀具测量

调用格式

```sinumerik

ML_PRES(M_DISTS, M_RPM, M_OFFR, M_OFFL, M_TOLL, M_TOLR, M_NRIP, M_STEP, M_SHIFT)

```

参数

说明

示例值

`M_DISTS`

安全距离

`100`

`M_RPM`

主轴转速

`3000`

`M_OFFR`

长度测量偏移(≥0)

`0`

`M_OFFL`

半径测量位置(<0则不测半径)

`5`

`M_TOLL`

长度磨损/断裂公差

`0.05`

`M_TOLR`

半径磨损/断裂公差

`0.03`

`M_NRIP`

重复性不达标时的最大测量次数

`3`

`M_STEP`

径向测量次数

`0`(单次) / `-1`(锥度测量)

`M_SHIFT`

径向测量间距

同心刀具示例

```sinumerik

T5 M6

D1

ML_PRES(100, 3000, 0, 5, 0.05, 0.03, 3, 0, 0)

M30

```

锥度测量(M_STEP=-1)

```sinumerik

T5 M6

D1

ML_PRES(100, 3000, 0, 5, 0, 0, 3, -1, 10)

; 输出:ML_SLOPE = 两个高度测量差值

; ML_SLOPE_ANG = 刀具锥度角

M30

```

七、车床对刀(Tool Check on Lathes)— D310D4AG01

7.1 概述

适用于西门子控制数控车床和车削中心的接触式对刀仪软件(SW 4)。

7.2 SPF 文件清单

SPF 文件

功能

`MTS_CPU.SPF`

手动标定

`MTS_CAU.SPF`

自动标定

`MTS_PMU.SPF`

手动预设/测量

`MTS_PAU.SPF`

自动预设/测量

`MTS_INI.SPF`

初始化参数配置

7.3 MTS_INI 初始化参数

参数名

说明

示例

`M_CUBE`

接触块尺寸

`20.0`

`M_INPUT`

测头输入号/类型

`1`(Source) / `-1`(Sink)

`M_FEEDT`

触测速度

`200`

`M_FEEDR`

快速移动速度

`3000`

`M_LANG`

报警语言

`2`(English)

`M_RADIAM`

径向尺寸模式

`1`(半径) / `2`(直径)

`M_SAFE`

安全距离

`5.0`

`M_DISTZ`

刀塔Z向回零距离

`0`(正刀补)

`M_DISTX`

刀塔X向回零距离

`0`(正刀补)

正刀补与负刀补

  • 正刀补 (POSITIVE OFFSET):`M_DISTZ=0, M_DISTX=0`
  • 负刀补 (NEGATIVE OFFSET):`M_DISTZ=距离值(正)`, `M_DISTX=距离值(正)`

7.4 MTS_CPU — 手动标定

功能:逐个方向标定对刀仪位置。

调用格式

```sinumerik

MTS_CPU(T_M)

```

参数

说明

取值

`T_M`

标定方向

`1`(X-) / `2`(X+) / `3`(Z-) / `4`(Z+)

示例

```sinumerik

T1 M6 ; 调用标定刀

D1 ; 激活补偿

MTS_CPU(1) ; 标定 X- 方向

MTS_CPU(2) ; 标定 X+ 方向

MTS_CPU(3) ; 标定 Z- 方向

MTS_CPU(4) ; 标定 Z+ 方向

M30

```

输出

  • `M_CALXM` — X-方向标定偏移
  • `M_CALXP` — X+方向标定偏移
  • `M_CALZM` — Z-方向标定偏移
  • `M_CALZP` — Z+方向标定偏移

7.5 MTS_CAU — 自动标定

功能:自动标定接触块的一个或两个侧面。

示例

```sinumerik

T1 M6

D1

MTS_CAU(T_M) ; T_M 根据刀沿方向自动判断

M30

```

八、车床工件测量(Part Check on Lathes)— D310D5AG06

8.1 概述

适用于西门子控制车床的车削工件测量软件包(SW 6),支持水平(HL)和垂直(VL)车床。

8.2 SPF 文件清单

文件名

功能

`MPL_INI.SPF`

初始化参数配置

`MPL_CALZ.SPF`

Z 轴标定

`MPL_CALX.SPF`

X 轴标定

`MPL_CALY.SPF`

Y 轴标定

`MPL_MISX.SPF`

X 向直径测量

`MPL_MISY.SPF`

Y 向直径测量

`MPL_MISZ.SPF`

Z 向高度测量

`MPL_WPZ.SPF`

Z 向腹板/型腔测量

`MPL_WPX.SPF`

X 向腹板/型腔测量

`MPL_WPY.SPF`

Y 向腹板/型腔测量

`MPL_CERC.SPF`

C 轴中心搜索

`MPL_ALBRO.SPF`

X/Y/Z孔/轴径+C轴中心搜索

8.3 MPL_INI 初始化参数

参数名

说明

示例

`MAR_SON`

测头开启 M 代码

`70`

`MAR_SOFF`

测头关闭 M 代码

`71`

`MAR_INPUTS`

测头输入号/类型

`1`(Source) / `-1`(Sink)

`MAR_CSA`

触测搜索区域

`5.0`

`MAR_MOV`

触测速度

`200`

`MAR_RAPID`

安全移动速度

`3000`

`MAR_LANG`

报警语言

`2`(English)

`MAR_SPHR`

测球直径

`6.0`

`MAR_TOOL`

刀补表管理

`0`(无ShopTurn) / `1`(有ShopTurn)

8.4 MPL_CALZ — Z 轴标定

调用格式

```sinumerik

MPL_CALZ(N_T, T_M, Z_S, Z_M, D_S, D_M)

```

参数

说明

示例

`N_T`

测针编号

`1~4`

`T_M`

标定方向

`1`(Z+) / `-1`(Z-)

`Z_S`

Z 轴安全接近距离

`30`

`Z_M`

Z 轴标定位置

`-10`

`D_S`

X 轴安全接近距离

`25`

`D_M`

X 轴标定直径位置

`12`

示例

```sinumerik

T99 M6 ; 调用探针

D1 ; 激活补偿

G54 ; 激活工件零点

MPL_CALZ(1, -1, 30, -10, 25, 12) ; 测针1,Z-方向标定

M30

```

输出

  • `MAR_A[n]` — Z-触测标定值
  • `MAR_C[n]` — Z+触测标定值

输出索引说明

  • `MAR_A[0]` / `MAR_C[0]` — 保留
  • `MAR_A[1]` / `MAR_C[1]` — 测针/标定编号1
  • `MAR_A[2]` / `MAR_C[2]` — 测针/标定编号2
  • `MAR_A[3]` / `MAR_C[3]` — 测针/标定编号3

九、VTS影像对刀系统 — D310D9AG02

9.1 概述

MIDA VTS 是非接触式光学影像对刀系统(SW 7.X),通过 CCD 相机和图像处理模块实现对刀具的高精度测量。通过 OPC-UA 协议与 CNC 通信。

前置条件

  • Siemens OPC-UA Server 版本 ≥ 2.2
  • VTS-EU 固件 ≥ 7.1
  • SiemensOPC-UABridge ≥ 3.4.5
  • OPC-UA 许可(Siemens)
  • `Sinumerik HMI SL Runtime OA Easyscreen` 许可(828D)

9.2 SPF 文件清单

程序号

文件名

功能

O9700

`VTS_PRES.SPF`

标准刀具预设/检查(旋转模式)

O9701

`VTS_CALIBRATION.SPF`

VTS 自动标定

O9702

`VTS_MOVEG1.SPF`

线性移动

O9703

`VTS_MOVETOUCH.SPF`

测量移动

O9704

`VTS_FASTCHECK.SPF`

VTS 初始状态检查

O9706

`VTS_FOCUS.SPF`

对焦状态获取

O9709

`VTS_ROICALC.SPF`

ROI 和角度步长计算

O9712

`VTS_SKIP.SPF`

跳过功能

O9717

`VTS_GEOMAN.SPF`

测量功能

O9719

`VTS_SHUTDOWN.SPF`

关机程序

O9721

`VTS_INIV.SPF`

配置参数初始化

O9722

`VTS_INTCHECK.SPF`

完整性检查帧设置

O9723

`VTS_SPINDLEINDEX.SPF`

主轴分度

O9725

`VTS_ERR.SPF`

错误状态管理

O9727

`VTS_SETTOOLINFO.SPF`

存储刀具数据到 VTS EU

O9728

`VTS_GETTOOLINFO.SPF`

从 VTS EU 获取刀具数据

O9730

`VTS_SINGLEC_PRES.SPF`

静态模式测量

O9731

`VTS_SINGLEC_INTCHECK.SPF`

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

O9736

`VTS_SINGLEC_PRES_SURF.SPF`

静态模式表面磨损测量

O9768

`VTS_RDTOOL.SPF`

从 CNC 刀补表读取数据

O9769

`VTS_WRTOOL.SPF`

写入数据到 CNC 刀补表

9.3 VTS_INIV 配置参数

参数名

说明

示例值

`VTS_HS`

Bridge 数据索引变量(需51个连续空闲R参数)

`139`

`VTS_ROUT`

表面分析索引变量

`190`

`_Q1803`

最小刀具长度

`100`

`_Q1804`

最大刀具长度

`200`

`_Q1809`

最大刀具半径

`20`

`_Q1814`

进给速度(=0时使用G0)

`5000`

`_Q1824`

机床径向轴号

`1`

`_Q1825`

机床平行轴号

`2`

`_Q1826`

机床轴向轴号

`3`

`_Q1838`

长度测量接近方向

`+1`(正) / `-1`(负)

`_Q1819`

半径测量接近方向

`+1`(正) / `-1`(负)

`_Q1815`

运行速度标定

`0`(关) / `1`(开)

`_Q1816`

丢弃滤波

`0`(关) / `1`(开)

`_Q1808`

超差模式

`0`(停机报警) / `1`(仅设变量)

`_Q1831`

刀具清洁器径向坐标

`-610.32`

`_Q1832`

刀具清洁器平行坐标

`-100.54`

`_Q1833`

刀具清洁器轴向坐标

`-300.23`

`_Q1813`

刀具清洁器平行轴号

`2`

`_Q1806`

清洁器气流方向

`+1`(正向) / `-1`(负向)

`_Q1807`

清洁时间 (秒)

`10`

`_Q1845`

VTS 快门开启 M 代码

`9`

`_Q1846`

VTS 快门关闭 M 代码

`9`

`_Q1835`

刀具清洁器气流开启 M 代码

`9`

`_Q1836`

刀具清洁器气流关闭 M 代码

`9`

9.4 VTS_CALIBRATION (O9701) — 标定

功能:自动找到 VTS 的 ROI(兴趣区域)中心。

前提条件

1. 完成 VTS_INIV 配置

2. 在刀补表中输入标定刀长度值

3. 用手轮将标定刀具移动到 VTS 视野内(无需精确对焦,但刀尖必须在画面内)

4. 运行 Marposs SiemensOPC-UABridge 且通信正常

示例

```sinumerik

T20 M6 ; 调用标定刀具

HANDWHEEL ; 用手轮移动刀尖到 VTS 视野内

VTS_CALIBRATION ; 执行标定(主轴5000rpm)

```

输出

  • `_Q1885` — VTS 径向轴方向
  • `_Q1886` — VTS 径向中心(机床坐标)
  • `_Q1887` — VTS 平行中心(机床坐标)
  • `_Q1888` — VTS 轴向中心(机床坐标)

9.5 VTS_PRES (O9700) — 刀具预设/检查

功能:支持两种模式——未知刀具预设和已知刀具检查。

调用参数(按顺序写入):

参数

说明

必选

示例

`VA`

安全距离

可选

`300`

`VB`

主轴转速

必选

`5000`

`VC`

长度测量径向偏移(同心=0)

必选

`0`

`VF`

启用 TIR 计算+公差

可选

`VH`

刀具中心计算(1=启用)

可选

`VI`

半径测量轴向偏移(-1=不测半径)

可选/必选*

`VJ`

测量模式

必选

`0~3`

`VK`

曲率半径测量(1=启用)

可选

`VR`

长度公差

可选

`VS`

半径公差

可选

`VU`

双面测量

可选

`1`(单面) / `2`(双面)

测量模式 VJ 说明

VJ

模式

说明

0

未知刀具,无清洁

首次测量,不清洁,直接写入刀补

1

未知刀具,带清洁

首次测量,带刀具清洁

2

已知刀具,无清洁

已知刀具检查,不清洁

3

已知刀具,带清洁

已知刀具检查,带刀具清洁

已知刀具检查示例(VJ=2):

```sinumerik

T20 M6

VA=300 ; 安全距离

VB=5000 ; 5000rpm

VC=0 ; 同心刀具

VJ=2 ; 已知刀具检查模式

VK=1 ; 启用曲率半径测量

VTS_PRES

```

输出

  • 刀具几何值或磨损值更新到刀补表
  • 超差时根据 `_Q1808` 设置停机或仅标记

9.6 VTS_SINGLEC_PRES (O9730) — 静态模式测量

用于在主轴不旋转的静态模式下进行刀具测量。

9.7 VTS_SINGLEC_INTCHECK (O9731) — 静态完整性检查

用于在静态模式下进行刀具轮廓或表面完整性检查。

9.8 VTS_SINGLEC_PRES_SURF (O9736) — 静态表面磨损

用于在静态模式下测量刀具表面磨损。

9.9 刀具偏移量定义(附录1)

平底铣刀 (Flat End Mill)

  • VC:半径补偿偏置
  • VI:半径测量轴向偏置 = 0

球头铣刀 (Ball End Mill)

  • VC = 0(同心测量)
  • VI = 球头半径值

圆鼻铣刀 (Radius End Mill)

  • VC:根据刀尖圆角半径设置
  • VI:刀尖圆角半径值

钻头 (Drill)

  • VC = 0(同心测量)
  • VI = -1(不测量半径)

十、VTS Bridge桥接 — D310DBAG00

10.1 概述

VTS Bridge Siemens OPC UA(代码 S609210532)是用于 Windows 7/10 的桥接应用程序,提供 Siemens 840Dsl/828D 数控系统与 Marposs VTS 测量系统之间的 OPC-UA 通信桥梁。

10.2 组件

  • SiemensOPC-UABridge.exe — 桥接应用程序
  • config.ini — 配置文件(需包含 `VTS_HS` 索引变量设置)

10.3 前置条件

1. Sinumerik Operate 对应版本

2. OPC UA Server 版本 ≥ 2.2

3. OPC UA 许可已启用

4. VTS EU 固件版本 ≥ 7.1

5. 西门子 CNC 端创建 `marposs` 用户

10.4 配置要点

1. OPC UA Server IP 地址和端口号

2. VTS EU IP 地址和端口号

3. config.ini 中的 `VTS_HS` 值与 CNC 侧 VTS_INIV 中设置一致

4. 通信状态指示(界面上的绿色横幅表示通信正常)

十一、GUD变量总表

11.1 对刀仪 GUD 变量(MPS_*)

变量名

类型

说明

`MAR_TASTA_ON`

INT

测头开启 M 代码

`MAR_TASTA_OFF`

INT

测头关闭 M 代码

`MAR_INPUT`

INT

测头输入编号/类型(±1/±2)

`MAR_AXIS_L`

STRING

长度测量轴名

`MAR_AXIS_R`

STRING

半径测量轴名

`MAR_AXIS_P`

STRING

移动到对刀仪中心轴名

`MAR_DIR_L`

INT

长度测量方向(±1)

`MAR_DIR_R`

INT

半径测量方向(±1)

`MAR_PROBE_L`

REAL

对刀仪长度测量位置

`MAR_PROBE_R`

REAL

对刀仪半径测量位置

`MAR_PROBE_P`

REAL

对刀仪中心位置

`MAR_MEAS_L`

REAL

标定后长度测量位置

`MAR_MEAS_R`

REAL

标定后半径测量位置

`MAR_MAXL`

REAL

最大刀具长度

`MAR_MINL`

REAL

最小可测刀具长度

`MAR_MAXR`

REAL

最大可测刀具半径

`MAR_DIST`

REAL

粗触后退距离

`MAR_SAFETY`

REAL

安全距离

`MAR_TOLL_TOUCH`

REAL

触测重复性公差

`MAR_VT`

REAL

最大切削速度

`MAR_LATO`

REAL

接触块尺寸

`MAR_C`

REAL

搜索行程

`MAR_TIPOCAL`

INT

标定类型

`MAR_RAPIDO`

REAL

定位速度

`MAR_LEN_FEED`

REAL

触测速度

`MAR_RPM`

REAL

主轴转速

`MAR_LANG`

INT

语言

`MAR_MM_INCH`

REAL

公/英制转换常数

`MAR_MEAS_SYS`

INT

测量系统(1=mm, -1=inch)

`MAR_TOOLDATA`

INT

刀具测量类型

`MAR_UTR`

INT

超差指示(0=正常, 1=超差)

11.2 工件测量 GUD 变量(MS_*)

变量名

类型

说明

`MS_SON`

INT

测头开启 M 代码

`MS_SOFF`

INT

测头关闭 M 代码

`MS_INPUTS`

INT

测头输入编号/类型

`MS_ACT`

INT

测头自动激活

`MS_Z`

STRING

平行于测头的轴

`MS_X`

STRING

测头平面第一轴

`MS_Y`

STRING

测头平面第二轴

`MS_ST`

REAL

触测速度

`MS_RAPID`

REAL

快速移动速度

`MS_CS`

REAL

过行程搜索范围

`MS_R`

REAL

触测后退距离

`MS_TOOLM`

INT

智能刀具管理

`MS_X_SHIFT`

REAL

测针 X 偏移

`MS_Y_SHIFT`

REAL

测针 Y 偏移

`MS_L_TOOL`

REAL

测针长度

`MS_R_SPHERE`

REAL

测球半径

`MS_LANG`

INT

语言

11.3 激光 GUD 变量(ML_*)

变量名

说明

`ML_LAPM[n]`

轴向负方向激光位置

`ML_LAPP[n]`

轴向正方向激光位置

`ML_LARM[n]`

径向负方向激光位置

`ML_LARP[n]`

径向正方向激光位置

`ML_LAC[n]`

轴向激光中心

`ML_LRC[n]`

径向激光中心

`ML_LMB[n]`

激光束平均半径

`ML_LPP[n]`

平行方向机械接触位置

`ML_LR`

激光束径向位置

`ML_LP`

平行方向位置

`ML_LL`

激光束轴向位置

`ML_MINL`

最小刀具长度

`ML_MAXL`

最大刀具长度

`ML_MAXR`

最大刀具半径

`ML_UTR`

超差指示

`ML_SLOPE`

刀具锥度差值

`ML_SLOPE_ANG`

刀具锥度角

11.4 车床对刀 GUD 变量(MTS_*)

变量名

说明

`M_CUBE`

接触块尺寸

`M_INPUT`

测头输入编号/类型

`M_FEEDT`

触测速度

`M_FEEDR`

快速移动速度

`M_LANG`

语言

`M_RADIAM`

径向模式(半径/直径)

`M_SAFE`

安全距离

`M_DISTZ`

Z 向刀塔回零距离

`M_DISTX`

X 向刀塔回零距离

`M_CALXM`

X-标定偏移

`M_CALXP`

X+标定偏移

`M_CALZM`

Z-标定偏移

`M_CALZP`

Z+标定偏移

11.5 车床工件 GUD 变量(MPL_*)

变量名

说明

`MAR_SON`

测头开启 M 代码

`MAR_SOFF`

测头关闭 M 代码

`MAR_INPUTS`

测头输入编号/类型

`MAR_CSA`

触测搜索区域

`MAR_MOV`

触测速度

`MAR_RAPID`

快速移动速度

`MAR_LANG`

语言

`MAR_SPHR`

测球直径

`MAR_TOOL`

刀补表管理模式

`MAR_A[n]`

Z-标定值(n=1~3)

`MAR_C[n]`

Z+标定值(n=1~3)

11.6 VTS GUD 变量

变量名

说明

`_Q1803`

最小刀具长度

`_Q1804`

最大刀具长度

`_Q1809`

最大刀具半径

`_Q1814`

进给速度

`_Q1824`

径向轴号

`_Q1825`

平行轴号

`_Q1826`

轴向轴号

`_Q1838`

长度接近方向

`_Q1819`

半径接近方向

`_Q1885`

VTS 径向方向

`_Q1886`

VTS 径向中心

`_Q1887`

VTS 平行中心

`_Q1888`

VTS 轴向中心

⚠️ 重要提醒:标定数据(如 `MAR_MEAS_L/R`、`ML_LAC/LRC`、`MAR_A/C[n]` 等)存储在 GUD 变量中。切换公/英制测量系统后,GUD 变量不会自动换算转换,因此必须重新执行标定,否则标定数据与实际测量系统不匹配将导致测量结果错误。

十二、错误代码与报警总表

12.1 对刀仪通用错误(MPS_*)

错误码

中文

说明

E1

无接触

刀具未触碰到测头

E2

长度超差

测量长度超出刀具表公差

E3

半径超差

测量半径超出刀具表公差

E4

转速过高

MAR_RPM > 600

E5

意外触测

定位移动中发生碰撞

E8

长度超安全距离

MAR_MAXL > MAR_SAFETY

E9

需标定

标定数据与测量系统不一致

12.2 工件测量错误(MS_*)

错误

说明

无触测

未接触到工件

数据输入错误

参数值超出范围

提前触测

移动中碰到障碍物

测量值超差

测量值超出公差

12.3 车床对刀错误(MTS_*)

错误

说明

无接触

刀尖未碰到测头

数据输入错误

参数值超出1~4范围

12.4 车床工件错误(MPL_*)

错误

说明

(1) 无触测

探针未接触到工件

(2) 测量值超差

超出 TMA 公差

(3) 提前触测

移动中遇到意外障碍

12.5 VTS 错误分类

类别

说明

测量循环报警

测量过程中的常规报警

标定错误

光线标定失败

处理错误

图像处理异常

硬件错误

相机/光源故障

I/O 错误

输入输出通信故障

相机光学映射错误

相机映射参数异常

通用错误

其他系统错误

编程错误

循环调用参数错误

严重错误

关键系统错误

通信错误

OPC-UA 通信中断

十三、综合编程示例

13.1 对刀仪完整流程

```sinumerik

; ==========================================

; 对刀仪初始化与测量完整流程

; Siemens 840D/828D

; ==========================================

; ---- 第一步:初始化配置(首次运行)----

; 在 MPS_INI.SPF 中配置以下参数:

; MAR_TASTA_ON=70, MAR_TASTA_OFF=71

; MAR_INPUT=1, MAR_AXIS_L="Z", MAR_AXIS_R="Y", MAR_AXIS_P="X"

; MAR_PROBE_L=-200, MAR_PROBE_R=-150, MAR_PROBE_P=0

; MAR_DIR_L=-1, MAR_DIR_R=1

; MAR_SAFETY=50, MAR_LATO=20, MAR_C=10

; MAR_MAXL=300, MAR_MINL=5, MAR_MAXR=60

; MAR_RAPIDO=3000, MAR_LEN_FEED=200, MAR_RPM=400

; MAR_TIPOCAL=1, MAR_LANG=2, MAR_TOOLDATA=0

; ---- 第二步:标定 ----

T99 M6

D1

MPS_CAL(10, 5, 4) ; 标定对刀仪

; 标定结果自动写入 MAR_MEAS_R / MAR_MEAS_L

; ---- 第三步:测量新刀具 ----

T5 M6

D1

MPS_PRES(10, 9, 3, 0, 0, 4) ; 测量长度和半径

; ---- 第四步:检查已知刀具 ----

T3 M6

D1

MPS_INTL(10, 0.5) ; 快速检查长度完整性

; ---- 第五步:带公差的刀具检查 ----

T8 M6

D1

MPS_PRES(20, 9, 0, 0.5, 0.3, 4) ; 长度公差0.5mm,半径公差0.3mm

; 超差时报警停机

M30

```

13.2 工件测量完整流程

```sinumerik

; ==========================================

; 工件测量完整流程

; Siemens 840D/828D

; ==========================================

; ---- 配置 MS_INIS1.SPF ----

; MS_SON=70, MS_SOFF=71, MS_INPUTS=1

; MS_Z="Z", MS_X="X", MS_Y="Y"

; MS_ST=200, MS_RAPID=1500

; MS_CS=5, MS_R=2

; MS_LANG=2

; ---- 1. 安全定位 ----

T1 M6 ; 调用测头

D1

G54 ; 激活工件零点

MS_SCAL ; 安全定位到测量起点

; ---- 2. 测量内孔 ----

; 手动模式:MS_MHP(T_M=1) 内孔

MS_MHP(1,,X,Y,Z,D) ; 测量 X/Y 中心的孔

; 输出圆心坐标和直径

; ---- 3. 测量外圆 ----

; 手动模式:MS_MHP(T_M=2) 外圆

MS_MHP(2,,X,Y,Z,D) ; 测量外圆

; ---- 4. 测量腹板 ----

MS_MWP ; 测量凸台尺寸

; ---- 5. 三点圆测量(部分遮挡孔) ----

MS_3HP ; 三点确定圆

M30

```

13.3 激光对刀完整流程

```sinumerik

; ==========================================

; 激光对刀完整流程

; Siemens 840D/828D

; ==========================================

; ---- 配置 ML_HEAD ----

; M_LASER_HEAD=0 (1激光1头)

; ML_LANG=2 (English)

; ---- 配置 ML_INIL1 ----

; ML_DIRR=+1, ML_DIRL=-1

; ML_LR=0, ML_LP=0, ML_LL=0

; ML_WP=1 (XY平面)

; ML_TM=1 (停机报警)

; ML_MINL=50, ML_MAXL=200, ML_MAXR=30

; ML_RAPID=3000, ML_ON=51, ML_OFF=52

; ML_DIST1=1.8, ML_DIST2=0.2, ML_DIST3=0.05

; ---- 1. 标定 ----

T99 M6

D1

ML_LCAL(100, 3000)

; ---- 2. 同心刀具测量 ----

T5 M6

D1

ML_PRES(100, 3000, 0, 5, 0.02, 0.02, 3, 0, 0)

; ---- 3. 非同心刀具测量 ----

T10 M6

D1

ML_PRES(100, 3000, 10, 5, 0.02, 0.02, 3, 0, 0)

; ---- 4. 盘铣刀测量 ----

T12 M6

D1

ML_DISC(100, 3000, 0, 5, 0.02, 0.02, 3)

; ---- 5. 长度完整性检查 ----

T8 M6

D1

ML_INTL(100, 3000, 0.5)

M30

```

13.4 车床对刀完整流程

```sinumerik

; ==========================================

; 车床对刀完整流程

; Siemens 840D/828D 车削

; ==========================================

; ---- 配置 MTS_INI ----

; M_CUBE=20, M_INPUT=1

; M_FEEDT=200, M_FEEDR=3000

; M_LANG=2 (English)

; M_RADIAM=2 (直径模式)

; M_SAFE=5, M_DISTZ=0, M_DISTX=0

; ---- 1. 手动标定(逐方向)----

T1 M6 ; 调用标定刀

D1

MTS_CPU(1) ; X-标定

MTS_CPU(2) ; X+标定

MTS_CPU(3) ; Z-标定

MTS_CPU(4) ; Z+标定

; ---- 2. 手动预设 ----

T5 M6 ; 待测刀具

D1

MTS_PMU ; 手动移至对刀仪附近后执行

; ---- 3. 自动测量 ----

T6 M6

D1

MTS_PAU ; 自动测量刀具

M30

```

13.5 VTS 影像对刀完整流程

```sinumerik

; ==========================================

; VTS 影像对刀完整流程

; Siemens 840D/828D

; ==========================================

; ---- 前置条件 ----

; 1. SiemensOPC-UABridge 运行中(绿色横幅)

; 2. VTS_INIV 配置完成

; 3. VTS 已标定(至少运行一次 O9701)

; ---- 1. VTS 标定(首次或换装后) ----

T20 M6

; 用手轮将标定刀尖移动到 VTS 视野内

VTS_CALIBRATION

; ---- 2. 未知刀具预设(无清洁) ----

T5 M6

VA=300

VB=5000

VC=0 ; 同心刀具

VJ=0 ; 未知刀具模式

VTS_PRES

; ---- 3. 已知刀具检查(带清洁) ----

T5 M6

VA=300

VB=5000

VC=0

VJ=3 ; 已知刀具+带清洁

VR=0.05 ; 长度公差0.05mm

VS=0.03 ; 半径公差0.03mm

VTS_PRES

; ---- 4. 静态模式测量 ----

T8 M6

VB=0 ; 静态模式(主轴不转)

VC=0

VI=5 ; 半径测量偏移

VJ=2 ; 已知刀具

VTS_SINGLEC_PRES

; ---- 5. 静态表面完整性检查 ----

T10 M6

VTS_SINGLEC_INTCHECK

M30

```

十四、注意事项与常见问题

14.1 系统兼容性

特性

840D PL

840D SL

828D

操作系统

MMC103 (PCU50)

HMI Embedded

SINUMERIK OPERATE

最小版本

SW 5.0

NCU 2.6

图形格式

BMP

BMP

PNG

软键位置

HS6

HS6

HS9

Easyscreen

需要许可

OPC-UA

需要

需要(VTS)

14.2 公/英制注意事项

【⚠️注意】所有初始化参数必须按 公制(mm) 设定,即使机床工作在英制模式下。软件通过读取系统变量 `$MN_SCALING_SYSTEM_IS_METRIC` 自动完成数值转换,无需人工换算。

14.3 关于标定

  • 每次切换公/英制测量系统后,必须重新执行标定
  • 标定数据存储在 GUD 变量中,不会随系统切换自动转换
  • 对刀仪标定所使用的标准刀必须在刀具表中输入准确的长度和直径

14.4 安装后验证

1. SPF 文件旁应有 X 标记(LOADED 列)

2. 断电重启后验证软键显示正常

3. 运行简单测量循环验证功能正常

4. 检查报警文本是否显示正确

14.5 安全注意事项

  • 首次使用前必须逐段测试程序
  • 确认参数与机床其他功能兼容
  • 旋转方向应选用与切削方向相反的方向,防止刀具损伤测头
  • 激光对刀时确保激光正常开启,光束无遮挡
  • VTS 系统必须确保 OPC-UA 通信正常后再执行测量

14.6 常见问题排查

问题

可能原因

解决措施

SPF 文件无 "X" 标记

未正确加载到 CUS.DIR

重新拷贝并重启

GUD 变量不可访问

未激活 GUD

执行 ACTIVATION

软键不显示

aeditor.com 未正确修改

检查 HS6/HS9 配置

828D 图形不显示

缺少 Easyscreen 许可

启用对应许可

测量结果异常

未标定/标定数据错误

重新标定

循环超时

参数设置不合理

检查 MAR_C/MS_CS/MAR_CSA

VTS 通信失败

Bridge 未运行或配置错误

检查 OPC-UA 通信状态

适用系统: Siemens 840D / 840Di / 810D / 828D

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

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

目录
  • 马波斯 MIDA 宏程序编程指南 — 西门子 SIEMENS 840D/828D 系统篇
    • 一、西门子宏程序架构概述
      • 1.1 与发那科系统的核心差异
      • 1.2 供货包目录结构
      • 1.3 SPF 文件命名规则
    • 二、系统设置与参数要求
      • 2.1 NC 参数要求
      • 2.2 修改参数步骤
      • 2.3 GUD 激活
      • 2.4 828D 特殊许可要求
    • 三、软件安装步骤
      • 3.1 安装前备份
      • 3.2 安装方式
      • 3.3 核心安装流程
      • 3.4 图形界面安装(可选)
      • 3.5 各软件包界面文件对照表
    • 四、对刀仪(Tool Check)— D310D1AG03
      • 4.1 概述
      • 4.2 核心 SPF 文件对照表
      • 4.3 MPS_INI 初始化参数
      • 4.4 MPS_CAL — 对刀仪标定
      • 4.5 MPS_PRES — 刀具预设/测量
      • 4.6 MPS_INTL — 长度完整性检查
    • 五、工件测量(Part Inspection)— D310D2AG11
      • 5.1 概述
      • 5.2 版本功能对照
      • 5.3 SPF 文件清单
      • 5.4 MS_INISx 初始化配置
      • 5.5 测针偏移配置(L型测针/偏置测针)
      • 5.6 手动测量循环详解
      • 5.7 自动测量循环详解
    • 六、激光对刀(Laser Tool Check)— D310D3AG17
      • 6.1 概述
      • 6.2 系统架构
      • 6.3 SPF 文件清单
      • 6.4 ML_HEAD 参数配置
      • 6.5 ML_INIL1~6 参数配置
      • 6.6 ML_LCAL — 激光标定
      • 6.7 ML_PRES — 刀具测量
    • 七、车床对刀(Tool Check on Lathes)— D310D4AG01
      • 7.1 概述
      • 7.2 SPF 文件清单
      • 7.3 MTS_INI 初始化参数
      • 7.4 MTS_CPU — 手动标定
      • 7.5 MTS_CAU — 自动标定
    • 八、车床工件测量(Part Check on Lathes)— D310D5AG06
      • 8.1 概述
      • 8.2 SPF 文件清单
      • 8.3 MPL_INI 初始化参数
      • 8.4 MPL_CALZ — Z 轴标定
    • 九、VTS影像对刀系统 — D310D9AG02
      • 9.1 概述
      • 9.2 SPF 文件清单
      • 9.3 VTS_INIV 配置参数
      • 9.4 VTS_CALIBRATION (O9701) — 标定
      • 9.5 VTS_PRES (O9700) — 刀具预设/检查
      • 9.6 VTS_SINGLEC_PRES (O9730) — 静态模式测量
      • 9.7 VTS_SINGLEC_INTCHECK (O9731) — 静态完整性检查
      • 9.8 VTS_SINGLEC_PRES_SURF (O9736) — 静态表面磨损
      • 9.9 刀具偏移量定义(附录1)
    • 十、VTS Bridge桥接 — D310DBAG00
      • 10.1 概述
      • 10.2 组件
      • 10.3 前置条件
      • 10.4 配置要点
    • 十一、GUD变量总表
      • 11.1 对刀仪 GUD 变量(MPS_*)
      • 11.2 工件测量 GUD 变量(MS_*)
      • 11.3 激光 GUD 变量(ML_*)
      • 11.4 车床对刀 GUD 变量(MTS_*)
      • 11.5 车床工件 GUD 变量(MPL_*)
      • 11.6 VTS GUD 变量
    • 十二、错误代码与报警总表
      • 12.1 对刀仪通用错误(MPS_*)
      • 12.2 工件测量错误(MS_*)
      • 12.3 车床对刀错误(MTS_*)
      • 12.4 车床工件错误(MPL_*)
      • 12.5 VTS 错误分类
    • 十三、综合编程示例
      • 13.1 对刀仪完整流程
      • 13.2 工件测量完整流程
      • 13.3 激光对刀完整流程
      • 13.4 车床对刀完整流程
      • 13.5 VTS 影像对刀完整流程
    • 十四、注意事项与常见问题
      • 14.1 系统兼容性
      • 14.2 公/英制注意事项
      • 14.3 关于标定
      • 14.4 安装后验证
      • 14.5 安全注意事项
      • 14.6 常见问题排查
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档