宁波匠测科技

840D sl 激光对刀 GUD 配置与参数调试指南

适用系统: Siemens Sinumerik 840D sl
激光系统: BLUM LC50-DIGILOG / LC52-DIGILOG
测量循环版本: V6D(183326_V6D_APPL, 07-2023)
基准文档: Blum-Novotest GmbH — LaserControl DIGILOG Programming Instructions
文档编码: 中文技术指南,基于官方编程手册提取


目录

  1. GUD 变量系统概述
  2. 10 组 GUD 变量详解
    – 2.1 _B_CV — 激光束校准数据
    – 2.2 _B_ERRNO — 错误标记号
    – 2.3 _B_TOOLD — 刀具数据(含刃数)
    – 2.4 _B_CMODE — 操作模式与标定点模式
    – 2.5 _B_CTOOL — 测量结果存储
    – 2.6 _B_MPV — 诊断测量值
    – 2.7 _B_RET — 系统限值参数
    – 2.8 _B_REPOS — 退刀参考位置
    – 2.9 _B_DIR — 方向与选项配置
    – 2.10 _B_SCALE — 比例初始化变量
  3. USERPARATABx 配置规则
  4. 温度补偿与刀具数据公式
  5. 完整配置示例
  6. 常见陷阱与调试要点

1. GUD 变量系统概述

1.1 全局用户数据(GUD)的作用

在 Siemens Sinumerik 840D sl 数控系统中,Blum DIGILOG 激光测量系统使用全局用户数据变量(Global User Data, GUD)来存储和管理所有与激光测量相关的参数。这些变量以 _B_ 前缀统一标识,在测量循环的两个子程序层级中被读取和写入。

所有 GUD 变量在 USERPARATABx 定义文件中初始化。在每次测量循环启动时,系统首先读取 USERPARATABx,将其中定义的机床特定值写入对应 GUD 变量。这意味着 GUD 变量的初始值由机床制造商在调试阶段设定,并在每次循环启动时重新加载。

1.2 变量命名规则与作用域

  • 全局变量前缀: 所有 Blum 激光测量系统使用的全局变量以 _B_ 开头
  • 局部变量: 测量循环内部使用局部变量,不与全局变量冲突
  • 激光束位置保护: _B_CV[x,x] 存储激光束校准位置数据,严禁被其他循环修改。该变量由校准循环 BL9901 和温度补偿循环 BL9904 写入,其他任何程序不得改写

1.3 程序层级与变量加载顺序

测量循环采用两个子程序层级。以 BL9902 为例,变量加载流程如下:

第1层 (主程序层)
└── 主程序
     └── BL9902(...)               ← 调用测量循环

第2层 (子程序层)
├── BPARATAB(1)                    ← 初始化 _B_SCALE 等变量
├── USERSTARTPROG                  ← OEM/用户启动适配程序
├── USERPARATABx                   ← 初始化 GUD 变量(连接类型、限值、选项等)
├── BTOOLDATA(1)                   ← 读取刀具数据到 _B_TOOLD
├── BPARATAB(2)                    ← mm/inch 内部变量转换
├── [检查调用参数]
├── BSPFUNC(1,0)                   ← 读取主轴状态
├── BTOOLDATA(3)                   ← 检查并修改刀具数据
├── BLASONOFF(9)                   ← 打开激光
├── BAX2STARTEND(1)                ← 接近激光策略
├── BLASONOFF(1)                   ← 打开激光并检查 LC_OK
│
├── [重复循环]
│   ├── BPOS1AX(...)               ← 检查位置限值并定位
│   ├── BLASONOFF(...)             ← 切换操作模式、控制吹气
│   └── BLMEAS(...)                ← 测量块
│       └── [DIGILOG 测量执行]
│       └── [限值/公差检查]
├── [结束重复循环]
│
├── BTOOLDATA(4)                   ← 写入刀具存储器
├── BAX2STARTEND(2)                ← 退刀
├── BLASONOFF(2)                   ← 关闭激光
├── BSPFUNC(2,0)                   ← 恢复主轴状态
├── USERENDPROG                    ← OEM/用户结束程序
└── BTEXT                          ← 错误输出

1.4 mm/inch 转换规则

GUD 变量在 USERPARATABx 中必须始终以 mm 为单位指定,无论当前机床测量系统是 mm 还是 inch。循环内部会自动进行单位转换,速度值有时会向上或向下取整。调试人员无需因测量系统切换而调整 USERPARATABx 中的数值。

但需要注意:循环调用参数必须使用机床当前测量系统的单位(mm 或 inch)。如果测量系统切换,调用参数也要相应切换。


2. 10 组 GUD 变量详解

2.1 _B_CV — 激光束校准数据

属性 说明
类型 数组,多维
写入循环 BL9901(校准)、BL9904(温度补偿)
首次设定 首次调试时通过 BL9901 校准
保护等级 严禁其他循环修改

