SINUMERIK 828D Semi-Closed Loop Conversion: MD Parameters, PLC Bits and Gap Compensation

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

ItemTemporary mask (emergency production)Permanent semi-closed
Purposekeep producing on the motor encoder while the scale is downthe machine was never meant to run full-closed
Positioning accuracydegrades (ball-screw thermal growth and play enter the position loop)calibrated as semi-closed
Allowed durationuntil the scale is repairedlong term
Safety Integratedif enabled, re-verify the safety configuration at Manufacturer levelsame
Mandatoryback up the original parameters first, document the change aftersame, 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

LayerWhat to changeConsequence of missing it
NC machine dataMD30200 / 30230 / 31000 / 31010 / 31020 / 31040 / 32110wrong data trips alarms or scrambles coordinates after the reset
PLC interface bitsDB31.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 compensationMD32450 filled per measuring systemonce semi-closed, the screw backlash lands in the position loop and positioning accuracy is ruined
Three layers that must move together: NC machine data MD30200/30230/31040/32110, the PLC interface bits DB31.DBX1.5/1.6 for measuring-system selection, and MD32450 backlash compensation; missing any one produces dead parameters or ruined accuracy

3. The key NC machine data: 30200 / 30230 / 31000 / 31040 / 32110

广告

Table 3 — Measuring-system machine data (official names)

ParameterOfficial nameFull-closed (typical)Semi-closed (typical)Note
MD30200$MA_NUM_ENCS21number of measuring systems: 1 = semi-closed, 2 = full-closed
MD30230$MA_ENC_INPUT_NR[n][0]=2, [1]=1[0]=1input assignment: 2 = direct measuring interface (scale), 1 = motor encoder interface
MD31000$MA_ENC_IS_LINEAR[n][0]=1, [1]=0[0]=0linear 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. 360002048encoder line count
MD31040$MA_ENC_IS_DIRECT[n][0]=1, [1]=0[0]=0directly connected measuring system or not
MD32110$MA_ENC_FEEDBACK_POLper hardwareper hardwareencoder 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).

NC-side machine data for converting an 828D to semi-closed: MD30200 from 2 to 1, MD30230 input assignment putting the motor encoder first, MD31000/31040/31020 checked against the hardware, and MD32110 feedback polarity which raises alarm 25030 when inverted

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)

SignalMeaningSemi-closed fallback (scale masked)
DB3x.DBX1.5measuring system 1 active / selectedset to 1 (use the first system)
DB3x.DBX1.6measuring system 2 active / selectedset to 0 (deselect the scale path)
Both set to 1measuring system 1 wins (support-center wording)—

Three rules of thumb:

  1. 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”;
  2. Bits changed also require a system restart;
  3. Never change the NC without the PLC, or the PLC without the NC — both layers must point the same way.
PLC interlock bits: set DB3x.DBX1.5 to 1 to select measuring system 1 and DBX1.6 to 0 to drop the scale path; with both at 1 the first system wins; restart after the change and keep NC and PLC pointing 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

RuleContentSource
One value per measuring systemone index per measuring system: fill one for the semi-closed path and a different one for the scale pathparameter manual: “a separate backlash must be entered for each measuring system”
Switching is automaticwhen the measuring system changes, the matching 32450 index becomes active automaticallysame
🚨 Filling only one indexif only [0] is filled and the other left empty → that axis runs with zero backlash compensation after the switchovermanual and third-party tutorials agree
Signmeasuring system in front of the machine part (normal): enter a positive value; behind the part: negativeparameter manual
Unsure of the signenter half the measured value first: error shrinks means the sign is right; it grows means invertedthe cautious official approach
Activationbacklash compensation works only after reference point approach — verifying before homing is misleadingparameter manual
Related dataMD36500 $MA_ENC_CHANGE_TOL (maximum tolerance for the actual position change at switchover)parameter manual

Measurement and entry procedure:

  1. Home the axis in semi-closed mode;
  2. Clamp the dial indicator rigidly, approach the measuring point from one direction and zero it;
  3. Move in the opposite direction in small steps; the distance the CNC coordinate moves while the indicator stays still is the backlash;
  4. Repeat at several positions along the travel (screw wear is uneven — one point does not represent the whole travel);
  5. 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;
  6. 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.

MD32450 holds one backlash value per measuring system; the matching index activates automatically on switchover; filling only one index leaves the other path uncompensated; compensation works only after homing

6. Verification after the change: restart, home, bi-directional positioning, backlash re-check

Table 6 — Verification checklist after switching

广告
StepWhat to doPass criterion
1 RestartNCK reset / power cycleno 25000 / 25030 class alarms
2 Homeevery axis that was touchedhoming normal; without homing the backlash compensation is not active
3 Check the active bitsPLC diagnostics: DB3x.DBX1.5 / 1.6matches expectation (semi-closed: 1.5=1, 1.6=0)
4 Unidirectional positioningrepeat positioning from the same directionrepeatability at the axis's semi-closed level
5 Bi-directional positioningapproach the same point from both directionsthe difference is the residual backlash after MD32450
6 Backlash re-checkdial indicator method againcompare with the pre-change measurement; compensation direction correct
7 Trial cutone part first, then measureonly 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 recordExample
1Machine data screenshot / exportoriginal values of MD30200 / 30230[0],[1] / 31000 / 31010 / 31020 / 31040 / 32110 / 32450[0],[1]
2PLC bit stateoriginal logic of DB3x.DBX1.5 / 1.6 (which network writes them)
3Reference point setuphoming mode and related MDs such as MD34200
4Safety Integrated stateif enabled, record the pre-change safety configuration
5Backup filesCF 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

Also available in Chinese: 828D 全闭环改半闭环怎么改?屏蔽光栅尺的 MD 参数 + PLC 位 + 间隙补偿三件套
The original Chinese version — same procedure, with the full field notes.
© 版权声明
THE END
喜欢就支持一下吧
点赞13赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容

广告