The linear scale throws alarm 25000, the reading head is contaminated with oil, or the encoder has failed — but the order cannot stop. The usual first reaction is “mask the linear scale and run on the motor encoder for now.” A SINUMERIK 828D does allow a full-closed-loop machine to run semi-closed as a fallback, but this is not a one-parameter change: the NC machine data, the PLC interface bits and the backlash compensation are three layers that must all move together. Miss a layer and you get one of the three classic failures — “parameters changed but nothing happens”, “the machine runs away after the change”, or “positioning accuracy is ruined”.
First, a correction to a widely circulated mistake: many sources write “change MD25000 / MD25030” — 25000 (encoder error) and 25030 (actual speed value exceeded) are alarm numbers, not machine data. The encoder-related machine data on the 828D lives in the 30xxx range; this article lists them one by one following the official manuals and the Siemens support-center answers.
Related reading: for the scale itself (contour-following error, position jumps, drift), see Heidenhain linear scale alarm troubleshooting; the FANUC-side backlash procedure is in FANUC backlash compensation 1851.
1. Why change at all: telling a temporary mask from a permanent semi-closed conversion
The two scenarios have different goals and touch different things.
Table 1 — Temporary masking versus a permanent semi-closed conversion
| Item | Temporary mask (emergency production) | Permanent semi-closed |
|---|---|---|
| Purpose | keep producing on the motor encoder while the scale is down | the machine was never meant to run full-closed |
| Positioning accuracy | degrades (ball-screw thermal growth and play enter the position loop) | calibrated as semi-closed |
| Allowed duration | until the scale is repaired | long term |
| Safety Integrated | if enabled, re-verify the safety configuration at Manufacturer level | same |
| Mandatory | back up the original parameters first, document the change after | same, plus note which layers were touched |
Semi-closed is not maintenance-free: screw thermal growth turns directly into dimensional drift; watch the first few parts of every batch.
2. Three layers that must move together: NC data, PLC interface bits, backlash compensation
Table 2 — The three layers and what happens when one is missed
| Layer | What to change | Consequence of missing it |
|---|---|---|
| NC machine data | MD30200 / 30230 / 31000 / 31010 / 31020 / 31040 / 32110 | wrong data trips alarms or scrambles coordinates after the reset |
| PLC interface bits | DB31.DBX1.5 / DBX1.6 (measuring system 1/2 selection) | bits untouched, so the parameters have no effect — the most common “I changed it and nothing happened” |
| Backlash compensation | MD32450 filled per measuring system | once semi-closed, the screw backlash lands in the position loop and positioning accuracy is ruined |

3. The key NC machine data: 30200 / 30230 / 31000 / 31040 / 32110
Table 3 — Measuring-system machine data (official names)
| Parameter | Official name | Full-closed (typical) | Semi-closed (typical) | Note |
|---|---|---|---|---|
| MD30200 | $MA_NUM_ENCS | 2 | 1 | number of measuring systems: 1 = semi-closed, 2 = full-closed |
| MD30230 | $MA_ENC_INPUT_NR[n] | [0]=2, [1]=1 | [0]=1 | input assignment: 2 = direct measuring interface (scale), 1 = motor encoder interface |
| MD31000 | $MA_ENC_IS_LINEAR[n] | [0]=1, [1]=0 | [0]=0 | linear scale or not |
| MD31010 | $MA_ENC_GRID_POINT_DIST[n] | grid pitch (e.g. 0.02) | — | scale pitch |
| MD31020 | $MA_ENC_RESOL[n] | motor 2048 / direct e.g. 36000 | 2048 | encoder line count |
| MD31040 | $MA_ENC_IS_DIRECT[n] | [0]=1, [1]=0 | [0]=0 | directly connected measuring system or not |
| MD32110 | $MA_ENC_FEEDBACK_POL | per hardware | per hardware | encoder feedback polarity: wrong sign raises alarm 25030 (actual speed value); invert the value |
The core action of the conversion: put the measuring system you want the position loop to use into MD30230[0]. Full-closed puts the scale on the direct measuring interface (MD30230[0]=2); semi-closed puts the motor encoder first (MD30230[0]=1).
🚨 A machine-builder layout that saves you later: some builders fix the PLC on “measuring system 1 active” and wire the motor encoder as the second measuring system (MD30230[1]=1, [0]=2). Converting to semi-closed then requires no PLC change at all — only NC data. This is the layout recommended by Siemens support-center moderators; when accepting a new machine, ask which layout yours uses.
After editing the NC data, confirm with NEW_CONF / machine data confirmation, then restart (NCK reset or power cycle).