_B_CV[x,x] 存储激光束在机床坐标系中的精确触发点位置。在校准过程中,系统使用参考刀具的已知几何数据(长度 L、半径 R)和实际触发点位置,计算出激光束的空间坐标。

校准数据的作用:
– 在后续刀具测量中,用于计算刀具长度和半径
– 用于定位刀具到激光束中的目标位置
– 温度补偿时更新以反映热漂移

更新时机:
– BL9901 校准循环执行后(包括标准校准和含线性化的校准)
– BL9904 温度补偿参考测量(MMODE=0)或比较测量(MMODE=±1)后

注意事项:
– 校准必须在机床达到工作温度后进行
– 建议在中等主轴转速、移动 NC 轴、可能开启冷却液的预热阶段后进行校准
– 参考刀具理想情况下热缩在刀柄中
– 校准数据一旦写入,不应由任何其他程序改写

2.2 _B_ERRNO — 错误标记号

属性 说明
类型 数值型
写入循环 全部测量循环
初始值 0(无错误)

_B_ERRNO 是全局错误标记变量,所有测量循环在检测到错误时设置此变量。

主要错误值定义:

_B_ERRNO 值 含义 触发条件
0 无错误 —
4 缺少强制调用参数 必须指定的参数未传递
11 温度漂移超限 BL9904 比较测量时 LTOL 或 RTOL 超限
-99 跳过循环执行 模拟、块扫描或 DRY-RUN 模式下设置,跳转到 USERENDPROG

错误处理机制:
1. 循环调用时评估调用参数 → 检测无效值或碰撞风险 → 错误消息中断
2. 执行期间发生错误(无触发点、刀具断裂等)→ 重复循环直至消除或达最大尝试次数
3. 无法消除错误 → 设置 _B_ERRNO,程序中断(错误消息或死循环)
4. 用户自定义处理在 USERENDPROG 子程序中实现

负值错误标记的特殊用途:
当 _B_ERRNO 被设置为负值(如 -99)时,循环跳过正常测量流程,直接跳转到 USERENDPROG。此机制可用于模拟、块扫描或空运行模式下跳过测量循环。

2.3 _B_TOOLD — 刀具数据(含刃数)

属性 说明
类型 数值型
写入时机 BTOOLDATA(1) 读取刀具存储器时
使用循环 BL9903、BL9905、BL9907、BL9985

_B_TOOLD 在读取刀具数据时被写入,其中刀具刃数以小数位的形式存储在此变量中。

刃数读取机制:
– 刀具存储器中可以定义刃数
– 刃数作为小数位存入 _B_TOOLD
– 对于 BL9903、BL9905、BL9907、BL9985 循环,如果 CUT=0,系统自动从 _B_TOOLD 读取刃数,无需在调用参数中指定 CUT
– 注意: 如果在刀具存储器和调用参数中都定义了刃数,两个值必须一致

实际应用:
– 单刃监测循环依赖准确的刃数来判断是否所有切削刃都触发激光信号变化
– 如果刃数设定不正确,可能导致误报断刀或漏报

2.4 _B_CMODE — 操作模式与标定点模式

属性 说明
类型 数组
写入时机 循环启动时
关键索引 _B_CMODE[0]

_B_CMODE[0] 在循环启动时被写入当前操作模式的数值。主要用途:

  1. 记录调用时的 MMODE: 测量模式参数 MMODE 在循环开始时写入 _B_CMODE[0]
  2. 标定点模式配置: 在 USERPARATABx 中通过 _B_CMODE[0] 配置参考刀具类型、校准范围(单/双侧半径)及新光学系统测量点 1/2/3 的校准/线性化模式(Shape A/B 为参考刀具形状概念,其与 _B_CMODE[0] 取值的映射官方未明示,须由机床制造商确认):
    – Shape A / 标定点阵 1: 适用于 LC50-DIGILOG,刀具存储器输入 L、R
    – Shape B / 标定点阵 1: 适用于 LC50-DIGILOG 和 LC52-DIGILOG,刀具存储器输入 L、R

对于新 BLUM 激光光学系统,测量点 1、2、3 通过 _B_CMODE[0] 在 USERPARATABx 中配置校准和/或线性化模式。

2.5 _B_CTOOL — 测量结果存储

属性 说明
类型 数组,3 个元素
索引定义 [0] = 测量后实际长度值,[1] = 测量后实际半径值,[2] = 测量后实际角半径值
写入循环 BL9902、BL9902A、BL9903、BL9906

测量完成后,实际测量值存储到 _B_CTOOL 数组:

_B_CTOOL[0] = 测量的实际长度(BL9908 断刀检测亦写入;BL9903 双侧测量时 [1]=第一侧半径、[2]=第二侧半径)
_B_CTOOL[1] = 测量的实际半径
_B_CTOOL[2] = 测量的实际角半径(仅 BL9906)

