适用系统: Siemens 840D / 840Di / 810D / 828D
目录
特性 | 发那科 (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 定义文件 |
马波斯西门子软件光盘包含以下目录:
```
根目录/
├── 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 全局变量定义文件
```
西门子系统的宏程序以 `.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 |
使用马波斯宏程序前,必须确认以下机床数据满足最低要求:
参数号 | 参数名 | 说明 | 最低要求 |
|---|---|---|---|
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(工件测量/激光) |
1. 进入 STARTUP(调试) → MACHINE DATA(机床数据)
2. 按 OPTIONS(选项) → SELECT ALL(全选)
3. 搜索对应参数号并修改
4. 创建新 NC 存档使参数生效
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。
Siemens 828D 系统需要启用以下许可才能正确显示循环图形页面:
```
Sinumerik HMI SL Runtime OA Easyscreen
启用步骤:
1. SET-UP(设置)
2. >(扩展)
3. LICENCES(许可)
4. ALL OPTIONS(所有选项)
5. 勾选上述许可
```
```mermaid
graph LR
A[SERVICES] --> B[> 扩展]
B --> C[Standard MIS]
C --> D[选择 NC]
D --> E[命名存档]
E --> F[ARCHIVE 存档]
```
支持以下安装方式:
1. 拷贝 SPF 文件 → `DH\CUS.DIR\`(用户循环目录)
2. 拷贝 GUD 文件 → `DH\DEF.DIR\`(定义目录)
3. 激活 GUD(见 2.3 节)
4. 检查加载状态:确认 SPF 文件旁有 X 标记
5. 重启系统:断电重启后生效
图形界面为可选功能,测量循环可在无图形界面下完全运行。
```
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" 软键
```
```
修改 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(冗余入口)
```
```
修改 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
```
软件包 | 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 |
适用于 Siemens 840D/840Di/810D/828D 系统的接触式对刀仪测量软件包(SW 4.6)。通过 MIDA 对刀仪测头实现刀具的长度、半径测量和完整性检查。
文件名 | 功能 | 调用格式 |
|---|---|---|
`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)` |
在首次使用前,必须在 `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`(未知刀具) |
功能:使用已知尺寸的标准刀具(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 ; 程序结束
```
输出参数:
标定前准备:
1. 将标定标准刀装入主轴
2. 在刀具偏置表中输入标定刀的长度和直径
3. 若使用负刀具,标定刀长度应为负值
功能:测量刀具长度和半径,可检查刀具是否断裂。
调用格式:
```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
```
输出:
功能:快速检查轴向刀具(钻头、丝锥、铰刀等)的长度完整性。
调用格式:
```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
```
适用于加工中心的接触式工件测量软件包(SW 10.0),支持 INSPECTION PREMIUM(标准版)和 INSPECTION ULTIMATE(高级版)两个版本。
功能 | PREMIUM | ULTIMATE |
|---|---|---|
基础循环(ALM/IT/MOVE/TOUCH等) | ✓ | ✓ |
手动测量(单点/孔/腹板/角点) | ✓ | ✓ |
自动标定 | ✓ | ✓ |
自动孔/外圆测量 | ✓ | ✓ |
自动腹板/型腔测量 | ✓ | ✓ |
自动角点测量 | ✓ | ✓ |
三点圆标定/测量 | ✓ | ✓ |
双孔/外圆测量 | — | ✓ |
三/四孔/外圆测量 | — | ✓ |
余量测量 | — | ✓ |
表面倾斜角测量 | — | ✓ |
8点平行六面体偏移/倾斜测量 | — | ✓ |
文件名 | 功能 |
|---|---|
`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 种配置(对应 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) |
当使用 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 个配置。
在 X/Y/Z 任一方向单次触碰,获取工件表面坐标。
测量内孔圆心坐标和直径,4点触碰。
测量外圆圆心坐标和直径,4点触碰。
部分被遮挡的孔测量,3点触碰。
测量凸台在 X/Y 方向的尺寸和中心位置。
测量凹槽的 X/Y 方向内部尺寸和中心位置。
测量内角或外角的位置坐标。
受保护的安全移动循环,避免碰撞。
使用标准球或标准块标定测头位置。
用三点标定测头位置和测球半径。
三点确定一个圆(外圆或障碍孔),适用于部分遮挡的孔。
自动内孔或外圆测量(4点)。
自动测量腹板(凸台)或型腔(凹槽)尺寸。
适用于加工中心和铣床的 MIDA 激光对刀系统(SW 14.0),支持非接触式刀具测量、标定和完整性检查。
系统支持最多 2个激光头和 3个加工头 的组合,并可按工作区域逻辑划分。
```
Head 1 Head 2 Head 3
Laser 1 Laser 2
Zone 1 Zone 2 Zone 3
```
文件名 | 功能 |
|---|---|
`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` | 触测程序 |
参数名 | 说明 | 示例值 |
|---|---|---|
`M_LASER_HEAD` | 激光/头数量配置 | `0`(1激光1头) / `1`(多激光/多头) |
`ML_LANG` | 报警消息语言 | `1`(Italian)~`7`(Russian) |
参数名 | 说明 | 示例值 |
|---|---|---|
`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轴 |
调用格式:
```sinumerik
ML_LCAL(M_DISTS, M_RPM)
```
参数:
示例:
```sinumerik
T99 M6 ; 调用标定刀具
D1 ; 激活补偿
ML_LCAL(100, 3000) ; 快速接近100mm,3000rpm标定
M30
```
输出参数:
调用格式:
```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
```
适用于西门子控制数控车床和车削中心的接触式对刀仪软件(SW 4)。
SPF 文件 | 功能 |
|---|---|
`MTS_CPU.SPF` | 手动标定 |
`MTS_CAU.SPF` | 自动标定 |
`MTS_PMU.SPF` | 手动预设/测量 |
`MTS_PAU.SPF` | 自动预设/测量 |
`MTS_INI.SPF` | 初始化参数配置 |
参数名 | 说明 | 示例 |
|---|---|---|
`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`(正刀补) |
正刀补与负刀补:
功能:逐个方向标定对刀仪位置。
调用格式:
```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
```
输出:
功能:自动标定接触块的一个或两个侧面。
示例:
```sinumerik
T1 M6
D1
MTS_CAU(T_M) ; T_M 根据刀沿方向自动判断
M30
```
适用于西门子控制车床的车削工件测量软件包(SW 6),支持水平(HL)和垂直(VL)车床。
文件名 | 功能 |
|---|---|
`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轴中心搜索 |
参数名 | 说明 | 示例 |
|---|---|---|
`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) |
调用格式:
```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
```
输出:
输出索引说明:
MIDA VTS 是非接触式光学影像对刀系统(SW 7.X),通过 CCD 相机和图像处理模块实现对刀具的高精度测量。通过 OPC-UA 协议与 CNC 通信。
前置条件:
程序号 | 文件名 | 功能 |
|---|---|---|
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 刀补表 |
参数名 | 说明 | 示例值 |
|---|---|---|
`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` |
功能:自动找到 VTS 的 ROI(兴趣区域)中心。
前提条件:
1. 完成 VTS_INIV 配置
2. 在刀补表中输入标定刀长度值
3. 用手轮将标定刀具移动到 VTS 视野内(无需精确对焦,但刀尖必须在画面内)
4. 运行 Marposs SiemensOPC-UABridge 且通信正常
示例:
```sinumerik
T20 M6 ; 调用标定刀具
HANDWHEEL ; 用手轮移动刀尖到 VTS 视野内
VTS_CALIBRATION ; 执行标定(主轴5000rpm)
```
输出:
功能:支持两种模式——未知刀具预设和已知刀具检查。
调用参数(按顺序写入):
参数 | 说明 | 必选 | 示例 |
|---|---|---|---|
`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
```
输出:
用于在主轴不旋转的静态模式下进行刀具测量。
用于在静态模式下进行刀具轮廓或表面完整性检查。
用于在静态模式下测量刀具表面磨损。
平底铣刀 (Flat End Mill):
球头铣刀 (Ball End Mill):
圆鼻铣刀 (Radius End Mill):
钻头 (Drill):
VTS Bridge Siemens OPC UA(代码 S609210532)是用于 Windows 7/10 的桥接应用程序,提供 Siemens 840Dsl/828D 数控系统与 Marposs VTS 测量系统之间的 OPC-UA 通信桥梁。
1. Sinumerik Operate 对应版本
2. OPC UA Server 版本 ≥ 2.2
3. OPC UA 许可已启用
4. VTS EU 固件版本 ≥ 7.1
5. 西门子 CNC 端创建 `marposs` 用户
1. OPC UA Server IP 地址和端口号
2. VTS EU IP 地址和端口号
3. config.ini 中的 `VTS_HS` 值与 CNC 侧 VTS_INIV 中设置一致
4. 通信状态指示(界面上的绿色横幅表示通信正常)
变量名 | 类型 | 说明 |
|---|---|---|
`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=超差) |
变量名 | 类型 | 说明 |
|---|---|---|
`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 | 语言 |
变量名 | 说明 |
|---|---|
`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` | 刀具锥度角 |
变量名 | 说明 |
|---|---|
`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+标定偏移 |
变量名 | 说明 |
|---|---|
`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) |
变量名 | 说明 |
|---|---|
`_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 变量不会自动换算转换,因此必须重新执行标定,否则标定数据与实际测量系统不匹配将导致测量结果错误。
错误码 | 中文 | 说明 |
|---|---|---|
E1 | 无接触 | 刀具未触碰到测头 |
E2 | 长度超差 | 测量长度超出刀具表公差 |
E3 | 半径超差 | 测量半径超出刀具表公差 |
E4 | 转速过高 | MAR_RPM > 600 |
E5 | 意外触测 | 定位移动中发生碰撞 |
E8 | 长度超安全距离 | MAR_MAXL > MAR_SAFETY |
E9 | 需标定 | 标定数据与测量系统不一致 |
错误 | 说明 |
|---|---|
无触测 | 未接触到工件 |
数据输入错误 | 参数值超出范围 |
提前触测 | 移动中碰到障碍物 |
测量值超差 | 测量值超出公差 |
错误 | 说明 |
|---|---|
无接触 | 刀尖未碰到测头 |
数据输入错误 | 参数值超出1~4范围 |
错误 | 说明 |
|---|---|
(1) 无触测 | 探针未接触到工件 |
(2) 测量值超差 | 超出 TMA 公差 |
(3) 提前触测 | 移动中遇到意外障碍 |
类别 | 说明 |
|---|---|
测量循环报警 | 测量过程中的常规报警 |
标定错误 | 光线标定失败 |
处理错误 | 图像处理异常 |
硬件错误 | 相机/光源故障 |
I/O 错误 | 输入输出通信故障 |
相机光学映射错误 | 相机映射参数异常 |
通用错误 | 其他系统错误 |
编程错误 | 循环调用参数错误 |
严重错误 | 关键系统错误 |
通信错误 | OPC-UA 通信中断 |
```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
```
```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
```
```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
```
```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
```
```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
```
特性 | 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) |
【⚠️注意】所有初始化参数必须按 公制(mm) 设定,即使机床工作在英制模式下。软件通过读取系统变量 `$MN_SCALING_SYSTEM_IS_METRIC` 自动完成数值转换,无需人工换算。
1. SPF 文件旁应有 X 标记(LOADED 列)
2. 断电重启后验证软键显示正常
3. 运行简单测量循环验证功能正常
4. 检查报警文本是否显示正确
问题 | 可能原因 | 解决措施 |
|---|---|---|
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 删除。