Troubleshooting Siemens 840D Alarm 25050 Contour Monitoring Fault

David Krause16 min read
Motion ControlSiemensTroubleshooting
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

1. Problem Definition: Recurring Alarm 25050 on a Gantry Load/Unload Axis

The machine under investigation uses a SINUMERIK 840D controller driving a gantry-style load/unload station. The gantry is built from two coupled axes that must move in synchronism. After approximately four to five months of continuous operation, one of the gantry axes trips Siemens 840D alarm 25050 "Contour monitoring" and is brought to a stop. A power-down/power-up cycle (NCK reset) clears the alarm and motion is restored. The fault reappears after several months of operation, which is the characteristic signature of a slowly drifting mechanical or signal-integrity issue rather than a one-shot wiring error.

This fault is not destructive in the electrical sense, but it is destructive to production: the cycle stops, the operator must reset, and there is a real risk of scrap on the part currently being loaded or unloaded. The repeating monthly pattern strongly suggests progressive mechanical wear (backlash, guide friction, or coupling slip) on the affected axis, with secondary contributions from the position loop tuning, encoder integrity, and current/speed limits.

Engineering rule of thumb: If a SINUMERIK contour-monitoring alarm clears on NCK reset and reappears on a multi-month cadence, investigate mechanical wear and lubrication on the affected axis first, then encoder/feedback integrity, and only then controller tuning. The original report already established that swapping the controller card did not resolve the issue, which is consistent with a mechanical or process-side root cause rather than an electronics failure.

2. Siemens 840D Alarm 25050 — Definition and Functional Scope

Alarm 25050 belongs to the axis monitoring alarm class and is raised by the contour monitor, which is implemented inside the position controller of the SINUMERIK 840D. The contour monitor is not a single threshold check; it is a coupled, multi-axis observer that compares the setpoint contour (what the interpolator commanded) against the actual contour (what the position controllers achieved), and trips when the deviation between them exceeds a tolerance envelope for a defined time window. The official definition and the full set of contour-monitor machine data are documented in the SINUMERIK 840D sl Diagnostics Manual.

The alarm text variants seen in the field are typically:

  • 25050 Axis %1 Contour monitoring
  • 25050 Axis %1 Contour monitoring, %2

where %1 is the affected axis name and %2 is the diagnostic word (e.g., "Tolerance exceeded" or a code identifying which sub-monitor tripped). Clearing the alarm requires an NCK reset or, in older SW versions, a part-program-mediated RESET.

Two underlying conditions commonly trigger 25050:

  1. Linear path error: a constant or near-constant offset between the set and actual contour, frequently caused by different Kv factors between the two interpolated axes, backlash outside the position control loop, or a tilting/misaligned spindle on a milling head. The shallower the gradient of a straight line, the larger the visible offset.
  2. Non-linear path error: a path-dependent error that becomes visible on direction reversals, circular contours, or specific speed ranges. Typical causes are friction non-linearities (stick-slip), reversal spikes, current/speed limiting inside the working zone, and unequal drive dynamics between the two interpolated axes. Circles are distorted into ellipses by unequal dynamic response.

3. Contour Monitoring Architecture in SINUMERIK 840D

The contour monitor sits on the output of the position controller. For every IPO cycle, the NCK computes the actual contour deviation between the two gantry axes as:

e_contour(k) = sqrt( (Δx_actual − Δx_setpoint)^2 + (Δy_actual − Δy_setpoint)^2 )

If e_contour(k) exceeds the configured tolerance MD 36050 ($MA_CONTOUR_TOL) for longer than the configured monitoring time MD 36020 ($MA_POSCTRL_TIME), the monitor raises alarm 25050 and the axis is decelerated to a stop. The schematic flow is shown below.

Interpolator (IPO) Position Controller Speed Controller Current / Drive Contour Monitor (e_contour vs MD 36050) 25050 → NC-STOP

The two gantry axes share a single contour monitor instance, which means that a fault in one axis (e.g., backlash, encoder loss, current clipping) shows up as 25050 on that axis but propagates the deviation into the gantry's geometric path. This is why the alarm can look "electrical" (encoder) but is in fact a downstream consequence of mechanical degradation or a tuning mismatch.