重要配置规则:

在 USERPARATABx 中,如果希望使用刀具存储器中的参考刀具数据而非 USERPARATABx 中定义的数据,必须设置:

_B_CTOOL[0] = 0
_B_CTOOL[1] = 0

当 _B_CTOOL[0]=0 且 _B_CTOOL[1]=0 时,校准循环会使用刀具存储器中的刀具数据进行参考刀具数据比较(差异检查,超过 _B_RET[1] 默认值 1.8mm 时报错 E5)。

2.6 _B_MPV — 诊断测量值

属性 说明
类型 数组,8 个元素
索引定义 详见下表
写入循环 BL9901(校准)、BL9904(温度补偿)

_B_MPV[0..7] 用于存储诊断目的的测量值:

索引 内容 设置条件
[0] 轴向测量范围(下限) BL9901 线性化时 (RNUM=-1)
[1] 轴向测量范围(上限) BL9901 线性化时 (RNUM=-1)
[2] 径向测量范围(下限) BL9901 线性化时 (RNUM=-1)
[3] 径向测量范围(上限) BL9901 线性化时 (RNUM=-1)
[4] 轴向跳动值 BL9901 校准(DIGILOG 模式)
[7] 径向跳动值 BL9901 校准(DIGILOG 模式)

诊断用途:
– _B_MPV[4](轴向跳动)和 _B_MPV[7](径向跳动)在校准过程中由 DIGILOG 模式写入
– 校准过程中,参考刀具的污染被过滤掉,过滤后的跳动值写入这些变量
– 径向跳动的一半还被写入刀具存储器的半径磨损(RWEAR)
– 线性化时各特性曲线的测量范围写入 [0..3]

2.7 _B_RET — 系统限值参数

属性 说明
类型 数组,3 个元素
索引定义 [0] = ADDLEN/ADDRAD 最大限值,[1] = 校准数据比较公差,[2] = DTG 最大扫描路径
配置位置 USERPARATABx

_B_RET 数组定义了系统的关键限值参数(注:官方 4.2 GUD 表对 _B_RET 的描述为回退行程 [0..4] 共 5 个元素,与 3.1 参数表的功能语义不一致;本表按 3.1 功能语义编写):

_B_RET[0] — ADDLEN/ADDRAD 最大限值:
– 用于验证调用参数 ADDLEN 和 ADDRAD 的有效性
– 检查条件: 2 × ADDLEN < _B_RET[0] 和 2 × ADDRAD < _B_RET[0]
– 超限时显示错误 E4
– 调试时应根据机床允许的最大附加偏置量设置

_B_RET[1] — 校准数据比较公差:
– 默认值: 1.8 mm
– 在校准过程中,系统比较 USERPARATABx 中的参考刀具数据与刀具存储器中的数据
– 如果两者差值大于 _B_RET[1],输出错误 E5
– 调试时可根据参考刀具的预期精度调整

_B_RET[2] — DTG 最大扫描路径:
– 定义单刃监测中扫描路径的最大允许值
– BL9905、BL9985: 0.000 mm ≤ DTG ≤ _B_RET[2]
– BL9907: 0.000 mm ≤ DTG ≤ (_B_RET[2] - 角半径)
– 调试时应根据机床轴行程和刀具监测需求设置

2.8 _B_REPOS — 退刀参考位置

属性 说明
类型 数组
关键索引 _B_REPOS[0]
用途 快速循环(BL9985、BL9988)的安全退刀参考

_B_REPOS[0] 定义了安全退刀位置,在快速测量循环(BL9985、BL9988)中使用:

  • 当 SAFEDIST 参数未编程时,刀具定位到退刀高度(即 _B_REPOS[0] 定义的位置)
  • SAFEDIST 参数表示刀具尖端接近激光束的中间位置
  • 正值表示刀具在激光束外
  • 负值表示刀具在激光束内

调试建议:
– 设置退刀位置时应确保刀具从任何角度退刀都不会碰撞工件或夹具
– 需要在机床坐标系中确认该位置的绝对安全性
– 可结合 USERSTARTPROG 和 USERENDPROG 中的接近/退刀策略

2.9 _B_DIR — 方向与选项配置

属性 说明
类型 数组
关键索引 _B_DIR[1]
格式 +/-2.aabb

_B_DIR[1] 在 USERPARATABx 中配置,用于启用特殊测量功能:

格式解析: +/-2.aabb
– + 或 -: 方向选择
– 2: 固定标识
– aa: 功能选项 A
– bb: 功能选项 B

注:官方仅给出格式 +/-2.aabb 及用途(半径轴进刀侧 +2,+1/-1,-2 与特性曲线),aa/bb 位含义分解官方未明示,须由机床制造商确认。