4. The PLC interlock bits DB31.DBX1.5 / DBX1.6: without them the parameters do nothing
This is the most valuable point in the article. The 828D function manual states it plainly: the selection signals for position measuring system 1/2 are DB31.DBX1.5 and DB31.DBX1.6 — one DB per axis, DB31 for axis 1, DB32 for axis 2, so DB3x with x the axis number.
Table 4 — Measuring-system selection bits (function manual and support-center answers)
| Signal | Meaning | Semi-closed fallback (scale masked) |
|---|---|---|
| DB3x.DBX1.5 | measuring system 1 active / selected | set to 1 (use the first system) |
| DB3x.DBX1.6 | measuring system 2 active / selected | set to 0 (deselect the scale path) |
| Both set to 1 | measuring system 1 wins (support-center wording) | — |
Three rules of thumb:
- If the parameters do not take effect, check these two bits first. The NC data may say “use measuring system 1”, but as long as the PLC still holds DBX1.6 at 1, the control keeps following the scale — the number-one cause of “I changed it and nothing happened”;
- Bits changed also require a system restart;
- Never change the NC without the PLC, or the PLC without the NC — both layers must point the same way.

5. Backlash compensation MD32450: one set of values per measuring system, switched automatically
Once semi-closed, the screw backlash is no longer seen by the scale and must be compensated by MD32450, otherwise positioning accuracy is gone. And MD32450 has a rule many people do not know:
Table 5 — Key rules for MD32450 $MA_BACKLASH
| Rule | Content | Source |
|---|---|---|
| One value per measuring system | one index per measuring system: fill one for the semi-closed path and a different one for the scale path | parameter manual: “a separate backlash must be entered for each measuring system” |
| Switching is automatic | when the measuring system changes, the matching 32450 index becomes active automatically | same |
| 🚨 Filling only one index | if only [0] is filled and the other left empty → that axis runs with zero backlash compensation after the switchover | manual and third-party tutorials agree |
| Sign | measuring system in front of the machine part (normal): enter a positive value; behind the part: negative | parameter manual |
| Unsure of the sign | enter half the measured value first: error shrinks means the sign is right; it grows means inverted | the cautious official approach |
| Activation | backlash compensation works only after reference point approach — verifying before homing is misleading | parameter manual |
| Related data | MD36500 $MA_ENC_CHANGE_TOL (maximum tolerance for the actual position change at switchover) | parameter manual |
Measurement and entry procedure:
- Home the axis in semi-closed mode;
- Clamp the dial indicator rigidly, approach the measuring point from one direction and zero it;
- Move in the opposite direction in small steps; the distance the CNC coordinate moves while the indicator stays still is the backlash;
- Repeat at several positions along the travel (screw wear is uneven — one point does not represent the whole travel);
- Only a value at or below 0.04 mm should be entered directly into MD32450; above 0.04 mm fix the mechanics first (screw pre-load, bearings) — compensating a large play only hides the error;
- Enter the value → NEW_CONF → restart → re-home → measure again to verify.
🚨 One more correction while we are here: some sources treat MD32500 as backlash — 32500 is friction compensation enable ($MA_FRICT_COMP_ENABLE). Backlash compensation is MD32450 $MA_BACKLASH, full stop.

