Address
宁波研发园A区2栋12B17
聚贤街道,鄞州区,宁波市,浙江中国
Work Hours
周一 to 周五: 8:30AM - 10:30PM
周六 to 周日: 9:30AM - 10:30PM

基准系统:SINUMERIK 840D sl / 828D
先提醒一下,西门子SINUMERIK的测量编程体系与发那科、三菱有根本性的差异。它不使用发那科体系的G31(跳转)和G37(自动刀长)指令,而是以 MEAS测量功能 作为测头触发的底层接口,以 CYCLE971~CYCLE998测量循环库 作为工程可直接调用的标准化工具层。
这套体系有两个突出特点:一是测量循环出厂即内置(对标三菱NAVI MILL),无需外挂宏程序包;二是循环库极为完整——从探头标定到工件测量到3D空间补偿,一条代码即可完成一次完整的测量-补偿闭环。
说明: 本文以SINUMERIK 840D sl系统为基准,828D的CYCLE循环接口基本一致。840D sl的测量循环手册版本为12/2018(A5E44904897F AA)。
西门子不使用G31。与之等价的功能是 MEAS 测量功能。与发那科G31不同,MEAS本身不是独立的运动G代码,而是G1等插补指令的附加属性,必须搭配测头编号和触发沿一起使用。
标准语法:
MEAS=1 G1 Z-50 F300 (1号测头,上升沿触发:接触工件时记录坐标)
参数说明:
与发那科G31的关键差异: 发那科G31可单独作为运动指令使用;西门子MEAS必须搭配G1等插补指令,其作用是在直线插补过程中监听探头触发信号,一旦信号到达立即中断运动并记录坐标。
MEAW——触发后继续走完剩余行程
与MEAS不同,MEAW在测头触发后不会中断运动,而是继续走完剩余的定位路径,到达目标点后再停止。这在加工中心的特殊干涉场景中极为关键——例如测量深腔底部特征时,如果探头触发就立即停止,可能无法完全退出干涉区域。
MEAW=1 G1 Z-50 F300 (触发后继续走到Z-50,不删除剩余行程)
MEAS的执行逻辑与发那科的G31一致:直线插补运动过程中持续监测探头触发信号,一旦信号到达,立即中断运动并记录当前坐标。但西门子将测得值写入的方式不同——不是通过#5061~#5063这样的系统变量,而是通过$AA_MM(实际系统变量)或 $AC_MEA(测量结果系统变量)系列来访问。
MEAS=1 G1 Z-50 F300 (1号测头,Z轴下移触发) R1 = $AA_MM[1] (读取触发点X机床坐标) R2 = $AA_MM[2] (读取触发点Y机床坐标) R3 = $AA_MM[3] (读取触发点Z机床坐标) G0 Z100 (退刀)
与发那科的差异: 发那科用只读宏变量#5061~#5063存触发坐标,必须在G31下一行立即读取;西门子通过$AA_MM系统变量读取,变量并非一次性失效,但推荐在触发后立即赋值给R参数以防范后续运动的干扰。
西门子系统的测头信号链路:
测头触发 → 接收器 → NC I/O接口 → 探头输入端 → MEAS触发中断
西门子的探头管理是通过 测头管理界面(Probe Management)集成的,而非像发那科那样通过PMC梯形图映射SKIP信号。在840D sl中,探头相关的配置集中在:
| 配置项 | 路径 | 说明 |
|---|---|---|
| 探头类型 | 机床参数 MD52200 | 定义探头的类型和接口 |
| 探头有效 | 机床参数 MD52202 | 探头激活状态 |
| 探头输入映射 | MD52210 / MD52211 | 探头信号对应的NC I/O地址 |
| 测量速度 | MD52240 | 测量进给的极限值设置 |
西门子的测量循环按功能分为以下四组:
探头标定层 ─── CYCLE973(车削)/ CYCLE976(铣削)/ CYCLE982(刀具测量)
↓
工件测量层 ─── CYCLE974(车削)/ CYCLE977/978/979/961(铣削)
↓
3D测量层 ─── CYCLE997/995/996/9960(空间测量与补偿)
↓
刀具测量层 ─── CYCLE971(基础版)/ CYCLE982(完整版)
| 循环 | 功能 | 典型用途 |
|---|---|---|
| CYCLE976 | 探头标定 | 标定测头长度/半径,支持校准环、平面、标准球四种方式 |
| CYCLE978 / CYCLE998 | 边沿间距 | 设置边沿、边对齐、测量槽边距 |
| CYCLE977 | 综合测量 | 矩形腔、槽、隔断、凸台、孔(单循环覆盖多个类型) |
| CYCLE979 | 圆弧测量 | 内圆弧、外圆弧半径和圆心位置 |
| CYCLE961 | 拐角测量 | 直角、任意角度拐角位置测量 |
| CYCLE997 | 3D球体 | 球体/三球体空间位置测量 |
| CYCLE995 | 3D主轴角度差 | 主轴定向角度偏差测量 |
| CYCLE996 | 回转轴补偿 | 运动测量、回转轴定向补偿 |
| CYCLE9960 | 坐标转换矢量 | 完整测量坐标转换矢量计算 |
| 循环 | 功能 | 典型用途 |
|---|---|---|
| CYCLE973 | 探头标定 | 车削探头长度/半径标定(平面/槽) |
| CYCLE974 | 车削测量 | 前沿、内径、外径测量 |
| CYCLE994 | 车削测量(扩展) | 与CYCLE974配合使用 |
| 循环 | 功能 | 典型用途 |
|---|---|---|
| CYCLE982 | 刀具测量(完整版) | 探头校准、车刀、铣刀、钻头的长度/直径测量 |
| CYCLE971 | 刀具测量(基础版) | 探头校准、铣刀/钻头基础测量,含刀齿检测 |
任何测量操作之前,必须先标定测头。CYCLE976是为铣削加工中心准备的测头标定循环,支持四种方式:
| 标定方式 | 适用场景 | 测量内容 |
|---|---|---|
| 1. 校准环标定长度 | 有校准环时 | 测头Z轴长度 |
| 2. 校准环标定半径 | 有校准环时 | 测头X/Y半径 |
| 3. 平面标定 | 有标准平面时 | 测头长度和半径 |
| 4. 标准球标定 | 有标准球时 | 测头长度和半径(最高精度) |
典型调用:
N10 T01 M06 (换测头) N20 G0 G90 G54 X0 Y0 Z100 (定位到校准环上方) N30 CYCLE976(1, 50.0) (用直径50mm校准环标定测头长度) N40 CYCLE976(2, 25.0) (用校准环标定测头半径) N50 M30
参数说明:
CYCLE977是西门子铣削测量中最核心的循环,一个循环即可覆盖多种几何元素的测量。
N10 CYCLE977(测量类型, 参数组)
| 类型代码 | 测量内容 | 结果 |
|---|---|---|
| 1 | 边沿间距(单边) | 边沿位置 |
| 2 | 槽宽 | 槽中心位置和宽度 |
| 3 | 隔断(凸台宽度) | 凸台中心位置和宽度 |
| 4 | 矩形腔 | 腔中心位置和长宽 |
| 5 | 矩形凸台 | 凸台中心位置和长宽 |
| 6 | 圆形凸台 | 凸台中心位置和直径 |
| 7 | 孔 | 孔中心位置和直径 |
(内径测量) N10 T01 M06 (换测头) N20 G0 G90 G54 X50 Y50 Z100 (定位到预估孔中心) N30 CYCLE977(7, 40.0) (测量直径约40mm的孔) N40 R10 = _OVR[0] (读取测量结果 孔中心X坐标) N50 R11 = _OVR[1] (孔中心Y坐标) N60 R12 = _OVR[2] (实测直径)
注意了: CYCLE977 实际包含多达十余个形参(如测量变量 MVAR、补偿编号 KNUM、安全距离、测量速度、最大测量行程等),上述调用仅为最简写法。实际编程时建议通过 SINUMERIK Operate 界面的Measurement Mask自动生成调用语句,系统会自动填充默认参数。如需纯手动编写,须严格对齐形参位置和数据类型。
CYCLE测量循环将结果存入预定义系统变量中。以下是现场编程最高频使用的核心变量:
| 变量 | 含义 |
| _OVR[1] | 实际测量值(例如实测孔径、槽宽) |
| _OVR[2] | 偏差值(实测值 − 理论值,用于自动刀补或 CPK 数据记录) |
| _OVR[0] | 辅助返回值(取决于测量类型) |
| $AA_MM[1]~[3] | 触发时刻的机床坐标系坐标(X/Y/Z) |
| $AA_IW[X/Y/Z] | 当前工件坐标系(G54~G599)下的轴坐标,常用于循环外的坐标比对 |
| $AC_MEA[1] | 测头1的实时触发状态:1=已触发,0=未触发。常用于循环外的防错判断 |
注意:_OVR 数组是西门子测量循环的结果缓存变量,必须在循环执行后立即读取。不同类型的测量结果映射到各索引的含义不同,具体以该循环的参数表为准。
CYCLE971是最常用的刀具测量循环,适用于铣刀和钻头的长度与直径测量。
N10 T01 M06 (换待测刀具) N20 G0 G90 G54 X0 Y0 (定位到对刀仪上方) N30 CYCLE971(1, 1, 2) (静止主轴,刀具1,Z方向测量刀长)
参数:
CYCLE982相比CYCLE971,增加了对车刀、成型刀的测量支持,并包含探头自身的校准功能。
西门子的刀具测量系统依赖于:
| 条件 | 说明 |
|---|---|
| 对刀仪标定完毕 | 对刀仪参考位置须预先通过砧板标定确认 |
| 探头类型参数正确 | MD52200须与实际探头类型匹配 |
| 测量方向参数正确 | 须与对刀仪的安装方向一致 |
这篇是写的系列版的第三篇了,前面也发了发那科和三菱,今天写了西门子,也算对三个主流系统做个小结。
| 对比项 | 发那科 0i-F | 三菱 M800/M80 | 西门子 840D sl |
|---|---|---|---|
| 测头触发指令 | G31(跳转) | G31(跳跃)/ G31.1~G31.3(多段跳跃) | MEAS |
| 触发坐标读取 | #5061~#5063(只读,立即读取) | #5061~#5063(只读,立即读取) | $AA_MM[1]~[3] |
| 底层触发机制 | SKIP信号 → PMC → NC | SKIP信号 → PMC → NC | NC探头管理(MD52200系列) |
| 自动刀长测定 | G37(轴向)/ G36(径向) | G37(加工中心)/ G36(车床径向) | CYCLE971 / CYCLE982 |
| 工件测量宏程序 | Inspection Plus(需外挂) | NAVI MILL(出厂内置) | CYCLE测量循环库(出厂内置) |
| 标定循环 | P9801(长度)/ P9802(环规) | P9801(长度)/ P9802(环规) | CYCLE976(铣削)/ CYCLE973(车削) |
| 工件测量循环 | P9811(单点)/ P9814(内径/外圆) | P9811(单点)/ P9814(内径/外圆) | CYCLE977(综合)/ CYCLE979(圆弧) |
| 内径测量 | P9814 D50. | P9814 D50. | CYCLE977(7, 40.0) |
| 3D测量 | ❌ 无内建循环 | ❌ 无内建循环 | ✅ CYCLE997/995/996/9960 |
| 刀具测量 | P9820 | P9820 | CYCLE971 / CYCLE982 |
| 系统变量体系 | #5000~#6000系列 | #60000系列 | $AA_ / $AC_ / _OVR系列 |
| 编程语言风格 | 传统G代码+宏变量 | 传统G代码+宏变量 | G代码+高级语言混合 |
这是一个跨系统的共性问题,但在西门子体系中同样致命,且因CYCLE循环”自动执行”的特性更容易被忽视。
原因: 现代工业测头内部采用光电式或微动开关结构来检测测针位移,而非纯机械齿轮传动。这种结构在测针接触工件产生位移,到最终向数控系统发送触发信号之间,存在一个极其微小但固定存在的预行程(Pre-Travel)。预行程的大小与测头接触时的运动速度(即进给率F值)直接相关。
后果: 如果在 CYCLE976 标定时使用F300,而在 CYCLE977 工件测量时使用F500,预行程误差无法被系统正确抵消,直接导致微米级的测量偏差——这在公差带只有±5μm的精加工场景中是致命的。
规则:
| 原则 | 说明 |
|---|---|
| 标定F值 = 测量F值 | CYCLE976(标定)和CYCLE977/979(工件测量)中的进给率F值必须保持绝对一致 |
| 变化需重新标定 | 如确需更改测量进给速度,必须先用新F值重新执行CYCLE976标定 |
| 同一F值应用于所有同类测量 | 确保同一把测头的所有测量操作使用同一进给率 |
实战建议: 在CNC程序的标定段和测量段显式声明F值(不依赖模态继承),防止因上一把刀具的进给参数残留导致F值偏移。
西门子SINUMERIK的测量编程体系与其他两家最核心的差异在于:
底层:MEAS测量指令(替代G31)— 通过NC探头管理系统集成,非PMC mapping
↓
中层:CYCLE测量循环库 — 出厂内置,标定/工件测量/刀具测量全覆盖,无需外挂
↓
上层:3D空间测量体系 — CYCLE995/996/9960,支持主轴定向和回转轴补偿(发那科和三菱无此能力)
CYCLE976是所有测量操作的起点(标定),CYCLE977是铣削工件测量的核心入口,CYCLE971/982是刀具测量的标准接口。三者共用底层的探头管理和触发机制——理解了MEAS和$AA_MM变量体系,就掌握了西门子测量编程的核心。