主要用途 — 双侧半径测量:
– 机床制造商在 USERPARATABx 中通过 _B_DIR[1]=+/-2.aabb 设置
– 启用后,BL9903 的 SPECIAL 参数可以使用双侧半径测量功能(SPECIAL = -2 或 +2)
– 未设置此选项时,仅支持单侧半径测量

调试要点:
– 如果需要双侧半径测量功能,必须由机床制造商在调试时设置此选项
– 设置不当可能导致 BL9903 循环异常

2.10 _B_SCALE — 比例初始化变量

属性 说明
类型 数值型
初始化位置 BPARATAB(1)

_B_SCALE 在 BPARATAB(1) 子程序中进行初始化,作为比例/缩放相关的全局变量。它在测量循环开始时的变量初始化阶段被设置。

作用:
– 用于内部坐标比例换算
– 在 mm/inch 转换(BPARATAB(2))之前被初始化
– 通常由 BPARATAB(1) 自动设置,调试人员通常无需手动修改


3. USERPARATABx 配置规则

3.1 文件概述

USERPARATABx(如 USERPARATAB1)是 Blum 测量循环的全局用户参数定义文件。它在每次测量循环启动时被读取,所有系统特定值写入对应的 _B_ 前缀 GUD 变量。

配置责任: 由机床制造商在首次调试期间提供有效值。

3.2 单位规则(强制)

规则 说明
输入单位 所有变量必须以 mm 为单位输入
自动转换 循环内部自动转换为当前测量系统(mm/inch)
速度值 有时会向上或向下取整
例外 无 — 所有 GUD 变量统一 mm 输入

3.3 参考刀具数据定义

在 USERPARATABx 中可定义参考刀具数据:

_B_CTOOL[0] = <参考刀具长度 L>
_B_CTOOL[1] = <参考刀具半径 R>

优先级规则:
– USERPARATABx 中的参考刀具数据优先于刀具存储器中的数据
– 校准过程中,系统同时读取 USERPARATABx 和刀具存储器中的参考刀具数据并进行比较
– 如果差异 > _B_RET[1](默认 1.8 mm),输出错误 E5

若要使用刀具存储器数据:

_B_CTOOL[0] = 0
_B_CTOOL[1] = 0

设置后,系统使用刀具存储器中的参考刀具数据。

3.4 标定点模式配置

通过 _B_CMODE[0] 在 USERPARATABx 中选择标定点形状:

Shape A(适用于 LC50-DIGILOG):

_B_CMODE[0] = <Shape A 的配置值(由机床制造商确认)>
  • 刀具存储器输入: L, R
  • 推荐测量位置: LOFFS ≥ R + 0.5 mm, ROFFS = 0 mm
  • 未定义测量位置时的默认值: LOFFS = R + 0.5 mm, ROFFS = 0 mm

Shape B(适用于 LC50-DIGILOG 和 LC52-DIGILOG):

_B_CMODE[0] = <Shape B 的配置值(由机床制造商确认)>
  • 刀具存储器输入: L, R
  • 推荐测量位置: LOFFS = 2.0 mm, ROFFS = 0 mm
  • 未定义测量位置时的自动默认值: LOFFS = 2.0 mm, ROFFS = 0 mm

注意: LC52-DIGILOG 的刀盘(cube)需要额外的刀盘半径定义

3.5 系统限值参数配置

在 USERPARATABx 中设置三个系统限值:

_B_RET[0] = <ADDLEN/ADDRAD 最大限值,mm>
_B_RET[1] = <校准数据比较公差,默认 1.8 mm>
_B_RET[2] = <DTG 最大扫描路径,mm>

3.6 特殊功能选项

_B_DIR[1] = <方向/选项配置值,格式 +/-2.aabb>

此设置必须在调试时由机床制造商完成,用户程序无法修改。

3.7 清洁与吹气配置

工具清洁(使用集成 HPC 喷嘴的压缩空气)在调试时通过 USERPARATABx 定义。可通过评估刀具名称或刀具编号来调整特定刀具的清洁行为。

3.8 模拟与块扫描支持

在 USERSTARTPROG 中可以编程测量循环的跳过逻辑(用于模拟、块扫描或 DRY-RUN),设置 _B_ERRNO=-99 即可跳过循环。

如果工件加工需要刀具存储器中的有效刀具数据,则必须手动输入数据或通过单独运行的测量循环预先确定。

3.9 接近与退刀策略

标准的接近策略和退刀策略分别在 USERSTARTPROG 和 USERENDPROG 中编程:

  • 接近策略: 刀具平行于坐标轴移动到激光系统;顺序为:长度轴到安全位置 → 光束轴到焦点/测量位置 → 半径轴到测量位置 → 长度轴到测量位置
  • 退刀策略: 循环结束时仅将长度轴移动到安全位置
  • 防护罩和回转轴可在 USER 程序中处理

4. 温度补偿与刀具数据公式