4. Key Machine Data for Alarm 25050 Diagnostics

The contour monitor is configured by a small, well-defined set of machine data. The full cross-reference is published in the SINUMERIK 840D sl List Manual. The MDs most relevant to a recurring 25050 on SW 4.x and SW 5.x are:

MD Name Typical value (gantry) Effect on 25050
MD 36020 $MA_POSCTRL_TIME Position controller monitoring time IPO cycle (e.g., 4 ms) Defines the time window the deviation must persist
MD 36050 $MA_CONTOUR_TOL Contour monitoring tolerance (mm) 0.5 – 1.0 mm Hard limit; small values cause nuisance trips on worn machines
MD 32200 $MA_POSCTRL_GAIN (Kv) Servo gain factor 1.0 – 3.0 (1/s) Identical Kv on both gantry axes is mandatory
MD 36400 $MA_CONTOUR_TOL_2 Optional 2nd tolerance band 0.2 – 0.5 mm Use for fine tuning in high-speed segments
MD 36300 $MA_ENC_FREQ_LIMIT Encoder limit frequency per encoder datasheet Exceeding this trips an encoder-related monitoring
MD 36310 $MA_ENC_ZERO_MONITORING Encoder zero-mark monitoring 0 / 1 Disables only if hardware cannot support
MD 32620 $MA_FRICTION_COMP_ENABLE Friction compensation enable 0 / 1 / 2 / 3 Compensates non-linear friction that mimics contour error
MD 32610 $MA_FFW_MODE Feedforward mode 0 / 1 / 3 Reduces following error during accel/decel
Do not raise MD 36050 to silence the alarm. The contour tolerance is a safety limit protecting the gantry from collision with itself and the machine structure. Increasing it past the value justified by the mechanical repeatability of the gantry exposes the gantry to collision and is a safety issue, not a tuning issue.

Read the live values from the SINUMERIK HMI via Commissioning → Machine Data or by direct read in the part program with:

R100 = $MA_CONTOUR_TOL[AX1] ; R101 = $MA_POSCTRL_GAIN[AX1]

5. Root Cause Matrix

For the specific symptom pattern (one of two gantry axes, ~4–5 month recurrence, NCK-reset clears) the probability matrix is:

# Root cause class Likelihood Diagnostic signal Key MD / signal
1 Mechanical wear (backlash, guide wear, coupling) High Contour error grows over weeks/months; errors at reversal Dial indicator backlash gauge, ISO 230-2 test
2 Non-linear friction (stick-slip, guide lubrication) High Errors at low velocity and on reversals Trace at low speed, MD 32620 friction comp
3 Encoder cable / signal integrity Medium Errors correlated with cable flex, ambient temperature MD 36300, scope on encoder signals
4 Position loop tuning (Kv mismatch) Medium Steady offset between set and actual on a straight line MD 32200 on both axes
5 Drive dynamics mismatch (two drives unequal) Medium Circle test produces an ellipse Kv + current loop bandwidth equalisation
6 Current / speed limit clipping Low Errors in the high-load machining region MD 32250 / drive current trace
7 Controller / NC card defect Very low (already swapped) Errors appear on axis swap, random pattern Cross-test with sister axis card

Mechanically, the most common driver of a multi-month, single-axis 25050 on a gantry is progressive reversal error at the guide surface, which is amplified by the contour monitor because it occurs on every reversal of the interpolated path. A reversal error of 0.05 mm in steady state is invisible; a reversal error of 0.4 mm caused by worn linear guides is enough to trip a 0.5 mm contour tolerance.

6. Mechanical Inspection Procedure

