光栅尺报 25000、油污污染读数头、或者编码器坏了但订单不能停——这时很多师傅的第一反应是”把光栅尺屏蔽了先用电机编码器顶一顶”。828D 确实允许全闭环降级为半闭环应急生产,但这不是改一个参数的事:NC 机床数据、PLC 接口位、间隙补偿三层必须同时动,漏一层就出现”参数改了不生效””改完机床跑飞””定位精度全废”三种典型翻车。
先把一个流传很广的错误说法纠正掉:网上不少资料写”修改 MD25000 / MD25030″——25000(编码器出错)、25030(速度实际值超限)是报警号,不是参数号。828D 的编码器类机床数据在 30xxx 段,本文按官方手册与西门子支持中心的实际口径逐个列清。
相关阅读:光栅尺本身的报警排查(跟随误差超标、坐标突跳、尺寸漂移)见 海德汉光栅尺报警排查;FANUC 侧的反向间隙补偿流程见 FANUC 反向间隙补偿 1851 怎么设。
一、为什么要改:先分清”临时屏蔽”和”永久改半闭环”
这两种做法的目的不同,动的东西也不同。
表 1 临时屏蔽 vs 永久改半闭环
| 项 | 临时屏蔽(应急生产) | 永久改半闭环 |
|---|---|---|
| 目的 | 光栅尺故障时用电机编码器顶住,先恢复生产 | 机床配置本来就不需要全闭环 |
| 位置精度 | 下降(丝杠热伸长、间隙全进位置环) | 按半闭环标定 |
| 允许时长 | 修好光栅尺即恢复 | 长期 |
| 安全集成 | 若机床启用 Safety Integrated,须在制造商权限下重新确认安全配置 | 同左 |
| 必做 | 改前备份原参数,改完留档 | 同左,且建议在档案里写明改了哪几层 |
半闭环不是免维护模式:丝杠热伸长会直接变成工件尺寸漂移,批量件请关注前几件的实测尺寸。
二、三层必须同时动:NC 参数、PLC 接口位、间隙补偿
表 2 三层改动清单(缺一层就是一类翻车)
| 层 | 改什么 | 漏了的后果 |
|---|---|---|
| NC 机床数据 | MD30200 / 30230 / 31000 / 31010 / 31020 / 31040 / 32110 | 参数不对,NCK 重启后报警或坐标错乱 |
| PLC 接口位 | DB31.DBX1.5 / DBX1.6(测量系统 1/2 选择) | 位没动,参数改了也不生效——最常见的一类”改了没用” |
| 间隙补偿 | MD32450 按测量系统分别填值 | 切到半闭环后丝杠反向间隙直接进位置环,定位精度全废 |

三、NC 侧关键机床数据逐个:30200 / 30230 / 31000 / 31040 / 32110
表 3 测量系统相关机床数据(官方参数名)
| 参数 | 官方名称 | 全闭环(典型) | 半闭环(典型) | 说明 |
|---|---|---|---|---|
| MD30200 | $MA_NUM_ENCS | 2 | 1 | 测量系统数量:1 = 半闭环,2 = 全闭环 |
| MD30230 | $MA_ENC_INPUT_NR[n] | [0]=2,[1]=1 | [0]=1 | 测量电路输入分配:2=直接测量接口(光栅尺),1=电机编码器接口 |
| MD31000 | $MA_ENC_IS_LINEAR[n] | [0]=1,[1]=0 | [0]=0 | 是否直线光栅 |
| MD31010 | $MA_ENC_GRID_POINT_DIST[n] | 栅距(如 0.02) | — | 光栅栅距 |
| MD31020 | $MA_ENC_RESOL[n] | 电机 2048 / 直接测量如 36000 | 2048 | 编码器线数 |
| MD31040 | $MA_ENC_IS_DIRECT[n] | [0]=1,[1]=0 | [0]=0 | 是否直连测量系统 |
| MD32110 | $MA_ENC_FEEDBACK_POL | 按硬件 | 按硬件 | 编码器反馈极性:设反会报 25030(速度实际值超限),改成相反值即可 |
切换的核心动作:把位置控制实际要用的那一路测量系统排到 MD30230[0]。全闭环时光栅尺接直接测量接口(MD30230[0]=2),半闭环时把电机编码器排到第一路(MD30230[0]=1)。
🚨 有一种更省事的机床厂做法:PLC 里固定让”第一测量系统”生效,而把电机编码器配置成第二测量系统(MD30230[1]=1、[0]=2)。这样以后全闭环改半闭环完全不用碰 PLC 程序,只改 NC 数据——这是西门子支持中心版主给出的推荐布局,买新机床验收时值得问一句”你这台是哪种布局”。
改完 NC 数据后按 NEW_CONF / 数据确认,再重启(NCK 复位或断电重启)生效。