4.1 刀具存储器数据公式

总刀具长度

控制系统在加工程序中计算总刀具长度:

L = LGEO + LWEAR + LADAPTER

测量循环中计算实际刀具长度用于激光定位:

L = LGEO + LWEAR

总刀具半径

控制系统计算总刀具半径:

R = RGEO + RWEAR + RADAPTER

测量循环中计算实际刀具半径用于激光定位:

R = RGEO + RWEAR

适配器数据处理

适配器数据不被测量循环考虑。如果刀具存储器中的适配器长度/半径(LADAPTER / RADAPTER)不为 0(例如使用适配器刀头),需要在调试时通过 USER 程序适配。

未知刀具处理

当 L = 0 或 R = 0 时,系统认为刀具未知:
– 首次测量块执行从亮到暗的搜索过程
– 测量块从 LMAX + 1.8 mm 开始,在 LMIN – 1.8 mm 结束(长度轴)
– 或从 RMAX + 1.8 mm 开始,在 RMIN – 1.8 mm 结束(半径轴)
– 确保最长/最大和最短/最小刀具在此路径内均能发出触发信号

已知刀具处理

当 LMIN ≤ L ≤ LMAX 或 RMIN ≤ R ≤ RMAX 时:
– 有限搜索路径: 从 LMAX + 1.8 mm 开始,在 L – 6 mm 结束
– 如果刀具数据准确(偏差 ±5 mm 以内),可跳过搜索过程
– 刀具直接定位到激光束中

4.2 温度补偿(BL9904)原理

温度补偿循环通过参考刀具检测机床轴的热漂移,更新校准值以消除温度影响。

漂移计算

零点偏置 = 当前实际位置 − 参考位置(例如作为基本零点偏置)

漂移数据可供 USERSETOFFS 子程序使用,或写入到零点偏置中。

测量模式

MMODE 说明 行为
0 参考测量 更新校准值,保存当前状态作为参考
±1 比较测量 + 更新 比较当前与参考,漂移超差仍更新
±2 比较测量,不更新 仅比较,漂移超差不更新校准值

温度补偿集成流程

  1. 校准激光系统: 使用参考刀具
  2. 测量所有待用刀具: 确定长度和直径
  3. 加工首个工件: 至全部尺寸符合名义值
  4. TC 参考测量(MMODE=0): 保持当前机床状态作为参考值
  5. 生产下一工件
  6. TC 比较测量(MMODE=1): 确定当前轴偏置,通过附加零点偏置补偿
  7. 按需重复: 根据机床温度漂移和所需精度确定频率

错误处理

当 _B_ERRNO=11 时,表示温度漂移超限。触发条件:
– 比较测量时轴向公差 LTOL 超限
– 比较测量时径向公差 RTOL 超限

DIGILOG 模式下的特殊行为

对于 DIGILOG 模式,MMODE=-1/-2 时参考刀具无测量块直接定位到激光束中。这些模式仅适用于测量间隔中轴的温度漂移较小的场合。

4.3 校准(BL9901)中的数据流

DIGILOG 模式校准流程

  1. 加载参考刀具(T1 M6),选择刀补号(D1),启动主轴(M3 S3000)
  2. 调用 BL9901(…),使用默认或指定 LOFFS/ROFFS 定位参考刀具到激光束
  3. 在每个位置记录模拟信号(多转取均值),位置值叠加信号均值
  4. 确定径向跳动,写入刀具存储器(一半作为半径磨损)
  5. 径向跳动 > RPTL 时报错
  6. 校准数据 _B_CV[..] 更新
  7. 轴向跳动写入 _B_MPV[4],径向跳动写入 _B_MPV[7]
  8. 线性化时(RNUM=-1)特性曲线存储于激光系统内部

校准点合法性检查

  • LOFFS 必须 ≥ R,否则报错
  • 校准结束时检查是否落在角半径区域 → 若是则重复循环
  • ROFFS 固定设为 0(内部设定)

5. 完整配置示例

5.1 USERPARATABx 配置示例

以下是一个完整的 USERPARATAB1 配置文件示例,基于官方文档中的配置规则:

; ============================================================
; USERPARATAB1 — Blum DIGILOG 激光测量系统全局参数定义
; 适用系统: Siemens 840D sl
; 激光系统: LC50-DIGILOG
; 标定点模式: Shape A
; 版本: V6D
; 调试日期: <填写日期>
; ============================================================

; --- 参考刀具数据 ---
; 若设置为 0,则使用刀具存储器中的数据
_B_CTOOL[0] = 100.000    ; 参考刀具长度 L (mm)
_B_CTOOL[1] = 10.000     ; 参考刀具半径 R (mm)