Mechanical inspection must be performed on the affected gantry axis only, in a defined sequence, with the machine in a safe state (servo enable removed, drive released, safety lock-out applied).

  1. Reference run: re-reference both gantry axes to verify the encoder zero mark. A drifting reference on one axis is a strong tell of a worn zero-mark hardware or a stretched mechanical coupling.
  2. Backlash measurement: attach a dial indicator on the stationary side of the affected axis, command incremental moves of +0.5 mm, −0.5 mm, and record the dead-band. SINUMERIK stores the measured backlash in Commissioning → Friction & Backlash; compare to the value of the sister axis.
  3. Guide inspection: run the axis by hand (with drive released) over the full travel. A high or variable breakaway torque or a non-uniform resistance over the travel indicates a worn or starved guide. A single bad spot on the guide is enough to drive a periodic 25050 — explain the 4–5 month recurrence as the wear rate of the guide surface reaching the trip threshold.
  4. Coupling check: inspect the motor-to-ball-screw coupling (or the rack-and-pinion coupling on a gantry) for radial play and torque slip. A worn coupling shows up as a fluctuating following error at the contour monitor.
  5. Ball-screw preload: if the gantry uses a ball-screw, check axial play and preload. A preload loss directly increases the reversal error seen at the contour monitor.
  6. Lubrication cycle: compare the lubrication cycle of the affected axis to the sister axis. A starved guide produces a non-linear friction signature that the contour monitor interprets as a path error.
ISO 230-2 verification: After mechanical restoration, verify the axis bi-directional positioning accuracy per ISO 230-2. A gantry should be able to demonstrate < 1/3 of MD 36050 bi-directional repeatability, with the unidirectional and bidirectional values within the manufacturer's specification.

7. Electrical and Encoder Diagnostics

Field reports often raise the encoder and control card as possible causes. If a card swap has been performed and the issue persists, the cause is not the NC card, but the encoder cable, the encoder head, the drive, and the analog signal chain remain in play.

  1. Encoder cable visual inspection: check for chafing along the cable carrier, kinks, and connector pin retraction. Heidenhain and Siemens encoder cables for 840D (e.g., 6FX8002-2CA31-… series) are rated for millions of flex cycles; once the cable starts to fail, the resulting position jumps are detected by the contour monitor and reported as 25050.
  2. Encoder head health: read out MD 36300 ($MA_ENC_FREQ_LIMIT) and compare to the actual velocity × line count. If the axis approaches the encoder limit frequency, the drive interpolates position and the contour monitor sees a step that looks like a path error.
  3. Shielding and ground reference: an encoder cable shield that has lost contact at the drive end or motor end injects HF noise onto the analog signal lines. A common result is a stable error in a single direction at a particular speed, which is exactly the profile the contour monitor catches.
  4. Drive health: check the drive's internal temperature, the DC-bus ripple, and the current-loop bandwidth. A failing IGBT or a degrading DC-bus capacitor causes a current limit event that the contour monitor reads as a path deviation.
  5. Motor isolated test: decouple the motor from the mechanics and command JOG forward and reverse. If 25050 still appears with the mechanics removed, the fault is electrical; if it disappears, the fault is mechanical. This is the single most valuable diagnostic in the entire procedure.
Symptom pattern Most likely source Confirm by
Error only during motion, direction-dependent Encoder cable or shield Scope encoder signals, replace cable
Error at high velocity only Encoder frequency limit / cable attenuation Compare actual velocity to MD 36300
Error at reversal points Mechanical backlash / guide wear Dial indicator, ISO 230-2 test
Error on circles only Drive dynamics mismatch Kv equalisation, current loop autotune
Error in high-load region Current / speed clipping Trace current setpoint vs actual

8. Position Loop Tuning to Suppress the Fault

After the mechanical and electrical causes are ruled out, the remaining candidates are tuning artifacts. The contour monitor amplifies any mismatch between the two gantry axes because the monitor reads the combined deviation of the path, not the per-axis following error.

8.1 Kv equalisation

The two gantry axes must have identical Kv (MD 32200 $MA_POSCTRL_GAIN). A 10% Kv mismatch on a path of 100 mm/s produces a steady-state offset of 0.5 mm at the contour monitor — enough to trip a 0.5 mm tolerance. Procedure:

  1. Read MD 32200 on both axes and confirm equality.
  2. Run a JOG move of 100 mm on each axis independently, record the following error with the SINUMERIK trace.
  3. Adjust Kv on the axis with the higher following error to bring the per-axis following errors to within 5%.