四、PLC 联锁位 DB31.DBX1.5 / DBX1.6:不动这两位,参数改了不生效
这是本篇最值钱的一条。828D 官方功能手册明确写:位置测量系统 1/2 的选择信号就是 DB31.DBX1.5 / DB31.DBX1.6(每轴一个 DB,DB31 对应轴 1,DB32 对应轴 2,以此类推,即 DB3x 的 x = 轴号)。
表 4 测量系统选择位(官方手册 + 支持中心口径)
| 信号 | 含义 | 半闭环应急(屏蔽光栅尺) |
|---|---|---|
| DB3x.DBX1.5 | 测量系统 1 有效 / 选用 | 置 1(用第一路) |
| DB3x.DBX1.6 | 测量系统 2 有效 / 选用 | 置 0(不选光栅尺那一路) |
| 两位同时置 1 | 第一测量系统有效(支持中心口径) | — |
三条经验法则:
- 参数改了不生效,先查这两位。NC 数据说”用测量系统 1″,但 PLC 还把 DBX1.6 置着 1,系统就还盯着光栅尺——这就是”改了没用”的第一大原因;
- 改完位同样要系统重启;
- 别只改 NC 不改 PLC、也别只改 PLC 不改 NC——两层指向必须一致。

五、间隙补偿 MD32450:两个测量系统各有一套值,切换自动生效
换成半闭环后,丝杠反向间隙不再被光栅尺”看住”,必须由 MD32450 补上,否则定位精度全废。而 MD32450 有一个很多人不知道的规则:
表 5 MD32450 $MA_BACKLASH 的关键规则
| 规则 | 内容 | 依据 |
|---|---|---|
| 按测量系统分别设值 | 每个测量系统一个索引:半闭环用的那路填一份、光栅尺那路填另一份 | 参数手册:”必须在此处为每个测量系统输入各自的反向间隙” |
| 切换自动生效 | 换测量系统时,对应的那个 32450 索引自动被激活 | 同上 |
| 🚨 只填一路的坑 | 只填了 [0]、另一路空着 → 切到另一测量系统时该轴完全没有间隙补偿 | 手册/第三方教程共同指出 |
| 符号 | 测量系统在机床部件前方(正常)填正值;在后方填负值 | 参数手册 |
| 不确定符号 | 先填实测值的一半试:误差变小=符号对;变大=符号反 | 官方口径的稳妥做法 |
| 生效 | 回参考点之后间隙补偿才有效——没回参考点的验证是误导 | 参数手册 |
| 关联参数 | MD36500 $MA_ENC_CHANGE_TOL(切换测量系统时实际位置值的最大容差) | 参数手册 |
实测与填写流程:
- 半闭环下回参考点;
- 千分表吸牢,从单方向趋近测量点对零;
- 反方向小幅移动,读”CNC 坐标动了、表不动”的那段距离 = 反向间隙;
- 沿行程多测几个位置(丝杠磨损是不均匀的,一个点不代表全程);
- 间隙不大于 0.04mm 才建议直接补进 MD32450;超过 0.04mm 先调机械(丝杠预紧、轴承),硬补只是把误差藏起来;
- 填值 → NEW_CONF → 重启 → 再回参考点 → 复测验证。
🚨 顺带纠一个错:网上有人把 MD32500 当反向间隙——32500 是摩擦补偿使能($MA_FRICT_COMP_ENABLE),别填错位。间隙补偿就是 MD32450 $MA_BACKLASH。