; --- 系统限值参数 ---
_B_RET[0] = 5.000        ; ADDLEN/ADDRAD 最大限值 (mm)
_B_RET[1] = 1.800        ; 校准数据比较公差 (mm),默认 1.8
_B_RET[2] = 50.000       ; DTG 最大扫描路径 (mm)

; --- 退刀参考位置 ---
_B_REPOS[0] = 50.000     ; 退刀安全高度 (mm)

; --- 标定点模式配置 ---
; Shape A: 适用于 LC50-DIGILOG
_B_CMODE[0] = <制造商指定值>

; --- 特殊功能选项 ---
; 启用双侧半径测量等功能
_B_DIR[1] = <制造商指定格式 +/-2.aabb>

; --- 吹气/清洁配置 ---
; 刀具清洁参数(由制造商填写)
; (具体参数格式参见机床制造商文档)

5.2 校准程序示例(含线性化)

; 文件: CYCLE_01.MPF — BL9901 校准示例
; 说明: DIGILOG 模式校准,含线性化
;
T1 M6                ; 加载参考刀具
D1                   ; 选择刀补号 D1
M3 S3000             ; 主轴转速 3000 rpm
G0 X0 Y0 Z100        ; 移动到安全位置
BL9901(-1,0.01,0,0)  ; DIGILOG 校准 + 线性化
T0 M6                ; 卸载参考刀具
M30

5.3 刀具长度测量示例

; 文件: CYCLE_02.MPF — BL9902 刀具长度测量示例
; 说明: 中心刀具长度测量(搜索模式)
;
T"END_MILL_10" M6    ; 加载刀具
D1                   ; 选择刀补号 D1
M3 S3000             ; 主轴转速
G0 X0 Y0 Z100        ; 移动到安全位置
BL9902(0,0.05,0,0,0.01) ; MMODE=0 测量,LTOL=0.05
M30

5.4 温度补偿参考测量示例

; 文件: CYCLE_04.MPF — BL9904 温度补偿参考测量示例
; 说明: 首次温度补偿参考测量
;
T1 M6                ; 加载参考刀具
D1                   ; 选择刀补号
M3 S3000             ; 主轴转速
G0 X0 Y0 Z100        ; 移动到安全位置
BL9904(0,0,0.01,0,0,,)  ; 参考温度补偿(LTOL/RTOL 可省略)
T0 M6                ; 卸载参考刀具

5.5 温度补偿比较测量示例

; 文件: TC_COMPARE.MPF — BL9904 温度补偿比较测量示例
; 说明: 加工过程中定期调用,补偿热漂移
;
; ... 加工部分工件 ...
T1 M6                ; 加载参考刀具
D1                   ; 选择刀补号
M3 S3000             ; 主轴转速
G0 X0 Y0 Z100        ; 移动到安全位置
BL9904(1,0,0.01,0,0,0.05,0.05) ; 比较温度补偿
T0 M6                ; 卸载参考刀具
; ... 继续加工 ...

5.6 偏心刀具测量与监测示例

; 文件: CYCLE_03.MPF — BL9903 偏心刀具测量+单刃监测示例
;
T"FACE_MILL_40" M6
D1
M3 S3000
G0 X0 Y0 Z100
BL9903(0,0,-1,0.5,4.5,,,4,0.05,0,0,0,0.01)  ; LOFFS/ROFFS 按实际刀具填写
M30

5.7 断刀检测示例

; 文件: CYCLE_08.MPF — BL9908 断刀检测示例
;
T"TAP_M8" M6
D1
M3 S500
G0 X0 Y0 Z100
BL9908(0,1,0.5,0)  ; ROFFS=0, MDIR=1, LBREAK=0.5, CORLEN=0
M30

5.8 诊断工具使用示例

; 文件: T_SIGNAL.MPF — 输入/输出信号诊断
; 结果输出到: E_T_SIGNAL.MPF(官方 2.2 文件清单为 .MPF)
;
; 调用方式: 在 BLUMDIAG 目录中执行

; 文件: T_REPEAT.MPF — 重复测量测试
; 结果输出到: E_T_REPEAT.MPF(官方 2.2 文件清单为 .MPF)

; 文件: S_RUNOUT.MPF — 参考刀具跳动误差测试
; 结果输出到: E_S_RUNOUT.MPF(官方 2.2 文件清单为 .MPF)

6. 常见陷阱与调试要点

6.1 GUD 变量配置陷阱

陷阱 1: _B_CV 被意外修改

问题: 其他循环或用户程序修改了 _B_CV[x,x] 校准数据。

后果: 所有后续刀具测量基于错误的校准数据,测量结果全面偏移。

防范:
– 确保没有任何自定义循环或用户程序写入 _B_CV 变量
– 定期执行校准循环恢复正确的校准数据
– 在 USERENDPROG 中添加校准数据保护检查

陷阱 2: 单位混淆

问题: 在 USERPARATABx 中使用 inch 而非 mm 输入变量值。

