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.
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:
- 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.
- 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.
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 |
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).
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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.
- 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.
- 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.
- 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.
- 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.
- 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:
- Read MD 32200 on both axes and confirm equality.
- Run a JOG move of 100 mm on each axis independently, record the following error with the SINUMERIK trace.
- 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.
- 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).
- 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.
- Mechanical inspection of the affected axis only (backlash, guide, coupling, ball-screw). If mechanical wear is found, repair before continuing.
- Encoder cable and head inspection on the affected axis. Replace the encoder cable if it has accumulated the rated flex-cycle count.
- Drive health check on the drive of the affected axis: temperature, DC-bus, current-loop response, autotune the drive.
- Mechanical re-verification per ISO 230-2 on the affected axis. The bi-directional repeatability must be < 1/3 of MD 36050.
- Position loop tuning: Kv equalisation, friction compensation, feedforward activation.
- Trace the gantry at 2 kHz during a representative load/unload cycle, verify e_contour stays below 50% of MD 36050 throughout.
- 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.
- Production acceptance: run 50 load/unload cycles, verify no 25050.
- 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.