SINUMERIK 840D FM-NC: Tuning X-Axis Feed Speed and Backlash Compensation
1. Hardware Identification: 6FC5357-0BH00-0XE1 / NCU 570.2
The 6FC5357-0BH00-0XE1 is the Siemens order code (MLFB) for the SINUMERIK FM-NC bundle with NCU 570.2 hardware, four analog measuring-circuit interfaces and a stepper-motor output stage, integrated on a SIMATIC S7-300 rail. This combination is typical of retrofit slotting machines, gear shapers, special-purpose milling/turning machines and small series-production cells where a separate SIMODRIVE 611 line-up is undesirable.
| MLFB | 6FC5357-0BH00-0XE1 |
|---|---|
| Product | SINUMERIK FM-NC bundle |
| NCU | NCU 570.2 |
| Analog measuring circuits | 4 |
| Drive interface | Stepper motor output stage |
| PLC | SIMATIC S7-300 (integrated) |
| Operator panel | OP / MMC-compatible HMI |
On the HMI, X is the linear slide (the ram or table that carries the workpiece longitudinally across the gear-cutting stroke) and A is the rotary indexing table that positions the workpiece between strokes. Both axes can be inspected in the MCS (machine coordinate system) and WCS (workpiece coordinate system) screens.
2. Slotting Machine Kinematics: Strokes per Minute vs Feed per Minute
A gear slotting / shaping machine differs from a milling or turning centre in one essential respect: the cutting motion is a reciprocating stroke. The ram carries the cutter forward over the workpiece and retracts; the workpiece (or the cutter) is then indexed and a new stroke begins. From the NC's point of view there are two coupled feed quantities:
- Stroke rate in strokes per minute (spm), programmed via the spindle speed or via a dedicated stroking axis.
-
Feed per stroke in mm / stroke or mm / revolution, programmed with
G95(feed per revolution) when the rotary table A is the master, or withG94(feed per minute) when the linear slide X is commanded as a continuous axis.
If the part program uses G95 F0.05 on a machine where the NC interprets it against the main spindle rather than the rotary table A, the linear feed of X is scaled by a wrong denominator — and that is the most common reason a gear-shaper retrofitted with FM-NC reports exactly half the requested feed on the position display.
G94/G95 group matches the machine configuration. A clean factor of 2 strongly suggests a missing or doubled feed-rate factor — typically a wrong spindle/axis assignment in MD, or a wrong feed-source in the modal group, rather than a Kv or following-error issue.
3. Why the X-Axis Reads Half the Real Feed Speed
Three independent sources can each produce a 1:2 ratio between commanded and measured feed on FM-NC with stepper output. Investigate in this order.
3.1 Lead-screw pitch vs encoder ratio (MD 31030 / MD 31050 / MD 31060 / MD 31070)
The load-side distance per motor revolution is encoded in the denominator/numerator pair of the measuring-circuit gear. With a stepper motor the encoder is normally on the motor shaft and the load position is reconstructed through the lead-screw pitch.
| MD | Name | Effect on feed ratio |
|---|---|---|
| MD 31030 | LEADSCREW_PITCH | mm/rev of the spindle. Halving this value doubles commanded feed. |
| MD 31040 | ENC_IS_DIRECT | 0 = encoder on motor, 1 = encoder on load. Wrong setting halves feed. |
| MD 31050 | DRIVE_AX_RATIO_DENOM | Denominator of motor-to-load gear. |
| MD 31060 | DRIVE_AX_RATIO_NUMERA | Numerator of motor-to-load gear. |
| MD 31070 | DRIVE_ENC_RATIO_DENOM | Encoder-side gear denominator (motor-side measurement). |
| MD 31080 | DRIVE_ENC_RATIO_NUMERA | Encoder-side gear numerator. |
If the encoder is fitted on the motor (MD 31040 = 0) but the configuration was restored from a backup that assumed encoder-on-load (MD 31040 = 1), the NC will command the motor as if it were turning the spindle directly. The resulting mechanical travel is half of the position display, and the position display itself shows the commanded — i.e. the program — value. This matches the symptom "X on the screen is correct, but the machine physically moves at half the screen speed".
3.2 Position-control gain and following error
MD 32200 POSCTRL_GAIN (Kv, in (m/min)/mm) must be dimensioned against the real mechanical system. A Kv that is too low produces a following error that grows with feed rate, but it does not scale the feed ratio itself — therefore a Kv mismatch is unlikely to cause a clean 1:2 factor and should be ruled out before the gear/pitch data are changed.
3.3 Rotary vs linear axis declaration
If the rotary table A is mistakenly declared as linear (MD 30300 IS_ROT_AX = 0) the displayed feed in deg/min is interpreted as mm/min, which can also confuse the operator — though on FM-NC retrofits this more often shows up as a wrong MODULO limit than as a 1:2 feed ratio.
4. Relevant Machine Data for Feed Calibration
| MD | Name | Comment |
|---|---|---|
| MD 30130 | CTRLOUT_TYPE | 0 = analog, 1 = stepper. Must match FM-NC stepper hardware. |
| MD 30240 | ENC_TYPE | 1 = incremental, 4 = SSI absolute. |
| MD 30300 | IS_ROT_AX | 1 for the rotary table A. |
| MD 30310 | ROT_IS_MODULO | 1 for an endless rotary table. |
| MD 31030 | LEADSCREW_PITCH | Check against mechanical drawing. |
| MD 31040 | ENC_IS_DIRECT | Encoder on motor vs on load. |
| MD 31050 / 31060 | DRIVE_AX_RATIO_DENOM / _NUMERA | Motor-to-load gear ratio. |
| MD 31070 / 31080 | DRIVE_ENC_RATIO_DENOM / _NUMERA | Encoder-side gear. |
| MD 32060 | POS_X_SET_TIME | Position-controller cycle. NCU 570.2 default is typically 2 ms for stepper axes. |
| MD 32110 | ENC_FEEDBACK_POL | Sign of the encoder feedback. -1 reverses counting direction. |
| MD 32200 | POSCTRL_GAIN (Kv) | 1 (m/min)/mm default; tune for slotting kinematics if chatter occurs. |
| MD 32450 | BACKLASH | Compensation value in mm. See §6. |
| MD 32452 | BACKLASH_FACTOR | Temperature / direction factor. Usually 1.0. |
| MD 32454 | BACKLASH_MODE | 0 = on direction reversal, 1 = only when reversing from positive, 2 = only from negative, 3 = always. |
| MD 34000 | REFP_CAM_IS_ACTIVE | Reference-point cam active. |
| MD 34010 | REFP_CAM_DIR_IS_MINUS | Direction of approach to reference cam. |
| MD 34020 | REFP_VELO_SEARCH_CAM | Velocity to reference cam. |
| MD 34040 | REFP_VELO_SEARCH_MARKER | Velocity to zero marker. |
| MD 34050 | REFP_SEARCH_MARKER_REVERSE | Reverse distance for marker search. |
| MD 34060 | REFP_MAX_MARKER_DIST | Maximum distance to zero marker before error. |
| MD 34070 | REFP_VELO_POS | Velocity to reference point position. |
| MD 34080 | REFP_MOVE_DIST | Reference point move distance. |
| MD 34090 | REFP_MOVE_DIST_CORR | Offset of reference position. |
| MD 34092 | REFP_CAM_SHIFT | Shift of reference cam. |
| MD 34100 | REFP_SET_POS | Value to which the axis is set at the reference point. |
| MD 34102 | REFP_SYNC_ENCS | Synchronise absolute encoder after referencing. |
| MD 36000 | POSITION_LIMIT_TIME | Stop monitoring time after pulse enable. |
| MD 36010 | STOP_LIMIT_FACTOR | Multiplier for stop monitoring window. |
| MD 36020 | STANDSTILL_POS_WINDOW | Standstill window for exact-stop fine. |
| MD 36030 | STANDSTILL_DELAY_TIME | Standstill delay time. |
5. Step-by-Step Feed Speed Synchronization Procedure
Work with NCK access only, with the drive disabled and the axis clamped mechanically. On FM-NC / NCU 570.2 the operator password is required for write access.
- Capture the backup. Archive the NC and PLC data via the HMI menu Commissioning → Series startup → Create archive. Save the file with a date and version stamp.
- Verify the mechanical constants. Read the machine drawing. Note the lead-screw pitch (e.g. 5 mm / rev), the motor-to-load gear (e.g. 1:1 or 2:1), the encoder mounting (on motor or on load), and the counting direction. Compare every entry with the value in the NC.
-
Read MD 31030 LEADSCREW_PITCH on the X axis. If the backup shows
10but the real pitch is5, change MD 31030 to5and try again. -
Read MD 31040 ENC_IS_DIRECT. Set to
0when the encoder is on the motor shaft and the load position is reconstructed through the gear + lead screw; set to1when the encoder is fitted directly on the load (e.g. linear scale, glass-rule, rotary encoder on the spindle). - Read MD 31050 / MD 31060. The motor-side revolutions (DENOM) and load-side revolutions (NUMERA) must reflect the real gear. A factor of 2 between mechanical reality and MD typically halves the feed.
- Read MD 31070 / MD 31080 if the encoder side has its own gear (rare on a stepper output).
- Check MD 30130 CTRLOUT_TYPE = 1 for stepper axes. A wrong setting (e.g. 0 = analog) on a stepper hardware will not produce a 1:2 feed factor but will produce drive-side alarms.
-
Command a slow, safe motion, e.g.
G94 F100in MDI from a position that has clearance in both directions. Have a measuring tape, dial indicator or calibrated hand-wheel reference available. Measure the actual mm moved in 60 seconds at the slide. - Compare commanded vs measured. If commanded is exactly 2× measured, the load gear ratio or the encoder-flag MD 31040 is wrong. If commanded is, say, 1.05× measured, the lead-screw pitch is wrong by 5 %.
- Iterate on one MD at a time, never simultaneously. Confirm with the test motion between each change.
- Verify the direction of travel after every MD change. A wrong counting direction (MD 32110 ENC_FEEDBACK_POL = -1) is a separate but related symptom.
- Save via Series startup → Save and power-cycle the NCU so that the new MDs become active in the boot project.
6. Backlash Compensation: MD 32450 Family
MD 32450 BACKLASH is the single most important data word for the second symptom — the 0.1 mm cold-start offset. It defines how many millimetres the NC must add to the command value whenever the axis reverses direction, so that the mechanical play of the rack / pinion / lead-screw nut does not show up on the workpiece.
| MD | Name | Meaning |
|---|---|---|
| MD 32450 | BACKLASH | Backlash compensation value, in the unit of the load-side measurement system (mm for linear X). |
| MD 32452 | BACKLASH_FACTOR | Multiplication factor (default 1.0). Used for temperature compensation or multi-stage backlash. |
| MD 32454 | BACKLASH_MODE | 0 = on direction reversal, 1 = only positive→negative, 2 = only negative→positive, 3 = always. |
| MD 32456 | BACKLASH_ACK | Acknowledgement time between reversal and re-application of compensation. |
| MD 32460 | BACKLASH_DYN | Dynamic compensation factor for acceleration-dependent backlash. |
| MD 32462 | BACKLASH_DYN_ENABLE | Enable dynamic compensation (1 = on). |
| MD 36500 | ENC_CHANGE_TOL | Tolerance for encoder change. Used in tandem with backlash monitoring. |
6.1 Measuring the real backlash
- Disable any active compensation by setting MD 32450 = 0 and re-initialising the NC.
- Bring the X axis against a hard mechanical stop in the positive direction, then move a few mm away so the axis is unloaded.
- Set a dial indicator (resolution 0.01 mm or better) on the slide against a fixed reference on the bed.
- Approach the measurement position from the positive direction. Zero the dial.
- Move the axis 0.5 mm in the negative direction, then 0.5 mm back. Read the dial. The difference between the commanded and the indicated travel is the mechanical backlash of the drive train (lead-screw nut, coupling, gear pair).
- Repeat three times from each approach direction and average.
6.2 Entering MD 32450
- Enter the measured backlash in mm into MD 32450 of the X axis. Example:
0.12for a measured 0.12 mm. - Set MD 32454 to
0(compensation on every direction reversal) for the typical gear-slotting retrofit. - Set MD 32452 =
1.0unless a temperature compensation factor has been established. - Re-initialise the NC so that the new MDs are written to the boot file.
- Repeat the dial-indicator test from §6.1 with compensation active. The slide position must be reproducible within the dial-indicator resolution regardless of the approach direction.
7. Cold-Start Position Loss: Encoder Reference and Drift
An axis that loses the same incremental value every time it is powered off has one of three root causes:
- Index pulse position. MD 34060 REFP_MAX_MARKER_DIST is set too small, the zero marker is missed on reference, and the NC silently reverts to an estimated reference. Increase the value or rework the reference-cam geometry so that the marker is acquired reliably.
- Wrong REFP_SET_POS. MD 34100 REFP_SET_POS is the value the NC writes into the position display after the zero marker has been found. If the cam and marker geometry changed during the memory restore, MD 34100 must be re-measured with a dial indicator on the machine zero.
- Absolute encoder not re-synchronised. MD 34102 REFP_SYNC_ENCS = 1 must be set if the absolute value is to be re-derived from the reference run after a power-off.
7.1 Procedure to recover a stable cold-start zero
- Set MD 34102 REFP_SYNC_ENCS = 1 for the X axis (linear).
- With the axis clamped, power up the NC and run the standard reference routine for X.
- After the routine completes, set a dial indicator between the slide and the bed.
- Power down the NC, wait 30 s for the back-up capacitors to discharge.
- Power up again, re-reference X, and re-read the dial. The reading must be within ±0.01 mm of step 3.
- If the reading drifts, suspect either the encoder cable shielding or a faulty MD 34100 REFP_SET_POS.
7.2 Distinguishing backlash from cold-start drift
| Symptom | Likely cause | MD to check |
|---|---|---|
| Axis is consistently 0.1 mm offset after every power-off | Cold-start zero | MD 34060, MD 34100, MD 34102 |
| Axis loses position only when reversing direction | Mechanical backlash | MD 32450 |
| Axis loses position only under load | Servo lag / Kv too low | MD 32200, MD 36000 |
| Axis loses position only when warm | Thermal expansion | MD 32452 / temperature compensation |
| Axis reads half feed on display, real speed is half display | Wrong gear or pitch | MD 31030 / MD 31050 / MD 31060 / MD 31040 |
| Axis reads half feed on display, real speed equals display | Wrong display unit / wrong feed-source | MD 20150 GCODE_RESET_VALUES, G94/G95 modal state |
8. FM-NC vs SINUMERIK 840D Powerline: Configuration Differences
FM-NC is a compact variant of the 840D family. The HMI, NCK, PLC (S7-300) and the drive (here a stepper output stage) all live on a single S7-300 rail; the same MD families apply, but several defaults differ.
| Parameter | SINUMERIK 840D Powerline | SINUMERIK FM-NC (NCU 570.2) |
|---|---|---|
| Position controller cycle (MD 32060) | 2 ms typical | 2 ms typical, 4 ms available on light axes |
| Drive interface (MD 30130) | 0 = analog, 1 = digital PROFIBUS | 0 = analog, 1 = stepper output |
| Number of analog measuring circuits | Up to 6 (NCU 572/573) | 4 (NCU 570.2) |
| Operator panel | OP 010 / OP 010C / OP 012 | OP 020 / OP 020C / PCU 50 |
| PLC | S7-300 I/O on the NCU | S7-300 I/O on the NCU rail |
If the series-startup archive was created on a 6FC5357-0BH00-0XE1 and restored on a different variant (e.g. on a 6FC5357-0BH00-0XE0 or on a 840D Powerline NCU), the drive-side MDs (30130 CTRLOUT_TYPE, 30240 ENC_TYPE) may carry over values that are correct for one variant and wrong for the other. Verify the MLFB on the device label before loading the archive.
9. Verification Procedure and Field Acceptance Test
-
Position-loop test. Command a slow traverse over the full X range (
G94 F500with reduced rapid override). Confirm that the position display matches a hand-wheel on the lead screw within one encoder increment. -
Feed-rate test at three speeds. Repeat the test with
F100,F500andF2000mm/min. Each measured speed must be within ±2 % of commanded. - Direction-reversal test. From each direction, position to a target, then position back to the same target with reversed approach. Position display must match within the resolution of the dial indicator.
- Backlash test. Repeat the dial-indicator measurement of §6.1 with MD 32450 active. The mechanical play must vanish in the displayed position.
- Cold-start reproducibility test. Power down, power up, re-reference X, measure against the dial indicator. Repeat five times; the spread must be < 0.01 mm.
-
Stroke-rate test (gear slotting). Run a part program with
S 60strokes/min and a feed per stroke of 0.05 mm. Verify that the actual stroke rate measured by a tachometer on the ram equals the commanded rate.
10. Safety, Commissioning and Documentation
- Block the axis mechanically before any change to MD 31030 / MD 31050 / MD 31060. A wrong value can drive the slide into the end stop at rapid speed.
- Reduce the rapid override to 10 % for the first test motion after every MD change.
- Document every MD that is changed in the machine logbook. Include the date, the author, the old value, the new value and the rationale.
- Archive the updated NCK data via Series startup → Save after the verification has passed.
- Update the electrical documentation if any hardware has been replaced (encoder, stepper motor, drive stage).
- SINUMERIK 840D sl / FM-NC Parameter Manual (function-related)
- SINUMERIK 840D sl / FM-NC Parameter Manual (axis-specific)
- SINUMERIK 840D sl / FM-NC Commissioning Manual
- SINUMERIK 840D sl / FM-NC Alarms Manual
FAQ
What MD controls the X-axis feed rate on a SINUMERIK FM-NC (NCU 570.2)?
The feed ratio of the X axis is set by MD 31030 LEADSCREW_PITCH, MD 31040 ENC_IS_DIRECT, MD 31050 DRIVE_AX_RATIO_DENOM, MD 31060 DRIVE_AX_RATIO_NUMERA and, if the encoder side is geared, MD 31070 / MD 31080. The position-controller gain MD 32200 POSCTRL_GAIN affects following error but does not scale the feed itself.
Why does my X axis read exactly half the programmed feed after an NC memory restore?
A 1:2 mismatch typically points to a wrong load-side gear (MD 31050 / MD 31060), a wrong encoder-mounting flag (MD 31040 ENC_IS_DIRECT), or a wrong lead-screw pitch (MD 31030). Re-read the mechanical drawing, change one MD at a time, and verify with a hand-wheel on the lead screw before saving the boot project.
Which MD applies backlash compensation on SINUMERIK FM-NC?
MD 32450 BACKLASH takes the mechanical play of the drive train in mm and adds it to the command value on every direction reversal. The behaviour is qualified by MD 32454 BACKLASH_MODE (0 = every reversal, 1/2 = one direction only, 3 = always), MD 32452 BACKLASH_FACTOR, MD 32456 BACKLASH_ACK and MD 32460 BACKLASH_DYN.
How do I stop the X axis from losing 0.1 mm after every cold start?
Confirm that the reference routine actually finds the zero marker (MD 34060 REFP_MAX_MARKER_DIST large enough, MD 34102 REFP_SYNC_ENCS = 1) and that MD 34100 REFP_SET_POS is correct against the machine zero measured with a dial indicator. Backlash (MD 32450) does not recover a position lost across a power-off — it only compensates play on direction reversal.
Can I use a series-startup archive from a different SINUMERIK FM-NC variant?
Only after checking the MLFB of the target NCU. A 6FC5357-0BH00-0XE1 archive (NCU 570.2, 4 analog measuring circuits, stepper) loaded on a different variant will silently carry over drive-side MDs such as MD 30130 CTRLOUT_TYPE, MD 30240 ENC_TYPE and MD 32060 POS_X_SET_TIME that may be wrong for the new variant. Verify every drive-side MD after the restore.