后果: 循环内部转换后数据错误,导致定位错误或碰撞风险。

防范:
– 始终以 mm 为单位填写 USERPARATABx
– 循环调用参数则取决于机床测量系统(mm 或 inch)

陷阱 3: _B_CTOOL[0]=0、_B_CTOOL[1]=0 的误用

问题: 不知晓此设置的含义,错误地将参考刀具数据设为 0。

后果: 校准循环不检查 USERPARATABx 中的数据,直接使用刀具存储器数据,可能因数据不一致导致 E5 错误。

防范:
– 如果希望在 USERPARATABx 中定义参考刀具数据,填入实际长度和半径值
– 仅当确定要使用刀具存储器数据时才设为 0

陷阱 4: _B_RET[0] 设置过小

问题: ADDLEN/ADDRAD 最大限值设置过小。

后果: 合法调用参数也触发 E4 错误(2×ADDLEN ≥ _B_RET[0])。

防范:
– 根据实际工艺需求评估最大附加偏置量
– 设置时留有安全裕量

6.2 校准调试陷阱

陷阱 5: 冷机校准

问题: 机床未达到工作温度时执行校准。

后果: 校准数据只反映冷机状态,机床热稳定后测量值全面偏移。

防范:
– 校准前充分预热:中等主轴转速、移动 NC 轴、开启冷却液
– 确保机床处于正常工作温度

陷阱 6: 参考刀具不清洁或跳动过大

问题: 参考刀具表面有污染或刀柄跳动超差。

后果: 校准失败(径向跳动超 RPTL),或校准数据受污染影响。

防范:
– 理想情况下参考刀具热缩在刀柄中
– 校准前清洁参考刀具
– 使用 S_RUNOUT 诊断程序检查参考刀具跳动

陷阱 7: 校准点落在角半径区域

问题: LOFFS 设置不当,校准点落在刀具角半径过渡区域。

后果: 循环自动检测并重复校准,但增加校准时间;极端情况下校准数据不准确。

防范:
– LOFFS 必须 ≥ R
– 推荐 LOFFS = R + 0.5 mm(Shape A)或 LOFFS = 2.0 mm(Shape B)
– 确保 LOFFS 位置在刀具直刃区域

陷阱 8: 参考刀具数据不一致(E5)

问题: USERPARATABx 与刀具存储器的参考刀具数据差异 > _B_RET[1](默认 1.8 mm)。

后果: 校准中断,输出错误 E5。

防范:
– 首次调试时确保两个数据源的值一致
– 可增大 _B_RET[1] 作为临时措施,但不推荐
– 正确的做法是修正刀具存储器或 USERPARATABx 中的数据

6.3 温度补偿调试陷阱

陷阱 9: LTOL/RTOL 设置过严

问题: 温度漂移公差过小,正常的热漂移导致频繁报错 E11。

后果: 频繁错误中断加工,影响生产效率。

防范:
– 初始调试时使用较宽松的公差(如 0.050 mm)
– 根据实际热漂移数据逐步收紧
– 注意在比较测量前确认机床已达到热稳态

陷阱 10: 温度补偿后未继续加工

问题: 执行完 BL9904 参考测量后立即关机或停机。

后果: 参考值代表的是一个不稳定的热状态,下次开机后比较测量无意义。

防范:
– 参考测量应在机床达到正常工作温度并完成首个工件后执行
– 温度补偿是一个持续过程:参考 → 加工 → 比较 → 调整 → 继续加工

6.4 测量循环调用陷阱

陷阱 11: NT 模式转速不足

问题: 调用 MMODE=-1、-2、-3(NT 模式)时主轴转速 S < 50 rpm。

后果: 循环自动降级为搜索模式(0、+1、+2),与预期的 NT 拉出测量行为不一致。

防范:
– NT 模式调用前确保 S ≥ 50 rpm
– DIGILOG 模式下的最低转速要求为 50 rpm
– 如需拉出测量(抗冷却液干扰),确认转速满足要求

陷阱 12: 刀具存储器数据偏差超过 ±5 mm

问题: 手输的刀具长度或半径值与实际值偏差 > ±5 mm。

后果: 预定位位置错误,刀具可能碰撞激光头或工件。

防范:
– 手动输入刀具数据应与实际值偏差在 ±5 mm 以内
– 正确测量或输入的值不要随意更改
– 对未知刀具使用 MMODE=0 搜索模式

陷阱 13: 适配器数据被忽略

问题: 使用刀头适配器(LADAPTER ≠ 0),但测量循环未考虑适配器长度。

后果: 刀具定位错误。

防范:
– 调试时检查是否有适配器数据
– 如有,在 USER 程序中补偿适配器长度/半径

陷阱 14: CUT 参数与刀具存储器刃数冲突

问题: 调用参数 CUT 与刀具存储器中定义的刃数不一致。

后果: 单刃监测结果不可靠(漏报或误报断刀)。