6. Verification after the change: restart, home, bi-directional positioning, backlash re-check
Table 6 — Verification checklist after switching
| Step | What to do | Pass criterion |
|---|---|---|
| 1 Restart | NCK reset / power cycle | no 25000 / 25030 class alarms |
| 2 Home | every axis that was touched | homing normal; without homing the backlash compensation is not active |
| 3 Check the active bits | PLC diagnostics: DB3x.DBX1.5 / 1.6 | matches expectation (semi-closed: 1.5=1, 1.6=0) |
| 4 Unidirectional positioning | repeat positioning from the same direction | repeatability at the axis's semi-closed level |
| 5 Bi-directional positioning | approach the same point from both directions | the difference is the residual backlash after MD32450 |
| 6 Backlash re-check | dial indicator method again | compare with the pre-change measurement; compensation direction correct |
| 7 Trial cut | one part first, then measure | only release the batch once dimensions are stable |
The step most often skipped is step 3: the screen “shows the parameter changed”, but the DBX bits did not follow, so steps 4 and 5 drift inexplicably — confirm the bits before chasing precision.
7. Returning to full-closed and the documentation checklist
When the emergency ends you must be able to switch back cleanly — a machine you cannot restore is worse than one you never touched.
Table 7 — Documentation checklist before the change (per axis)
| # | Item to record | Example |
|---|---|---|
| 1 | Machine data screenshot / export | original values of MD30200 / 30230[0],[1] / 31000 / 31010 / 31020 / 31040 / 32110 / 32450[0],[1] |
| 2 | PLC bit state | original logic of DB3x.DBX1.5 / 1.6 (which network writes them) |
| 3 | Reference point setup | homing mode and related MDs such as MD34200 |
| 4 | Safety Integrated state | if enabled, record the pre-change safety configuration |
| 5 | Backup files | CF card / Archive backup plus date and who made the change |
Returning to full-closed is the same path in reverse: switch the PLC bits back (DBX1.6=1 or the original logic) → MD30200=2, MD30230[0]=2 (scale back to the first system), restore MD31000/31040 → confirm and restart → home → confirm the scale-path index of MD32450 is not empty → repeat the bi-directional positioning check.
Related reading: the overall 828D backup procedure is in SINUMERIK 828D data backup and recovery.
Frequently Asked Questions
How do I convert a SINUMERIK 828D from full-closed to semi-closed?
Three layers at once: NC side — set MD30200 $MA_NUM_ENCS to 1 (only the motor encoder as a measuring system) and put the motor encoder first via MD30230 $MA_ENC_INPUT_NR[0]=1, checking MD31000 (1 for a linear scale, 0 for a motor encoder), MD31040 (1 for direct connection), MD31020 (line count) and MD32110 (feedback polarity; inverted it raises alarm 25030); PLC side — set the axis DB3x.DBX1.5 to 1 and DBX1.6 to 0 (the measuring system 1/2 selection bits stated in the function manual, x = axis number); compensation side — fill the measured semi-closed backlash into the matching index of MD32450 $MA_BACKLASH. Then confirm the data, restart the system, home every axis, and verify with unidirectional and bi-directional positioning.
I changed the scale-related parameters but nothing happened — did I miss a bit in the PLC?
Most likely. The selection signals for position measuring system 1/2 are DB31.DBX1.5 / DB31.DBX1.6 (one DB per axis, x = axis number); the NC data and the PLC bits must point at the same system — semi-closed means DBX1.5=1 and DBX1.6=0. If the bits were not changed, or both are at 1, the control follows the first measuring system regardless of your NC intention. Two further causes of “nothing happened”: the NC data was not confirmed (NEW_CONF) and restarted; or the axis was never re-homed — backlash compensation and the position loop only work per the new configuration after homing. Confirm the two bits in the PLC diagnostics before chasing accuracy.
Does backlash compensation still matter in semi-closed mode?
Absolutely. In full-closed mode the linear scale measures the table directly, so the screw play is absorbed by the loop; in semi-closed mode the position feedback comes from the motor encoder and the screw backlash lands directly in the position loop — uncompensated it appears as a bi-directional positioning offset equal to the backlash. Remember that MD32450 $MA_BACKLASH is indexed per measuring system: fill the semi-closed value for the semi-closed path and the full-closed value for the scale path; the matching index activates automatically at switchover, and filling only one leaves the other path uncompensated. Enter values directly only when the measured play is at or below 0.04 mm — above that, fix the mechanics (screw pre-load, bearings) first. The sign follows “positive when the measuring system is in front of the machine part”; when unsure, enter half the value first. Compensation becomes active only after reference point approach.
Last updated: 2026-10-25
The original Chinese version — same procedure, with the full field notes.

























暂无评论内容