Fixing SINUMERIK 840D Spindle Alarm 700114 After a Single-Speed Gearbox Conversion
Alarm 700114 "Spindle - Motor/Spindle is different" on a SINUMERIK 840D / 840D sl control almost always points at a mismatch between the two speed/position channels available on a spindle with a motor encoder (encoder 0) and a spindle-mounted encoder (encoder 1). After a mechanical conversion — for example, swapping a two-stage gearbox for a single-stage unit — the alarm frequently appears within the first second of any M3/M4 command. This article walks through the root cause, the exact machine data (MD) blocks that must be re-parameterised, and a commissioning procedure that restores stable spindle operation without losing the position-monitoring safety net.
1. Problem Summary
A spindle originally equipped with a two-step gearbox (load ratios 14.901 and 3.031) is mechanically converted to a single-step gearbox with a load ratio of 7.79. Both encoders remain fitted:
- Encoder 0 (motor encoder) on the motor shaft
- Encoder 1 (direct measuring system) on the spindle side of the gearbox
The operator updates the load-gear ratio machine data and disables the gearbox-change logic so the spindle always operates in gear stage 1. Positioning moves (SPOS) appear healthy: both encoders count up consistently and the spindle reaches the commanded angular position. The fault appears the instant an open-loop speed command (M3 / M4) is issued:
- Spindle accelerates normally
- After ~1 second, user alarm
700114 Spindle - Motor/Spindle is differentis raised - The alarm clears only with reset/clear-channel
- Subsequent analysis shows the alarm correlates 1:1 with a following error > 1 degree between the motor encoder and the spindle encoder
The PLC program that generates alarm 700114 is locked (know-how-protected), so the engineer cannot read the comparison logic directly. This is a typical situation on machine tools sold with protected PLC logic.
2. Alarm 700114 — Definition and Trigger Conditions
The 700000 alarm range is reserved for user / OEM-defined alarms programmed in the PLC. Alarm number 700114 is not a Siemens default alarm; it is generated by a user FB/FC that compares the motor-encoder position (encoder 0) with the spindle-encoder position (encoder 1) and raises the alarm when the deviation exceeds a threshold. From the field evidence:
- The threshold in the protected PLC is 1 degree of mechanical spindle angle.
- The check is active only in spindle (speed) mode, not in SPOS positioning mode.
- The check becomes active roughly 1 s after M3/M4 — the same delay used by the OEM to mask the ramp-up phase.
This means the alarm is the visible symptom; the real fault is whatever produces a sustained >1° difference between the two encoders when the spindle is rotating.
3. Spindle Encoder Architecture in 840D
A spindle on the 840D with two encoders always uses:
- Encoder 0 (motor measuring system) — typically a high-resolution sin/cos or EnDat encoder on the motor, used for current/speed/position control inside the drive.
- Encoder 1 (direct measuring system) — typically a coarser encoder mounted on the spindle proper, used for thread cutting, SPOS positioning, and feed-per-revolution synchronization.
Both encoders are scaled into the same load-side coordinate system by a pair of machine data. When the physical gearbox changes, those scaling factors must be re-entered — otherwise the NCK will interpret one of the encoders as if the mechanical ratio were unchanged and the position cross-check inside the OEM PLC will diverge.
4. Spindle Gear Stage Machine Data
For a multi-stage gearbox the relevant blocks are:
| Machine Data | Symbolic name | Meaning | Effect of gearbox swap |
|---|---|---|---|
| MD35090 | $MA_NUM_GEAR_STEPS | Number of configured gear stages | Change 2 → 1; verify MD35092 is consistent |
| MD35092 | $MA_NUM_GEAR_STEPS2 | Second parameter set for stage count (driven tools, etc.) | Match MD35090 if not used for a second spindle |
| MD35110[0..n] | $MA_GEAR_STEP_MAX_VELO | Upper switching speed per stage | Only one stage required; set to max spindle RPM |
| MD35120[0..n] | $MA_GEAR_STEP_MIN_VELO | Lower switching speed per stage | Single stage: 0 → max |
| MD35200[0..n] | $MA_GEAR_STEP_SPEEDCTRL_ACCEL | Acceleration in speed mode per stage | Tune for the new inertia ratio |
| MD35210[0..n] | $MA_GEAR_STEP_POSCTRL_ACCEL | Acceleration in position mode per stage | Tune for SPOS / axis-mode entry |
The gearbox-change enable itself is switched off by setting:
-
MD35010 $MA_GEAR_STEP_CHANGE_ENABLE = 0— disables automatic stage change
With MD35010 = 0, the spindle stays permanently in the gear stage defined by the active stage bit (gear stage 1 by default), which matches the new mechanical reality.
5. Load Gear Ratio — MD31050 / MD31060
The two machine data that physically scale the encoder counts into spindle revolutions are:
| MD | Function | Original (2-stage) | New (1-stage) |
|---|---|---|---|
| MD31050 | Numerator of the load-gear ratio (motor side / encoder-0 side) | 1000 | 100 |
| MD31060 | Denominator of the load-gear ratio (spindle side / encoder-1 side) | 14901 (stage 1) / 30310 (stage 2) | 779 |
The resulting mechanical ratio is:
- Stage 1 (original): 14901 / 1000 = 14.901 ✓
- Stage 2 (original): 30310 / 1000 = 30.31 (verify against nameplate — possible second-stage ratio of 3.031 if the OEM used a different scaling convention)
- New single stage: 779 / 100 = 7.79 ✓
6. Root Cause of Alarm 700114
After the gearbox swap and the ratio change, three independent mismatches are possible:
- Encoder-0 / encoder-1 ratio incorrect — if 31050 / 31060 is left at the old 2-stage values, the NCK continues to expect 14.901 (or 3.031) but the mechanics deliver 7.79. The two position channels will diverge steadily and the OEM monitor fires 700114.
- Gear-stage switching still active — the OEM FB may re-evaluate the gear stage on every M3/M4. If 35010 is still 1 and the stage bits are wrong, the controller expects a ratio from stage 2 even though the gearbox only has one stage. The protected PLC re-checks the encoder deviation immediately and the alarm fires.
- Spindle encoder direction inverted — physically mounting the new gearbox can invert encoder 1's count direction. The discrepancy is symmetrical around the commanded velocity and the monitor reacts to the steady-state following error.
Updating 31050 and 31060 alone is not sufficient; the engineer must also confirm that:
- The gearbox change has been disabled (MD35010 = 0) or stage bit is forced to stage 1
- Encoder 1's direction bit (MD32110 $MA_ENC_FEEDBACK_POL = 1 if needed) is correct
- Both encoders reference the same machine zero with MD34090 $MA_REFP_MOVE_DIST_CORR or equivalent
7. Standstill Velocity Tolerance — MD36060
Once the ratio and stage logic are corrected, a second issue commonly surfaces:
The spindle actual value does not start to count before the speed exceeds the value in MD36060 STANDSTILL_VELO_TOL (default 10). The program halts even though the operator can still raise the speed above 10 RPM and the actual value begins to track.
MD36060 is the threshold below which the NCK treats the spindle as mechanically stopped. Below this velocity:
- Position monitoring is suppressed
- Encoder 0 and encoder 1 are not actively compared for "running" deviation
- Many OEM PLCs gate the actual-value update on a
spindle_runningflag derived from MD36060
After the gearbox change, the higher inertia or the lower minimum speed of the new gearing can keep the spindle hovering below 10 RPM during the programmed ramp. The OEM PLC therefore never sees a "running" spindle, the actual-value cross-check never starts, and the part program halts.
8. Tuning the Standstill Window
Two coordinated changes are typically required:
- Reduce MD36060 to a value just above the lowest controllable spindle speed (for example 1.0 to 2.0 RPM for a modern 12 000 RPM spindle).
- Reduce MD36030 $MA_STANDSTILL_POS_TOL in proportion so that the standstill check still rejects an actual drift above the angular noise floor.
Aggressive lowering of MD36060 below ~0.5 RPM is not recommended on drives with measurable torque ripple — the controller will flag false-positive "spindle running" events during a real stop.
9. The OEM User-Data Flag — MD14510 $MN_USER_DATA_INT[20]
The user in the field case found that the protected OEM PLC exposes a single enable bit in machine data:
MD14510 $MN_USER_DATA_INT[20] = 0 — disables the encoder-deviation monitor (alarm 700114)
This is a known OEM pattern: a private integer in the global user-data array is used as a feature-disable flag so that the alarm logic can be switched off without touching the protected FB. Setting $MN_USER_DATA_INT[20] = 1 re-enables the comparison.
10. Step-by-Step Resolution Procedure
- Back up the current NCK: HMI → Start-up → Archive → NCK / Drive / PLC. Store the archive offline.
- Confirm the new mechanical ratio from the gearbox nameplate. For a 7.79 ratio, use 31050 = 100 / 31060 = 779 (or the inverted convention on your SW release).
- Write the new load-gear ratio in Start-up → Machine Data. Do not use the dialog's "calculate from ratio" wizard if the OEM has customised the field — enter the integer numerator and denominator directly.
- Disable gear-stage switching by setting MD35010 $MA_GEAR_STEP_CHANGE_ENABLE = 0, or by forcing the stage bits to stage 1 if the application uses an external stage selector.
- Verify encoder direction. With the spindle in axis mode, jog a small angle in JOG+ and confirm both encoder 0 (display in MD31070 $MA_DRIVE_AX_RATIO_DENOMINA / SERVO trace) and encoder 1 (display in MD31110 $MA_ENC_2_SCALE) count the same sign.
- Reduce MD36060 STANDSTILL_VELO_TOL to ~1.0 RPM and MD36030 STANDSTILL_POS_TOL to ~0.5° for the commissioning pass.
- NCK reset and re-reference all axes including the spindle.
-
Test open-loop speed with M3 S100, M3 S500, M3 S1500, M3 S3000. Watch SERVO trace
actSpeed1andactSpeed2; the deviation must stay below 0.5° equivalent at constant speed. - Test SPOS positioning with SPOS=0, SPOS=90, SPOS=180, SPOS=270 to confirm the angular cross-check holds in positioning mode.
-
Re-enable the OEM monitor: set
MD14510 $MN_USER_DATA_INT[20] = 1and re-run the same M3 profile. If 700114 still fires, repeat the ratio / direction check. If it is clean, archive and close out.
11. Verification Checklist
| Check | Method | Pass criteria |
|---|---|---|
| Mechanical ratio in NCK | SERVO trace nactd vs actSpeed2 at constant S-value |
Identical RPM within 0.5 % |
| Direction match | SPOS 0° → 90° with motor uncoupled | Both encoders advance 90° |
| Standstill window | M3 S5 (below 10 RPM threshold) then M3 S500 | Actual value updates as soon as S > MD36060 |
| Following error in speed mode | SERVO trace followErr in axis mode and actSpeed2 - setSpeed in spindle mode |
< 1° equivalent at all programmed RPM |
| OEM monitor re-enabled | MD14510[20] = 1, full M3/M4/M5 cycle | No 700114 alarm |
| Thread / G95 sanity | G33 with feed/rev at S100 | No 700114, no 31100/31101 axis alarms |
12. Related Machine Data to Audit After Any Gearbox Conversion
| MD | Symbolic name | Why it matters after the swap |
|---|---|---|
| MD31044 | $MA_ENC_2_IS_DIRECT | Confirms encoder 1 is the load-side (spindle) encoder |
| MD31064 | $MA_DRIVE_2_AX_RATIO_NUMERA | Numerator of the second encoder's load ratio (some SW versions) |
| MD31066 | $MA_DRIVE_2_AX_RATIO_DENOMINA | Denominator of the second encoder's load ratio |
| MD31070 | $MA_DRIVE_ENC_RATIO_NUMERA / DENOMINA | Encoder-to-motor coupling ratio (typically 1:1 but verify after motor swap) |
| MD32110 | $MA_ENC_FEEDBACK_POL | Direction inversion for encoder 0 |
| MD32120 | $MA_ENC_2_FEEDBACK_POL | Direction inversion for encoder 1 |
| MD32200 | $MA_POSCTRL_GAIN (Kv) | Position-loop gain must be retuned for the new inertia |
| MD36000 | $MA_STOP_LIMIT_COARSE | Standstill coarse threshold (analog to 36030 but coarser) |
| MD36010 | $MA_STOP_LIMIT_FINE | Standstill fine threshold |
| MD36012 | $MA_STOP_LIMIT_DELAY | Standstill dwell time |
| MD36020 | $MA_POSITIONING_TIME | Time window for SPOS detection |
| MD36030 | $MA_STANDSTILL_POS_TOL | Standstill position tolerance |
| MD36040 | $MA_STANDSTILL_DELAY_TIME | Standstill monitor delay |
| MD36050 | $MA_STOP_ON_PATH_DWELL | Dwell time for path-stop check |
| MD36060 | $MA_STANDSTILL_VELO_TOL | Spindle-speed threshold above which "running" is signalled |
| MD36400 | $MA_CONTOUR_TOL | Contour monitoring tolerance — adjust for the new Kv |
13. Diagnostic Trace Setup
To make the 1-degree threshold visible, configure a SERVO trace on the spindle drive:
Trace channel set 1 (8 kHz, 4 s):
-
nactd— actual speed from encoder 0 (motor) -
actSpeed2— actual speed from encoder 1 (spindle) -
setSpeed— speed setpoint -
followErr— position following error in spindle degrees
Trigger on followErr > 0.5°. A healthy system shows the following error saturating below 0.3° within the first 200 ms; if it climbs past 0.8° and is clipped by the OEM monitor at 1.0°, the ratio or direction in MD31050 / MD31060 (or MD32110 / MD32120) is wrong.
14. Common Pitfalls After a Gearbox Swap
- Leaving MD35010 = 1: the OEM stage-change logic still tries to switch and the alarm fires on the first M3.
- Forgetting the second encoder: only updating 31050 / 31060 leaves encoder 1 unscaled. Always confirm MD31064 / MD31066 if your SW release uses them.
- Inverting the ratio: 7.79 entered as 100/779 instead of 779/100 produces a position command of 7.79× the actual rotation. The cross-check trips immediately.
- Over-tight standstill window: MD36060 = 0.1 RPM on a real drive produces continuous false "running" events and noisy behaviour.
-
Permanently disabling the OEM monitor: setting
MD14510[20] = 0makes the symptom disappear but removes a real safety cross-check. The right fix is to tune the ratio and the standstill window, not the alarm.
15. Why Position Mode Worked but Speed Mode Failed
This is a useful diagnostic signature. In SPOS / axis mode:
- The position controller drives the spindle to a target angle
- The closed loop nulls out any constant position error
- Encoder 0 and encoder 1 agree at the end-position by construction
In M3 / M4 speed mode:
- No angular target exists
- Encoder 0 and encoder 1 are compared during rotation
- Any steady-state scale error (e.g. 7.79 reported as 14.901) shows up as a continuous 0.5–1° drift per revolution
- The OEM monitor sees the drift accumulate and fires 700114
This pattern — "SPOS works, M3/M4 alarms" — is therefore a near-certain indicator of a load-gear ratio or encoder-direction error rather than a drive or motor fault.
16. Long-Term Recommendation
Once the alarm is eliminated, perform a documented MD review:
- Print or export all spindle machine data (35000…35230, 31040…31080, 36000…36060).
- Stamp the printout with the gearbox part number and the date of the conversion.
- Add a comment line in the archive comment field (MD11220 $MN_MD_FILE_MEM[0]) describing the conversion.
- Schedule a 6-month SERVO-trace review to confirm the following error remains inside the tuned envelope as the gearbox wears.
The combination of correctly scaled load-gear machine data, a properly disabled or re-enabled gear-stage switch, and a standstill window tuned to the new mechanics turns alarm 700114 from a recurring nuisance into a one-time commissioning event.
What does SINUMERIK alarm 700114 "Spindle - Motor/Spindle is different" mean?
700114 is an OEM/user alarm, not a Siemens default. The machine builder's protected PLC compares the motor encoder (encoder 0) with the spindle-mounted encoder (encoder 1) and raises 700114 when their deviation exceeds a threshold — typically 1° on legacy machine tools.
Which machine data define the load-gear ratio on a 840D spindle?
The load-gear ratio is set in MD31050 (numerator) and MD31060 (denominator). For a 7.79 mechanical ratio, set 31050 = 100 and 31060 = 779, or the inverse convention on your SW release, so that 31060 / 31050 = 7.79.
Why does positioning work but M3/M4 raises 700114?
SPOS drives the spindle to a target angle and nulls the cross-check by construction. M3/M4 runs an open-loop speed with no angular target, so a steady-state scale or direction error between the two encoders produces a continuous drift that the OEM monitor detects and flags.
How do I silence alarm 700114 without modifying the protected PLC?
Set MD14510 $MN_USER_DATA_INT[20] = 0 to disable the OEM comparison. Treat this as a temporary diagnostic step only — it removes a real safety cross-check and should be re-enabled (MD14510 $MN_USER_DATA_INT[20] = 1) once the underlying ratio and standstill tuning is correct.
What value of MD36060 STANDSTILL_VELO_TOL should I use after the gearbox swap?
Lower it to 1.0–2.0 RPM for a typical 12 000 RPM spindle and re-tune MD36030 STANDSTILL_POS_TOL in proportion. Avoid going below ~0.5 RPM, otherwise drive torque ripple triggers false "spindle running" events during a real mechanical stop.