Siemens SINUMERIK Friction Compensation and Quadrant Error: Commissioning with the Circularity Test, Adaptive Characteristic and Neural QEC

1 August 2026

Mentor CNC Editör Ekibi

This page draws on two official Siemens sources: the “Extended Functions” function manual (valid for SINUMERIK 840D sl / 840DE sl / 828D, CNC software 4.4 generation) and the “Machine Data and Interface Signals” parameter manual (valid for SINUMERIK 802D sl V1.4 SP7). SINUMERIK 840Di sl is not in the validity list of this generation and appears only in older documentation. The settings described here are not operator-level; they require servo commissioning knowledge and manufacturer access rights.

What This Page Covers

When a circular contour shows bumps at the 12, 3, 6 and 9 o’clock positions, the first reflex is usually to increase the backlash value. That is normally wrong. What breaks the roundness is often not mechanical play but the static friction that holds the axis as it passes through zero speed — and the quadrant error that follows from it.

This page covers:

  • How quadrant error forms
  • What the Circularity Test does and what it shows
  • Commissioning conventional friction compensation (MD32490, MD32500, MD32520, MD32540)
  • The acceleration-dependent adaptive characteristic and its B1–B4 ranges (MD32510, MD32530, MD32550, MD32560, MD32570)
  • Over-compensation on short moves and MD32580
  • Neural Network QEC: the learning and working phases
  • The share of circularity error that comes from feedforward, and the use of FFWON / FFWOF

Measuring mechanical play with a dial indicator and entering the MD32450 backlash value is not covered here; that is a separate procedure. The two must not be mixed: backlash is measured and ruled out first, and friction is set up afterwards.

What Is Quadrant Error, and Why at Four Points of the Circle?

When a circle is machined with the X and Y axes, the two axes are constantly moving at different speeds. At four specific points on the circle, one axis is running close to its maximum speed while the other passes through zero speed and reverses.

On the axis passing through zero speed, the force needed to start motion is higher than the force needed to maintain it. Because of this static friction the axis sticks briefly, then jumps as soon as the friction force drops. This timing mismatch between the two axes shows up on the contour in four regions:

  • A bump or spike
  • A notch or inward dip
  • A reversal mark
  • A round hole taking on a slight clover shape

The Siemens remedy is to apply an additional speed setpoint pulse at the moment of reversal — with the correct sign and the correct amplitude — so that the axis starts moving on time. That is exactly what friction compensation does. The whole difficulty of the setup lies in choosing the size and the duration of that pulse.

Rule out backlash before you start

The two errors come from different sources and are easy to tell apart:

  • Backlash: there is measurable dead motion on the indicator, the error is independent of feedrate, and it appears at every direction reversal.
  • Friction / quadrant: there is no significant play on the indicator, the error varies with feedrate and radius, and it appears mainly on circular contours.

Setting up friction compensation before mechanical play has been eliminated means trying to cover two errors with one parameter, and it usually fails.

What Is the Circularity Test?

The Circularity Test is a commissioning tool built into the SINUMERIK control. It records the actual axis positions during a circular motion and plots them against the programmed circle.

How it works

  1. Two interpolating axes (typically X and Y) traverse a circular path.
  2. The actual position values of the axes are recorded.
  3. The measured radius is compared with the programmed radius.
  4. The quadrant transition points are examined in particular.
  5. Deviations are plotted graphically at a magnified scale.
  6. Measurements can be recorded and compared using the Trace system.
  7. The function is reached from the commissioning area of the HMI.

The value of the test is that it shows the size and location of the error without machining a part. The effect of every change is then followed directly on the same plot.

Problems the test can reveal

  • Backlash
  • Static friction and quadrant error
  • Dynamic mismatch between the X and Y axes
  • Unequal axis gains
  • Over-compensation
  • Insufficient compensation
  • Direction-dependent friction
  • Servo following error

The plot alone does not identify the cause. The same shape of distortion can come from more than one source; the result must be assessed together with the mechanical condition and the servo data.

Never test at a single condition

A test run at one radius and one feedrate produces a setting that is right for that operating point and poor everywhere else. Repeat the test across a matrix that represents how the machine is actually used:

VariableConditions to tryWhy it matters
RadiusSmall / medium / largeReversals are more frequent and more abrupt at small radii
FeedrateLow / medium / highFriction dominates at low speed, feedforward error at high speed
AccelerationSeveral levels within the programmed limitShows whether an adaptive characteristic is needed at all
Axis pairX-Y, X-Z, Y-ZA vertical axis behaves differently because of gravity and its counterbalance