六、改完必做的验证:重启 → 回零 → 双向定位 → 背隙实测
表 6 切换后的验证清单
| 步骤 | 做什么 | 合格判据 |
|---|---|---|
| 1 重启 | NCK 复位 / 断电重启 | 无 25000 / 25030 类报警 |
| 2 回参考点 | 每根改过的轴都回 | 回零正常;不回零,间隙补偿不生效 |
| 3 看生效位 | PLC 诊断里看 DB3x.DBX1.5 / 1.6 | 与预期一致(半闭环:1.5=1、1.6=0) |
| 4 单向定位 | 同一方向往复定位多次 | 重复定位符合该轴半闭环水平 |
| 5 双向定位 | 正反两个方向趋近同一点 | 差值 = 剩余反向间隙,应接近 MD32450 填补后的残差 |
| 6 背隙复测 | 千分表法复测 | 与填值前的实测值对比,补偿方向正确 |
| 7 试切 | 首件单件试切、量尺寸 | 尺寸稳定再放批量 |
验证顺序里最容易被跳过的是第 3 步:界面看起来”参数已经改了”,但 DBX 位没跟上,第 4、5 步的数据就会莫名其妙地漂——先确认位,再测精度。
七、恢复全闭环与原参数留档清单
应急结束要能原样切回去——切不回去的机床比没改还麻烦。
表 7 改前留档清单(逐轴记录)
| # | 要记录的项 | 记录内容示例 |
|---|---|---|
| 1 | 机床数据截图/导出 | MD30200 / 30230[0]、[1] / 31000 / 31010 / 31020 / 31040 / 32110 / 32450[0]、[1] 原值 |
| 2 | PLC 位状态 | DB3x.DBX1.5 / 1.6 原逻辑(哪段程序在写它) |
| 3 | 参考点设定 | 回零方式、MD34200 等相关参数原值 |
| 4 | 安全集成状态 | 若启用了 Safety Integrated,记录改前的安全配置 |
| 5 | 备份文件 | CF 卡 / Archive 备份 + 日期与改动人 |
恢复全闭环的动作就是反向来一遍:PLC 位切回(DBX1.6=1 或按原逻辑)→ MD30200=2、MD30230[0]=2(光栅尺排回第一路)、MD31000/31040 恢复原值 → 确认 + 重启 → 回参考点 → 确认 MD32450 的光栅尺那路索引里有值(别是空的)→ 复测双向定位。
相关阅读:828D 参数与程序的整体备份方法见 SINUMERIK 828D 参数与程序备份恢复完整教程。
常见问题
828D 怎么把全闭环改成半闭环?
三层同时动:NC 侧把 MD30200 $MA_NUM_ENCS 设为 1(只用电机编码器一个测量系统),并把电机编码器排到 MD30230 $MA_ENC_INPUT_NR[0]=1,同时核对 MD31000(直线光栅=1、电机编码器=0)、MD31040(直连=1)、MD31020(线数)、MD32110(反馈极性,设反会报 25030);PLC 侧把该轴 DB3x.DBX1.5 置 1、DBX1.6 置 0(测量系统 1/2 选择位,官方功能手册明载,x=轴号);补偿侧在 MD32450 $MA_BACKLASH 对应索引里填半闭环的反向间隙实测值。然后确认数据、系统重启、每轴回参考点,再做单向/双向定位验证。
改了光栅尺相关参数但不生效,是不是漏了 PLC 里的位?
大概率是。位置测量系统 1/2 的选择信号是 DB31.DBX1.5 / DB31.DBX1.6(每轴一个 DB,x=轴号),NC 参数说用哪一路,PLC 位也要指向同一路:半闭环时 DBX1.5=1、DBX1.6=0。位没改或两位都置 1 时系统按第一测量系统走,与你在 NC 侧的意图可能不一致。另外两点也会造成”改了没用”:NC 数据改完没有确认(NEW_CONF)+ 重启;改完没有回参考点——间隙补偿和位置控制在回零前都不按新配置工作。先在 PLC 诊断里确认这两位的状态,再谈精度。
半闭环模式下还需要做反向间隙补偿吗?
必须做。全闭环时光栅尺直接测工作台位置,丝杠间隙被闭环”吃掉”了;换成半闭环后位置反馈来自电机编码器,丝杠反向间隙直接进位置环,不补就表现为双向定位差一个背隙值。注意 MD32450 $MA_BACKLASH 是按测量系统分索引的:半闭环用的那一路填半闭环实测值,光栅尺那一路填全闭环值,切换测量系统时对应索引自动生效;只填一路会让另一路零补偿。实测值不大于 0.04mm 才建议直接补,超过先调机械(丝杠预紧、轴承);符号按”测量系统在机床部件前方填正”执行,不确定就先填一半试。补偿生效的前提是回参考点之后。
最后更新:2026-10-25
面向海外读者的完整英文版,内容与本文对应 — 可直接转给非中文同事或海外客户。

























暂无评论内容