海德汉对刀仪(TT)测刀,现场十有八九的麻烦不是测头坏了,是循环格式选错代、安全区参数找错地方、TOOL.T 该预填的字段空着。iTNC 530 用 MP 机床参数、TNC 640/620/TNC320/TNC7 用结构化配置对象,两代体系互不通用;而循环本身也分两代——老格式 TCH PROBE 31.x 四行、新格式 TCH PROBE 481 一行 Q 参数。这篇按官方用户手册逐条写清:31 与 481 到底差在哪、Q340 三种模式写错的后果、Q260 安全高度触发的自动定位、Q341 逐齿测量在 iTNC530 与 TNC640 上上限不一样(99 与 20),以及一张 MP65xx 与 Cfg 对象的对照表。
相关阅读:测刀之前的测头标定怎么走,见 海德汉测头标定与在机测量参数;测刀报错码的查法见 海德汉 TNC 错误码对照表;编码器/光栅尺侧的测量系统故障见 海德汉光栅尺报警排查。
一、先分清两代循环格式:31.x 四行 vs 481 一行
海德汉把「自动刀具测量」做成了一组循环,编号上老一代一个号、新一代一个号,功能一一对应。官方手册原话:481 与 31 的功能与运行顺序完全相同,区别只有两点。
表 1 刀具测量循环族谱(老号 / 新号 / ISO 号)
| 功能 | 老格式 | 新格式 | DIN/ISO 下 | 说明 |
|---|---|---|---|---|
| 校准 TT 对刀仪 | 30 | 480 | G480 | 用圆柱校准棒标定,测中心偏置需 180° 回转 |
| 测刀具长度 | 31 | 481 | G481 | 本文主题:旋转测量 / 静止测量 / 逐齿 |
| 测刀具半径 | 32 | 482 | G482 | 可选按齿定向测量 |
| 测长度 + 半径 | 33 | 483 | G483 | 一次调用同时出 L 与 R |
| 校准无线 TT | — | 484 | — | 红外/无线传输的 TT 标定 |
老格式(iTNC 530 上最常见的写法)是四行,每个参数占一行:
6 TOOL CALL 12 Z
7 TCH PROBE 31.0 TOOL LENGTH
8 TCH PROBE 31.1 CHECK: 0
9 TCH PROBE 31.2 HEIGHT: +120
10 TCH PROBE 31.3 PROBING THE TEETH: 0
新格式是一行 Q 参数(TNC 640/620/TNC320/TNC7,iTNC 530 后期软件同样支持):
6 TOOL CALL 12 Z
7 TCH PROBE 481 TOOL LENGTH Q340=+1 ;CHECK
Q260=+100 ;CLEARANCE HEIGHT
Q341=+1 ;PROBING THE TEETH