Stage 1: Commissioning Conventional Friction Compensation

Commissioning has two stages. First a fixed compensation value is found without adaptation; if that is not enough, an acceleration-dependent characteristic is defined in the second stage. On many machines the first stage is sufficient.

1. Select the method

MD32490  $MA_FRICT_COMP_MODE

0 = No friction compensation
1 = Conventional compensation (fixed value or adaptive characteristic)
2 = Characteristic learned by a neural network (QEC)

For the conventional method this value is set to 1.

2. Run a reference test with compensation OFF

MD32500  $MA_FRICT_COMP_ENABLE = 0

Do not skip this step. The circularity plot taken with compensation off shows the machine’s natural quadrant error and is the reference against which every subsequent change is judged. Save the plot.

3. Switch compensation on, keep adaptation off

MD32500  $MA_FRICT_COMP_ENABLE       = 1
MD32510  $MA_FRICT_COMP_ADAPT_ENABLE = 0

Keeping adaptation off in the first stage matters: moving two variables at once makes it impossible to see which change fixed what.

4. Set the amplitude and the time constant

MD32520  $MA_FRICT_COMP_CONST_MAX   ; amplitude of the compensation pulse
MD32540  $MA_FRICT_COMP_TIME        ; time constant of the pulse (seconds)

MD32520 is entered in mm/min on linear axes. For rotary axes and spindles the unit varies with the control version (degrees/min or rev/min); this point could not be independently verified, so confirm it in your own parameter manual.

The source document gives the following starting example:

MD32520 = 10 mm/min
MD32540 = 0.008 s

These are not factory settings or recommended values. They are an example of where commissioning can start. Each machine’s own values are found with the circularity test.

5. Read the result off the plot

With a correct setting the quadrant transitions should not stand out and the circle should close cleanly. Which way the setting is off can be read from the shape of the plot:

What the plot showsMeaningAction
Bump at the quadrant transition persistsAmplitude too lowIncrease MD32520 in steps
A notch has appeared in the opposite directionOver-compensationReduce MD32520
Error corrects briefly, then returns immediatelyTime constant too shortIncrease MD32540
The correction keeps acting along the contourTime constant too longReduce MD32540
Good at low feedrate, poor at high feedrateNot friction — following errorMove to the feedforward section
Good at one acceleration, poor at anotherA fixed value is not enoughMove to the adaptive characteristic (Stage 2)

Stage 2: Acceleration-Dependent Adaptive Friction Compensation

On some machines a single fixed compensation value does not suit the whole acceleration range. Typically a larger pulse is needed at low acceleration and a smaller one at high acceleration. In that case adaptation is enabled, making the compensation value a function of acceleration.

MD32510  $MA_FRICT_COMP_ADAPT_ENABLE = 1   ; adaptation on

MD32520  $MA_FRICT_COMP_CONST_MAX          ; maximum compensation
MD32530  $MA_FRICT_COMP_CONST_MIN          ; minimum compensation

MD32550  $MA_FRICT_COMP_ACCEL1             ; acceleration breakpoint 1
MD32560  $MA_FRICT_COMP_ACCEL2             ; acceleration breakpoint 2
MD32570  $MA_FRICT_COMP_ACCEL3             ; acceleration breakpoint 3

The four ranges of the characteristic

The three acceleration breakpoints divide the characteristic into four ranges. In the table below a is the instantaneous axis acceleration:

RangeConditionCompensation applied
B1a < MD32550Rises from zero towards the maximum
B2MD32550 ≤ a ≤ MD32560Maximum value (MD32520) is applied
B3MD32560 < a < MD32570Falls from maximum to minimum
B4a ≥ MD32570Minimum value (MD32530) is applied

This curve is not estimated at a desk. Separate circularity tests are run at acceleration levels representing each range and the characteristic is derived from the measurements. A practical order: fix the maximum in the B2 range first, then find the B4 minimum at high acceleration, and set the breakpoints last.

Over-Compensation on Short Moves: MD32580

MD32580  $MA_FRICT_COMP_INC_FACTOR

This is the parameter for a problem that is common in the field but little known. The compensation value found with the circularity test is correct for continuous circular motion, but the same pulse is excessive on short positioning moves.

The symptom: once the circle is correct, the axis starts overshooting its target on short moves. Hole positions, small shoulders and fine finishing passes drift out of tolerance.

MD32580 is used to reduce the compensation applied on short moves by a weighting factor, so the overshoot on short positioning is removed without disturbing the setting found for circular contours. A short-move test should always be run after the circularity setup is finished.