8.2 Friction compensation

Activate MD 32620 ($MA_FRICTION_COMP_ENABLE) with value 1 (coulomb friction only) or 3 (coulomb + viscous). The compensation reduces the non-linear error at reversal, which is the dominant contributor to a slowly-recurring 25050.

8.3 Dynamic response equalisation

For circles, the contour monitor measures an elliptical distortion when the current-loop bandwidths of the two drives differ. Run the drive autotune procedure on both drives. For Siemens SIMODRIVE 611 and SINAMICS S120, use the on-board autotune (P235) and verify that the resulting torque time constant is equal on both axes.

8.4 Acceleration feedforward

Activate MD 32610 ($MA_FFW_MODE) = 1 (velocity feedforward) or 3 (acceleration feedforward). Acceleration feedforward reduces the following error during acceleration and deceleration, which is precisely the regime in which a worn gantry produces the largest contour error.

9. Advanced Diagnostics: Trace and Service Screens

The SINUMERIK 840D HMI provides several screens that pinpoint the source of 25050 without disassembly:

  • Diagnostics → Axis/Spindle: read out the active following error, the active Kv, the friction compensation value, and the active monitoring limits. The following error in the seconds before the alarm is the single most useful signal.
  • Diagnostics → Trace: record the setpoint and actual position of both gantry axes at 2 kHz, 1 s before and 1 s after the alarm. Look for direction reversals, large following errors, and current clipping.
  • Diagnostics → Service Display → Drive: read out the torque setpoint vs torque actual, the DC-bus voltage, the motor temperature, and the encoder signal quality. A torque saturation that coincides with the contour error confirms a current-limit cause.
  • Alarms → Alarm Log: the alarm 25050 entry stores the affected axis, the contour error value, the time stamp, and the MD 36050 tolerance. A growing error over weeks is a near-certain mechanical cause.

A minimal but effective trace setup for a gantry contour fault is:

; Trace configuration via commissioning
$AC_TRACE[1] = "AX1:actPos" "AX2:actPos" "AX1:setPos" "AX2:setPos"
$AC_TRACE[2] = "AX1:followErr" "AX2:followErr" "drive1:torqAct" "drive2:torqAct"
TRC_TIME = 1.0 ; TRC_SAMPLE = 0.5 ; TRC_TRIGGER = "ALARM 25050"

10. Step-by-Step Recovery Procedure

Field-proven order of operations for a recurring 25050 on a gantry load/unload axis. The order is not arbitrary: each step rules out a class of cause with a clear pass/fail signal.

  1. Capture the alarm log. Note the exact 25050 text, the affected axis, the time of day, the part program, and any concurrent alarms (e.g., 25040 axis monitoring, 25080 position monitoring).
  2. Read MD 36050, MD 32200, MD 32620 on both gantry axes and write them down. Confirm the tolerances are realistic for the mechanical state of the machine.
  3. Mechanical inspection of the affected axis only (backlash, guide, coupling, ball-screw). If mechanical wear is found, repair before continuing.
  4. Encoder cable and head inspection on the affected axis. Replace the encoder cable if it has accumulated the rated flex-cycle count.
  5. Drive health check on the drive of the affected axis: temperature, DC-bus, current-loop response, autotune the drive.
  6. Mechanical re-verification per ISO 230-2 on the affected axis. The bi-directional repeatability must be < 1/3 of MD 36050.
  7. Position loop tuning: Kv equalisation, friction compensation, feedforward activation.
  8. Trace the gantry at 2 kHz during a representative load/unload cycle, verify e_contour stays below 50% of MD 36050 throughout.
  9. Run a circle test at three radii (10 mm, 50 mm, full gantry length) and at two speeds (0.1 m/s, full rapid). The actual circle must overlay the set circle with a circularity error < MD 36050.
  10. Production acceptance: run 50 load/unload cycles, verify no 25050.
  11. Document: record the root cause, the repair, the verification results, and the date in the maintenance log.

11. Verification and Commissioning Checklist