官方明确的两点区别:① 481–483 在 DIN/ISO 编程方式下可用 G481–G483 调用,老格式 31–33 没有 ISO 号;② 新格式用固定结果参数 Q199,取代老格式里可选的「结果参数号」(老格式要手填一个 Q 号存结果,不填就不存)。
🚨 硬规矩:无论哪一代,先 TOOL CALL 再 TCH PROBE。TCH PROBE 是 DEF-active 循环——定义被读到的那一刻就执行,位置必须写在它之前;且必须先 TOOL CALL 设定刀具轴。另外刀具测量循环属于 Touch Probe Functions 软件选项(option 17),没开这个选项的机器上循环根本不存在。
二、Q340 三种模式:覆写、比较、只读——写错等于白测或误锁刀
Q340(老格式对应 31.1 CHECK:)决定这次测量对 TOOL.T 做什么,是全程最容易写错的一个参数。
表 2 Q340 三模式对照(官方口径)
| 模式 | 老格式 | 首次测量 | 复测(检查)时 | 结果存哪 | 超差后果 |
|---|---|---|---|---|---|
| 0 | CHECK: 0 | 用实测值覆写 TOOL.T 的 L,DL 归零 | 同首次:再覆写一次 | 仅 L | 无锁刀动作 |
| 1 | CHECK: 1 | — | 实测长度与表中 L 比较,偏差写入 DL(磨损列) | DL + Q115 | 超 LTOL 或 LBREAK → 刀具锁状态 L |
| 2 | 无此档 | 只测量 | 只比较,不动表 | 仅 Q115/Q116 | 无锁刀动作 |
官方原文口径:首次测量时 TNC 用实测值覆写 TOOL.T 中的刀具长度 L,DL = 0;复测时比较实测长度与已存 L,把正负偏差作为 DL 写入,偏差同时可经 Q115 取用;偏差大于磨损或破损公差(LTOL / LBREAK)时,TNC 将该刀具锁为状态 L。半径侧同理:DR / RTOL / RBREAK,偏差同时进 Q116(33/483 与 32/482 才有 Q116)。
Q340=2 是 TNC 640 之后的新格式独有档位:只把结果读进 Q 参数,工具表一个字节都不动——适合只想取个数、不想让程序改生产刀具数据的场合。老格式 CHECK 只有 0/1 两档,把 2 的思维带过去会直接语法报错。
现场判据:加工中尺寸缓慢漂移、怀疑刀具磨损——用 Q340=1 复测,看 DL 有没有稳定负增长;只想确认刀长对不对、不动生产数据——用 Q340=2。首测一定要 Q340=0,复测再 Q340=1,顺序反了会把旧刀补清零。
三、Q260 安全高度与两代安全区:MP6540 vs safetyDistStylus
Q260(老格式 31.2 HEIGHT:)是无碰撞高度,参照当前工件原点。它有一个官方规定的自动兜底行为:如果输入的安全高度低到刀尖会低于测头接触面,TNC 自动把刀具定位到测头接触面之上——靠的就是「安全区」。
安全区本身在两代系统上是两套东西:
表 3 安全区参数两代对照(官方核实)
| 项 | iTNC 530 | TNC 640 / 620 / TNC320 / TNC7 |
|---|---|---|
| 参数形态 | MP6540(两个下标) | CfgTTRoundStylus 配置对象属性 |
| 刀具轴方向安全净空 | MP6540.0 | safetyDistToolAx(对象号 114203) |
| 垂直刀具轴平面内的安全区 | MP6540.1 | safetyDistStylus(对象号 114204) |
| 输入范围 | 0.001–30000.000 mm | 0.001–99999.9999 mm |
| 程序改值方式 | FN 17: SYSWRITE ID 1000 NR6540 IDX0 =+5 | NC 程序只能读(CFGREAD),改写须走 PLC(模块 9430/9432/9433) |
TNC7 官方参数文档在 safetyDistToolAx / safetyDistStylus 条目下直接标注了「iTNC 530: 6540.0 / 6540.1」的映射,可以放心对照。矩形触针测头(CfgTTRectStylus)同样有这对属性(对象号 114317 / 114318,同样映射 MP6540.0 / 6540.1)。
🚨 现场铁律:拿 MP6540 去 TNC 640 上找,或拿 safetyDistStylus 去 iTNC 530 上找,必然白费功夫。两代的入口也不同:iTNC 530 在 MP 参数设定界面;TNC640 起在「编辑参数 → 机床配置」的 Cfg 对象里(测头还可用 MOD → Machine settings 入口)。
Q260 输入范围 −99999.9999 至 +99999.9999 mm,也可以用 PREDEF 预定义值。别把 Q260 当成「抬到多高都行」的自由参数:它低到一定程度就由安全区兜底,而安全区设小了,预定位快移(MP6550 / Cfg 内对应值)时就有撞测头风险。

四、Q341 逐齿测量:99 齿与 20 齿的分界、旋转与静止
Q341(老格式 31.3 PROBING THE TEETH:)只有 0/1:是否逐齿测量。但逐齿的上限在两代系统上不一样,这是把 iTNC530 程序搬到 TNC640 报错的常见原因。
表 4 逐齿测量上限(官方手册核实)
| 系统 | 逐齿上限 | 状态画面回显 |
|---|---|---|
| iTNC 530 | 最多 99 齿 | 最多同时显示 24 齿的实测值 |
| TNC 640 / TNC 320 / TNC 128 | 最多 20 齿 | — |
测量方式由刀具直径与 TT 测量面直径的关系决定,官方规则:
- 刀具直径大于 TT 测量面直径 → 旋转测量。控制把刀具定位到偏离测头中心一个半径处(该偏移量写在 TOOL.T 的 R_OFFS 列,Radius (TT: R_OFFS)),旋转着推向测量面,测出最长齿。
- 刀具直径小于测量面直径,或钻头/球刀 → 静止测量。刀具定位到测量面中心上方不转,靠 R_OFFS = 0 激活这个模式。
- 逐齿测量:先预定位到测头侧面(刀尖到测头上边缘的距离由 offsetToolAxis 定义,iTNC530 对应 MP6530.x,可再用 TOOL.T 的 L_OFFS 追加偏移);随后旋转径向探测一次定出起始角,再靠主轴定向逐齿改角度测长。
也就是说:R_OFFS 这一个格子,就同时管着「旋转/静止」与「偏心量」两件事——填错它不是测不准,是测量模式整个换掉。