Neural Network QEC (MD32490 = 2)

Neural-network-based quadrant error compensation is described in the source document as an option for the SINUMERIK 840D sl. It must not be assumed to be present on every control and every configuration.

The difference from the conventional method: the characteristic curve is not built by hand by the commissioning engineer. During a training phase the system learns the machine’s own behaviour.

Learning phase

The system learns the relationship between the input and output signals and writes the result to permanent user memory. Learning is axis-specific; axes do not influence one another, and the source states that up to four axes can be learned simultaneously.

Critical warning: MD32500 = 1 must not be set before a valid characteristic has been learned. During the learning phase compensation values can be applied independently of this machine data; getting the order wrong puts an empty or half-learned characteristic into service.

Working phase

Additional speed setpoint pulses are applied according to the learned characteristic. The characteristic does not change during normal operation — the machine will not “drift out of adjustment” on its own — but learning must be repeated when the mechanical condition changes (bearings, lubrication, guideways).

Resolution and memory

The resolution of the characteristic is set by the fine quantization and coarse quantization values. The source states that up to 1025 memory locations can be allocated per axis.

If resolution is increasedResult
Memory requirementIncreases
Learning timeGets longer
Detail of the characteristicIncreases

The detailed learning option is recommended only for applications demanding very high accuracy; it lengthens the learning time noticeably. It is usually not needed for standard mould and part machining.

The Share of Circularity Error That Comes From Feedforward

Friction compensation rescues the axis as it passes through zero speed. But if the circle also degrades at high feedrate, the problem is not friction — it is following error: the lag between the commanded and the actual position. Dynamic feedforward reduces that lag.

The distinguishing rule is simple: if the error grows with feedrate, look at feedforward; if it sits at the quadrant points regardless of feedrate, look at friction.

MD32620 $MA_FFW_MODE — values differ by generation

The meaning of this parameter’s values differs between control generations, and mixing them up is a common mistake:

ValueClassic 840D / 810D840D sl generation
0No feedforwardNo feedforward
1Speed feedforward
2Torque feedforward
3Speed feedforward
4Combined torque/speed feedforward

Always work from the value list in the parameter manual of your own control. Never copy a value straight from another machine.

Speed feedforward weighting: MD32610

MD32610  $MA_VELO_FFW_WEIGHT
Value range : 0 ... 1
0 = no feedforward
1 = 100% feedforward  (the normal value on digital drives)

Reducing the value makes motion smoother and reduces overshoot, at the cost of a larger circular contour error. Lowering it because “the machine runs harshly” is the fastest way to create a circularity problem with your own hands. Look for the source of the harshness in the jerk and acceleration settings first.

Equivalent time constants

MD32810  $MA_EQUIV_SPEEDCTRL_TIME   ; speed loop equivalent time constant
MD32800  $MA_EQUIV_CURRCTRL_TIME    ; current loop equivalent time constant
MD32650  $MA_AX_INERTIA              ; axis inertia (for torque feedforward)

MD32810 is determined from the speed setpoint step response. For fine adjustment the source recommends the following conditions: traverse the axis at constant speed, with low acceleration and a high feedrate. The System Deviation value on the service screen then reads more steadily and the time constant can be found more accurately.

Torque feedforward (MD32620 = 4 on the 840D sl generation) generates an additional torque setpoint from acceleration and inertia. If the MD32650 inertia value is wrong, the correction works in the wrong direction; this setting is at servo commissioning level.

FFWON and FFWOF: Feedforward Control From the Part Program

FFWON   ; switches feedforward control on
FFWOF   ; switches feedforward control off

For these commands to work, the activation behaviour must be defined accordingly:

MD32630  $MA_FFW_ACTIVATION_MODE

This machine data determines both whether switching from the program is possible at all, and whether the command takes effect immediately or only when the axis has stopped.

Why it matters: switching feedforward on or off while the axis is moving produces an abrupt setpoint change and harsh motion. Siemens requires the transition to be made at standstill; with some settings the control already delays the transition until the next stop.

The example program from the source

N10 FFWOF
N20 POSA[A]=1000 FA[A]=10000
N30 G4 F1
N40 FFWON
N50 G0 X10 Y10 Z10
N60 WAITP(A)
N70 POSA[A]=1500 FA[A]=10000
N80 WAITP(A)
M30
BlockWhat it does
N10Feedforward is switched off
N20The A axis is sent to a non-synchronised (POSA) positioning move; the program continues without waiting
N30One-second dwell
N40Feedforward is switched on
N50The other axes are sent on a rapid move
N60Wait for the A axis to finish positioning
N70The A axis is sent to a new position
N80Wait for synchronisation again