# Check Pass criterion
1 Both gantry axes reference cleanly No 25050 during reference
2 MD 36050, MD 32200, MD 32620 on both axes Documented, consistent with mechanical state
3 Bi-directional positioning accuracy per ISO 230-2 < 1/3 × MD 36050
4 Circle test, 3 radii × 2 speeds Circularity < MD 36050
5 Trace: contour error < 50% of MD 36050 throughout the cycle No peaks, no drift
6 50 production cycles No 25050
7 Lubrication cycle logged and scheduled Equal to sister axis

12. Related SINUMERIK Monitoring Alarms

Alarm 25050 is part of a family of monitoring alarms. Diagnostically adjacent alarms that frequently co-occur or are confused with 25050 are documented in the SINUMERIK 840D sl Diagnostics Manual:

Alarm Meaning Distinguishing feature
25020 Position monitoring (setpoint limit) Following error on a single axis, not a path error
25030 Position monitoring (actual value limit) Actual position has overshot the limit window
25040 Standstill monitoring Triggered when the axis is supposed to be at rest, not during motion
25050 Contour monitoring Path error between two coupled axes
25060 Speed setpoint limitation Setpoint has been clipped, not a path error
25080 Positioning monitoring Axis failed to reach the programmed position

For 840D sl SW 5.x and later, the alarm 25050 line entry in the alarm log contains a diagnostic word that points to the sub-monitor that tripped. Decoding the diagnostic word against the SINUMERIK 840D sl Diagnostics Manual is the fastest path to a specific cause.

13. FAQ

What does Siemens 840D alarm 25050 mean on a gantry axis?

Alarm 25050 "Contour monitoring" is raised when the difference between the setpoint contour and the actual contour of the two gantry axes exceeds MD 36050 ($MA_CONTOUR_TOL) for longer than MD 36020 ($MA_POSCTRL_TIME). It indicates a path error between two coupled axes, not a single-axis following error.

Why does the alarm clear on a power cycle but return after 4–5 months?

The alarm is latched in the NCK, so an NCK reset (power cycle) clears it. A multi-month recurrence points to a slowly drifting root cause, most commonly progressive mechanical wear on the affected gantry axis (reversal error, guide wear, coupling slip, ball-screw preload loss) or a slowly failing encoder cable that has accumulated its rated flex cycles.

Can I silence the alarm by increasing MD 36050?

It is possible but strongly discouraged. MD 36050 is a safety limit that protects the gantry from self-collision and protects the part. Increase it only after the mechanical cause is documented and accepted, and only by the smallest amount justified by ISO 230-2 measurements of the repaired axis.

How do I confirm a mechanical cause before disassembly?

Decouple the motor from the mechanics (keep the encoder connected) and command JOG forward and reverse in both directions. If 25050 disappears with the mechanics removed, the cause is mechanical on the affected axis. If it persists, the cause is electrical (encoder, drive, controller). This is the single highest-value diagnostic in the entire procedure.

Should I suspect the controller card, since the operator already swapped it?

If the NC card was swapped and the fault persisted, a defective NC card is a low-likelihood cause. However, the encoder cable, encoder head, drive, and current loop are still candidates; a failed encoder cable produces a 25050 that is indistinguishable from a mechanical one. Replace the encoder cable as a high-value, low-cost test before any further disassembly.

What is the correct ISO 230-2 pass criterion for a gantry axis?

For a gantry under normal production load, the bi-directional positioning accuracy (Bp) and the bi-directional repeatability must both be less than one third of MD 36050 ($MA_CONTOUR_TOL). A gantry with a 0.5 mm contour tolerance must therefore demonstrate a bi-directional positioning accuracy better than 0.17 mm, and ideally better than 0.1 mm, to be safe against nuisance 25050 events.

Which friction compensation MD should I activate to reduce 25050?

Activate MD 32620 $MA_FRICTION_COMP_ENABLE = 1 (coulomb friction only) for the first pass; if reversal errors persist, change to 3 (coulomb + viscous). Always back up the original MD value before changing it, and re-verify the trace after the change to confirm the contour error has been reduced and not amplified by a mis-tuned compensation.

Back to blog