逐齿测量的主轴定向由 MP6560 指定 M 功能(iTNC530,0–999,−1 = 该功能禁用);旋转测量的允许转速/切削速度来自 MP6572 / MP6570,详见第六节参数表。
五、TOOL.T 预填字段:首次测量前必须填的五项
官方在循环说明的「编程前请注意」里给了硬性清单:首次测量一把刀之前,必须先把五项数据填进 TOOL.T,缺一项循环就没法正确执行。
表 5 首次测量前 TOOL.T 必填字段(官方清单)
| 字段 | 填什么 | 缺了的后果 |
|---|---|---|
| 近似半径 R | 刀具标称/近似半径 | 旋转测量的偏心定位没有依据 |
| 近似长度 L | 刀长的近似值 | 循环的预定位与比较没有基准 |
| 齿数 CUT | 齿数(含直齿/刀片数按本机约定) | 逐齿测量(Q341=1)无法逐齿 |
| 切削方向 | 顺/逆铣等方向位 | 补偿方向判错 |
| R_OFFS / L_OFFS | 需要时填 TT 偏置 | 不填 = 0:R_OFFS=0 意味着静止测量 |
另外两条前提:TOOL.T 必须已激活(iTNC530 上由 MP7260 ≠ 0 一类设置决定工具表生效,与测头标定文章里的口径一致);每次 TCH PROBE 之前先 TOOL CALL。
现场判据:循环一跑就停在奇怪的位置、或者报安全区相关错误——先回 TOOL.T 看这五项,尤其是 R_OFFS 是不是意外为 0(想旋转测却填了 0)或意外非 0(想静止测钻头却留着铣刀的偏心量)。
六、MP65xx 与 Cfg 参数对照:官方核实表
对刀仪相关参数集中在 iTNC530 的 MP65xx 组,TNC7 系列散落在 CfgTT / CfgTTRoundStylus / CfgTTRectStylus 等配置对象里。下表左侧为 iTNC530 官方手册条目,右侧为 TNC7 官方参数文档中标注了 iTNC530 映射的条目;没有官方映射依据的一律留空,不硬凑。
表 6 iTNC530 MP65xx 与 TNC7 Cfg 对照(官方手册核实)
| 参数含义 | iTNC 530 | TNC 640 / 620 / TNC320 / TNC7 |
|---|---|---|
| 刀具轴方向安全净空 | MP6540.0 | safetyDistToolAx(114203) |
| 垂直平面内安全区 | MP6540.1 | safetyDistStylus(114204) |
| 触针中心坐标 | —(MP65xx 无对应) | centerPos(圆 114201 / 方 114313) |
| 刀尖到测头上边缘距离(3 个行程范围) | MP6530.0–.2(0.001–99.9999 mm) | offsetToolAxis(对象号以本机为准) |
| 半径测量探测方向(3 个行程范围) | MP6505.0–.2(0–3) | 以本机 Cfg 为准 |
| 静止测量探测进给 | MP6520(1–3000 mm/min) | 以本机 Cfg 为准 |
| 循环中 TT 快移速度 | MP6550(10 mm/min 起) | 以本机 Cfg 为准 |
| 逐齿测量主轴定向 M 功能 | MP6560(0–999,−1 禁用) | 以本机 Cfg 为准 |
| 旋转测量允许圆周速度 | MP6570(1.000–120.000 m/min) | 以本机 Cfg 为准 |
| 旋转测量允许转速 | MP6572(0–1000 rpm,0 = 限 1000) | 以本机 Cfg 为准 |
| 旋转测量最大允许测量误差 | MP6510.0/.1(推荐 0.005 / 0.01 mm) | 以本机 Cfg 为准 |
| 第二次测量进给计算规则 | MP6507(bit0:恒定/可变公差;bit1:恒定进给) | 以本机 Cfg 为准 |
转速与进给的官方公式(iTNC530 口径,与 MP6570/MP6507 配套):
- 转速 n = MP6570 ÷ (r × 0.0063),其中 r 为刀具半径(mm)——MP6570 是允许的圆周速度(m/min);
- 进给 v = 公差 × n(MP6507 bit0 = 0,按恒定公差算进给时)。
MP6530.x 的三个下标对应「行程范围 1/2/3」,是刀具按直径/长度分段选用不同测头位置的场合;单测头机器通常只用第一组。
七、故障对照:DL 不写、锁刀、Q199 与逐齿失败
表 7 测刀循环常见现象 → 根因 → 检查项(官方口径整理)
| 现象 | 根因 | 先查哪 |
|---|---|---|
| 测完 DL 一直是 0 | 首测行为本就如此(Q340=0 覆写 L、DL 归零);或想复测却写了 Q340=0 | Q340 是 0 还是 1 |
| DL 有值但加工尺寸没变 | 磨损补正没被程序调用(补正轴/刀补号)或 TOOL.T 未激活 | 程序里有没有取用 DL;工具表激活设置 |
| 刀具突然被锁(状态 L) | 偏差超 LTOL(磨损)或 LBREAK(破损) | Q199 = 1.0 是磨损、2.0 是破损;确认真碎刀还是公差设太紧 |
| Q199 取不到 / 老格式结果没存 | 老格式的结果参数号没填(不填 = 不存) | 老格式补 Q 号;新格式直接用 Q199 |
| 逐齿测到一半报错 | 齿数超过本代上限(iTNC530 99 / TNC640 20) | TOOL.T 齿数;目标系统代际 |
| 程序搬到 TNC640 语法报错 | 老格式 31.x 多行不被新系统接受,或 CHECK 写了 2 | 改写为 481 单行 Q 参数 |
| 循环停在测头附近不动 | TOOL.T 五项没填齐,或 R_OFFS 填错导致模式错 | R、L、CUT、方向、R_OFFS |
| 预定位阶段撞测头风险 | Q260 过低触发自动定位到安全区,而安全区本身设得太小 | MP6540.0/.1 或 safetyDistToolAx/Stylus |
Q199 的官方取值(新格式固定结果参数,替代老格式自选 Q 号):0.0 = 公差内;1.0 = 磨损(超 LTOL);2.0 = 破损(超 LBREAK)。半径侧 32/482、33/483 的对应结果是 Q116;Q115/Q116 的偏差值与锁刀判定走同一套公差。