This program must not be copied straight into a production program. Axis names, machine configuration, the existence of an A axis and the OEM PLC behaviour all differ from machine to machine. It is given in the source to illustrate the logic of the commands.

Symptoms of an Incorrect Setting

SymptomLikely causeFirst check
Circle is fixed but the axis overshoots on short movesOver-compensation on short movesMD32580
Notch in the opposite direction at the quadrant transitionAmplitude too highMD32520
The bump did not reduce at allCompensation not active, or amplitude far too lowMD32500, MD32520
Good at one acceleration, poor at anotherA fixed value is not enoughMD32510 and the adaptive characteristic
Correct at low feedrate, circle goes oval at high feedrateFollowing error / feedforwardMD32610, MD32620, MD32810
Corners are rounded offFeedforward insufficient or switched offMD32620, FFWON state
Axis runs harshly, vibratesOver-compensation or wrong time constantMD32540, MD32810
QEC was enabled but nothing changedNo valid characteristic has been learnedLearning phase and the MD32500 order
The error is different at every measurementMechanical loosenessNot compensation — mechanical maintenance

Who Should Do This Work?

None of the parameters on this page is an operator setting. The MD325xx, MD326xx and MD328xx groups require servo commissioning knowledge and are usually protected behind a manufacturer access level.

The operator’s contribution lies elsewhere and should not be underestimated: recording which axis pair, which radius, which feedrate and which override value the error appears at lets the service engineer start the setup from the right point. Without that information the commissioning engineer has to search for it too.

Parameter Summary

ParameterMeaningWhen it is used
MD32490 $MA_FRICT_COMP_MODEFriction compensation method (0/1/2)Method choice: off, conventional, neural QEC
MD32500 $MA_FRICT_COMP_ENABLECompensation on/off for the axisReference test and commissioning
MD32510 $MA_FRICT_COMP_ADAPT_ENABLEAcceleration-dependent adaptation on/offStage 2, when a fixed value is not enough
MD32520 $MA_FRICT_COMP_CONST_MAXMaximum compensation amplitudeThe main adjustment parameter
MD32530 $MA_FRICT_COMP_CONST_MINMinimum compensation amplitudeRange B4 of the adaptive characteristic
MD32540 $MA_FRICT_COMP_TIMECompensation time constant (s)Duration of the pulse
MD32550 / 32560 / 32570 ACCEL1/2/3Adaptation acceleration breakpointsBoundaries of ranges B1–B4
MD32580 $MA_FRICT_COMP_INC_FACTORShort-move weighting factorWhen short positioning moves overshoot
MD32610 $MA_VELO_FFW_WEIGHTSpeed feedforward weighting (0…1)Following error adjustment
MD32620 $MA_FFW_MODEFeedforward mode (values differ by generation)Choosing the feedforward type
MD32630 $MA_FFW_ACTIVATION_MODEFFWON/FFWOF behaviourWhen control from the program is wanted
MD32650 $MA_AX_INERTIAAxis inertiaTorque feedforward
MD32800 $MA_EQUIV_CURRCTRL_TIMECurrent loop time constantTorque feedforward
MD32810 $MA_EQUIV_SPEEDCTRL_TIMESpeed loop time constantSpeed feedforward

Safety Warning

  • Do not touch these parameters without an archive backup of the NC, PLC and drive data.
  • Record the previous state of every value you change.
  • Run the Circularity Test with a safe travel range, a safe radius and a controlled feedrate.
  • Remove the tool and workpiece from the working area during the test and reduce the rapid override.
  • On vertical axes, account for gravity, the counterbalance system and the axis brake.
  • Incorrect compensation can enlarge the existing error in the opposite direction instead of reducing it; re-measure after every change.
  • Electronic compensation does not repair a mechanical fault. If there is a loose coupling, a worn ball screw or a damaged bearing, carry out mechanical maintenance first.
  • If the parameter access level is protected by the manufacturer, do not bypass it.

Disclaimer

This content was prepared to explain how friction compensation, quadrant error compensation and dynamic feedforward control work on Siemens SINUMERIK systems. All numerical values given are examples from the source documentation, not ready-made figures to be entered on any machine. These parameters are at servo commissioning level and must not be changed without proper backups and without reviewing the machine builder’s procedure. The same parameters can behave differently on different SINUMERIK models and software versions; the official manuals of the machine builder and of Siemens always take precedence. Mentor CNC cannot be held responsible for material damage, dimensional errors or workplace accidents resulting from this application.