防范:
– 如果在两处都定义了刃数,确保值一致
– 推荐在刀具存储器中定义刃数,调用时使用 CUT=0 自动读取
– CUT=0 时系统从 _B_TOOLD 读取刃数

6.5 一般调试步骤总结

第一阶段 — 基础配置:
1. 确认控制系统为 Siemens Sinumerik 840D sl
2. 确认激光系统为 LC50-DIGILOG 或 LC52-DIGILOG
3. 确认总线连接正常(EM30 PROFIBUS 或 EM31 PROFINET)
4. 确认 IF10 固件版本 ≥ V1.18
5. 确认测量循环版本为 V6D

第二阶段 — GUD 配置:
1. 填写 USERPARATABx 中的所有系统特定值
2. 配置 _B_RET[0..2] 系统限值
3. 配置 _B_CMODE[0](参考刀具类型与校准范围;Shape A/B 映射由制造商确认)
4. 设置 _B_REPOS[0] 退刀安全位置
5. 如需双侧半径测量,配置 _B_DIR[1]
6. 定义参考刀具数据(_B_CTOOL[0]、_B_CTOOL[1])或设为 0 使用刀具存储器

第三阶段 — 首次校准与线性化:
1. 机床预热至工作温度
2. 安装清洁的参考刀具(理想情况热缩在刀柄中)
3. 执行 BL9901(-1, 0.01, 0, 0) — 含线性化校准
4. 检查 _B_MPV[4](轴向跳动)和 _B_MPV[7](径向跳动)值
5. 检查线性化日志(如启用了日志选项位)

第四阶段 — 验证:
1. 使用 BL9903 测量参考刀具(使用附加 D 刀补,如 D2)
2. 比较测量值与名义值
3. 执行 S_RUNOUT 检查跳动
4. 执行 T_REPEAT 检查重复测量精度

第五阶段 — 温度补偿设置:
1. 完成首件加工至全部尺寸合格
2. 执行 BL9904(0,0,0.01,0,0,,) 参考测量
3. 加工下一工件
4. 执行 BL9904(1,0,0.01,0,0,0.05,0.05) 比较测量
5. 检查 _B_ERRNO 是否为 0(无错误)
6. 确认 USERSETOFFS 子程序正确处理漂移数据

第六阶段 — 生产集成:
1. 编制各刀具的测量循环调用(选择适当的 MMODE)
2. 集成断刀检测(BL9908/BL9988)到加工程序中
3. 确定温度补偿比较测量的频率
4. 配置 USERSTARTPROG 和 USERENDPROG 中的错误处理策略
5. 编写刀具锁止/姐妹刀具调用逻辑

6.6 快速诊断参考

症状 检查点 可能原因
校准失败 E5 _B_RET[1]、刀具存储器 L/R、USERPARATABx 参考刀具数据不一致
断刀误报 E19 LBREAK、CORLEN 公差过小或芯长修正不足
温度漂移 E11 LTOL、RTOL、机床温度 公差过严或未预热
径向跳动超限 RPTL、参考刀具清洁度 刀具污染或刀柄跳动大
参数错误 E4 _B_RET[0]、ADDLEN、ADDRAD 限值过小或偏置过大
测量值异常 光学镜片清洁度 发射器/接收器污染
DIGILOG 不稳定 IF10 固件版本 固件过低
冷却液干扰 MMODE 选择 应尝试 NT 拉出测量
碰撞风险 刀具存储器 L/R 精度 手输值偏差 > ±5 mm

文档说明: 本指南基于 Blum-Novotest GmbH 官方编程手册(LaserControl DIGILOG Programming Instructions, 183326_V6D_APPL, 07-2023)内容整理,适用于 Siemens Sinumerik 840D sl 系统和 BLUM LC50-DIGILOG / LC52-DIGILOG 激光测量系统。所有技术数据均源自该手册。具体配置值需根据实际机床和激光系统型号由机床制造商在调试时确定。


需要更具体的方案?

每台机床的配置、工况和预算都不一样,本文给出的只是参考框架。您可以:

  • 发机床型号和加工需求(如"VCN-530C + BT40 + 铝件批量"),我们帮您匹配具体型号和配置
  • 提供测头/对刀仪故障现象,我们免费帮您初步判断故障等级和维修方向
  • 索取报价单或预约现场勘察,工程师上门评估后出正式方案

宁波匠测科技——15 年专注精密测量,服务雷尼绍、马波斯、波龙全系测头与对刀仪的选型、安装、校准、维修与维保。

联系方式 信息
官方预约 jcetech.cn/contact
咨询热线 157-5780-7400 / 132-2194-1413
寄修地址 宁波鄞州研发园 A2-12B17
服务范围 全国上门 · 加急维修 48 小时响应

把问题发给我们,让专业工程师帮您算清楚这笔账。