八、现场 checklist:一次正确的测刀长这样
按顺序过一遍,比事后排查省半天:
- 确认控制型号与软件代际(HELM/关于画面),决定用 31.x 还是 481,以及逐齿上限是 99 还是 20;
- 确认 Touch Probe Functions 选项已开、TT 已用 30/480 标定(中心偏置需要时测过 180°);
- TOOL.T 激活,目标刀具的 R、L、CUT、切削方向已填,R_OFFS / L_OFFS 按测量方式填对;
- TOOL CALL 之后再写 TCH PROBE 块,位置写在循环之前;
- 首测 Q340=0,复测 Q340=1,只取数用 Q340=2;
- Q260 给足,同时核对安全区(MP6540.0/.1 或 safetyDistToolAx/Stylus)不是小得离谱;
- 逐齿(Q341=1)前确认齿数不超上限,且 MP6560 的主轴定向 M 功能有效;
- 结果按需取 Q115 / Q116 / Q199,锁刀状态 L 出现时先确认真碎刀,再查 LTOL/LBREAK 是否过紧。
一句话收口:测刀循环本身不复杂,复杂的是两代格式、两套参数体系和一张必须填对的工具表——格式选对代、参数找对地方、TOOL.T 填齐五项,九成的「对刀仪不准」在出门前就能排除。
常见问题
TCH PROBE 481 和 31 到底有什么区别,老程序要改写吗?
功能与运行顺序完全相同,官方口径只有两点区别:481–483 在 DIN/ISO 方式下可用 G481–G483 调用(31–33 没有 ISO 号),且新格式用固定结果参数 Q199 取代老格式自选的结果参数号。iTNC 530 上两种写法都能用,搬到 TNC 640/620/TNC320 建议改写为 481 单行 Q 参数格式。
为什么测完刀 DL 不变化,或者刀具直接被锁了?
DL 不变多半是首测行为(Q340=0 会用实测值覆写 L 并把 DL 归零)或复测时误写了 Q340=0;要积累磨损量必须用 Q340=1。被锁成状态 L 是偏差超过了 LTOL(磨损)或 LBREAK(破损),先看 Q199:1.0 是磨损、2.0 是破损,确认真碎刀还是公差设得过紧,再决定换刀还是放公差。
iTNC530 上能跑的 99 齿逐齿程序,为什么到 TNC640 就报错?
逐齿上限按代际分:iTNC 530 官方上限是 99 齿(状态画面最多回显 24 齿),TNC 640 / TNC 320 / TNC 128 是 20 齿。超过上限的程序搬到 TNC640 会直接失败,需要分批测或减少单次测量的齿数,同时把 31.x 老格式改写为 481 新格式。
最后更新:2026-10-26
面向海外读者的完整英文版,内容与本文对应 — 可直接转给非中文同事或海外客户。

























暂无评论内容