SINUMERIK 840D sl. Service - Functions. Manual (2018-2020) - page 48

 

  Index      Manuals     SINUMERIK 840D sl. Service - Functions. Manual (2018-2020)

 

Search            copyright infringement  

 

   

 

   

 

Content      ..     46      47      48      49     ..

 

 

 

SINUMERIK 840D sl. Service - Functions. Manual (2018-2020) - page 48

 

 

Compensations
9.5 Interpolatory compensation
Program code
Comment
$AA_ENC_COMP_IS_MODULO[0,X1]=0
Compensation without modulo function
M17
9.5.3
Sag and angularity error compensation
9.5.3.1
General information
Function
The sag and angularity error compensation (cross error compensation, CEC) is an axis-specific
compensation, where a correction and/or compensation value is added to the the setpoint
position of the compensation axis. The compensation value is derived from the current
setpoint position of one or several basic axes.
• Sag errors
In the case of sag errors, the weight of a machine part or workpiece leads to a position-
dependent error in the tool center point (TCP).
• Angularity errors
For angularity errors, a deviation in the ideal angle in the geometric axes in relation to each
other leads to a position-dependent error in the tool center point (TCP).
=
<
7&3
① Position error in Z1 as a function of the position of Y1
Figure 9-13
Example: Sag errors
Error compensation
For error compensation, at various interpolation points (setpoint positions) of the basic axis
(Y1), the particular position error should be determined and entered into the compensation
table. When the basic axis (Y1) traverses, in the interpolation clock cycle, the control system
calculates the actual compensation value for the compensation axis (Z1) by linearly
interpolating between the points. The compensation value is added to the setpoint of the
compensation axis (Z1). A positive compensation value causes the compensation axis (Z1) to
traverse in the negative direction.
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
251
Compensations
9.5 Interpolatory compensation
6HWSRLQW SRVLWLRQ EDVLF D[LV <
6WDUWLQJ SRVLWLRQ
(QG SRVLWLRQ
,QWHUSRODWLRQ SRLQWV
Figure 9-14
Compensation table
Summed compensation value
Compensation values from several compensation tables can be applied to a compensation axis.
The resulting summed compensation value is the sum of all of the individual compensation
values.
Parameterization options
• Anaxis can be defined as a basic axis for severalcompensation tables.
• Severalcompensation tables can act on onecompensation axis. The total (summed)
compensation value is derived from the sum of the compensation values of the individual
compensation tables.
• An axis can be both a base axis and a compensation axis at any one time. The programmed
position setpoint is used to calculate the compensation values.
• The scope of action of the compensation (starting and end position of the base axis) and the
distance between the interpolation points can be defined for every compensation table.
• The compensation can act as a function of the direction.
• Every compensation table has a modulo function for cyclic evaluation.
• A weighting factor can be taken into account for each compensation table, with which the
value in the table is multiplied.
• Using table multiplication, the actual compensation value KA of compensation table A can
be multiplied with the actual compensation value Kx of any arbitrary compensation table X,
i.e. also with itself. The result of the table multiplication is added to the actual compensation
value KA of compensation table A, and this is then the sum compensation value SKA, which
is then effective in the compensation axis.
SKA = KA + KA * Kx
• Axes-specific activation for all compensation relationships of the axis via the machine data:
MD32710 $MA_CEC_ENABLE[<axis>]
• Table-specificactivation via the setting data:
SD41300 $SN_CEC_TABLE_ENABLE[<table>]
Application example: Processing-dependent change to the compensation ratio by switching
the active compensation table via part program/synchronous actions or PLC user program.
Monitoring and compensating
252
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.5 Interpolatory compensation
Application examples
Compensation of repetitive errors with short wavelength
To compensate for repetitive errors with short wavelength in an axis, a compensation table with
modulo function for the repetitive error components (short wavelength) together with a second
compensation table without modulo function for the aperiodic error component are
parameterized for the same axis.
User-specific leadscrew error compensation
For user-specific leadscrew error compensation, a compensation table with the same axis is
parameterized as basic and compensation axis.
However, in this case there is a disadvantage in so much that contrary to the standard function
a measuring system switchover cannot be automatically taken into consideration.
9.5.3.2
Commissioning: Machine data
Number
Identifier
Meaning
NC-specific machine data
MD10240
$MN_SCALING_SYSTEM_IS_MET-
Metric basic system
RIC.
MD10260
$MN_CONVERT_SCALING_SYSTEM
Basic system switchover active
MD18342
$MN_MM_CEC_MAX_POINTS
Number of interpolation points per compensation ta-
ble
Axis-specific machine data
MD32710
$MA_CEC_ENABLE
Enabling sag compensation
MD32711
$MA_CEC_SCALING_SYS-
System of units for sag compensation
TEM_METRIC
MD32720
$MA_CEC_MAX_SUM
Maximum compensation value for sag compensation
MD32730
$MA_CEC_MAX_VELO
Maximum velocity change for CEC
System of units (MD10240, MD10260, MD32711)
The system of units effective in the control system (metric or inch) is defined using:
MD10240 $MN_SCALING_SYSTEM_IS_METRIC = <system of units>
System of units switchover without automatic conversion
Table parameters with position data are automatically converted if the system of units changes.
The position data is always interpreted in the actual system of units. Conversion must be
implemented externally.
System of units switchover with automatic conversion
The automatic conversion of position data is activated using:
MD10260 $MN_CONVERT_SCALING_SYSTEM = TRUE
As a consequence, the system of units set in the following machine data is effective for all
compensation tables of the axis:
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
253
Compensations
9.5 Interpolatory compensation
MD32711 $MA_CEC_SCALING_SYSTEM_METRIC = <system of units>
As a consequence, all position data is interpreted together with the summed compensation
value in the configured system of units. External conversion of position data is no longer
necessary when the system of units changes.
Axes-specific activation (MD32710)
Axis-specific activation for all compensation relationships of the axis is realized using:
MD32710 $MA_CEC_ENABLE[<axis>] = TRUE
Number of interpolation points per compensation table (MD18342)
The number of interpolation points per compensation table is parameterized using:
MD18342 $MN_MM_CEC_MAX_POINTS[<table index>] = <number of interpolation points>
The number of interpolation points required in a compensation table is calculated from the
maximum, minimum and step width (increment) set in System variables of table:
<Number of interpolation points> = ($AN_CEC_MAX - $AN_CEC_MIN) / $AN_CEC_STEP + 1
Monitoring (MD32720, MD32730)
Absolute limiting
To avoid inadmissibly high compensation motion of the compensation axis, the summed
compensation value is monitored against the maximum value specified in the machine data:
MD32720 $MA_CEC_MAX_SUM[<compensation axis>] = <maximum value>
When the value is exceeded, the summed compensation value is limited to the maximum value
and alarm 20124 "Summed compensation value too high" is displayed.
Limiting the change
To avoid inadmissibly high dynamic loads on the compensation axis, the summed compensation
value change is monitored against the maximum value specified in machine data:
MD32730 $MA_CEC_MAX_VELO[<compensation axis>] = <percentage of the maximum axis
velocity (MD32000 $MA_MAX_AX_VELO)>
When exceeded, the summed compensation value change is limited to the maximum value and
alarm 20125 "Compensation value change too fast" is displayed.
The reduced traversing distance as result of the limiting is output as soon as the compensation
value is no longer being limited.
9.5.3.3
Commissioning: Setting data
Number
Identifier
Meaning
SD41300
$SN_CEC_TABLE_ENABLE
Compensation table enable
SD41310
$SN_CEC_TABLE_WEIGHT
Weighting factor
Monitoring and compensating
254
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.5 Interpolatory compensation
Compensation table enable (SD41300)
The evaluation of the compensation table is enabled using the setting data:
SD41300 $SN_CEC_TABLE_ENABLE[<table index>] = TRUE
The compensation value determined using the compensation table is only added to the summed
compensation value of the compensation axis when the evaluation is enabled.
Weighting factor (SD41310)
The weighting factor should be entered in the setting data, with which the compensation value
determined from the compensation table is multiplied:
SD41310 $SN_CEC_TABLE_WEIGHT[<table index>] = <weighting factor>
As standard, the weighting factor has a value of 1.0. The compensation table becomes inactive
with a weighting factor of 0.0.
9.5.3.4
Commissioning: System variable
Identifier
Meaning
NC-specific system variables
$AN_CEC
Compensation values
$AN_CEC_DIRECTION
Direction dependency
$AN_CEC_INPUT_AXIS
Basic axis
$AN_CEC_INPUT_NCU
Basic axis on the NCU:
$AN_CEC_IS_MODULO
Modulo function
$AN_CEC_MAX
End position
$AN_CEC_MIN
Starting position
$AN_CEC_MULT_BY_TABLE
Multiplication
$AN_CEC_OUTPUT_AXIS
Compensation axis
$AN_CEC_OUTPUT_NCU
Compensation axis on the NCU
$AN_CEC_STEP
Distance between interpolation points
$AN_CEC_TYPE
Table type
Axis-specific system variables
$VA_CEC_COMP_VAL
Actual compensation value
Compensation values ($AN_CEC)
The compensation values of the compensation table should be entered into system variable:
$AN_CEC[<table index>, <interpolation point index>] = <compensation value>
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
255
Compensations
9.5 Interpolatory compensation
<Interpolation point index> = 0 ≤ x ≤ (value of MD18342[<table index>]) - 1
Note
Before writing to system variable $AN_CEC, all of the compensation functions for all of the axes
must be deactivated:
• MD32700 $MA_ENC_COMP_ENABLE[<axis>] = 0
• MD32710 $MA_CEC_ENABLE[<axis>] = 0
Basic axis ($AN_CEC_INPUT_AXIS)
The basic axis should be entered into the system variable, i.e. the name of the axis whose
position setpoint is to be used as the input for the compensation table.
$AN_CEC_INPUT_AXIS[<table index>] = "<channel axis name>" or "<machine axis name>"
Compensation axis ($AN_CEC_OUTPUT_AXIS)
The compensation axis should be entered in the system variable, i.e. the name of the axis to
whose setpoint the compensation value is added.
$AN_CEC_OUTPUT_AXIS[<table index>] = "<channel axis name>" or "<machine axis name>"
Note
If the names of channel and machine axes are the same in multi-channel systems, the standard
axis names AX1, AX2, etc. must be used.
Distance between interpolation points ($AN_CEC_STEP)
The distance between two interpolation points should be entered into the system variable
(position values of the basic axis) of the compensation table.
$AN_CEC_STEP[<table index>] = <distance between interpolation points>
Within a compensation table, the distance between interpolation points remains constant.
Starting position ($AN_CEC_MIN)
The setpoint position of the basic axis for the first interpolation point or the start of the
compensation table should be entered in the system variable.
Monitoring and compensating
256
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.5 Interpolatory compensation
$AN_CEC_MIN[<table index>] = <starting position>
Note
Setpoint position less than the starting position
The compensation value of the first interpolation point is used for all setpoint positions less than
the starting position.
Exception: Compensation tables with modulo function
End position ($AN_CEC_MAX)
The setpoint position of the basic axis for the last interpolation point or the end of the
compensation table should be entered in the system variable.
$AN_CEC_MAX[<table index>] = <end position>
Note
Setpoint position greater than the end position
The compensation value of the last interpolation point is used for all setpoint positions higher
than the starting position.
Exception: Compensation tables with modulo function
Basic or compensation axis on the NCU ($AN_CEC_INPUT_NCU, $AN_CEC_OUTPUT_NCU)
For sag compensation with link axes, as basic or compensation axis, the number of the NCU
should be entered in the system variable to which the axis is connected.
$AN_CEC_INPUT_NCU[<table index>] or $AN_CEC_OUTPUT_NCU[<table index>] = <NCU
number>
Direction-dependent compensation ($AN_CEC_DIRECTION)
The traversing direction of the basic axis, where the compensation should become effective,
should be entered into the system variable.
$AN_CEC_DIRECTION[<table index>] = <direction>
•
0: in both traversing directions
•
1: in the positive traversing direction only
•
-1: in the negative traversing direction only
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
257
Compensations
9.5 Interpolatory compensation
Table multiplication ($AN_CEC_MULT_BY_TABLE)
Using table multiplication, the actual compensation value K of the compensation table can be
multiplied with the actual compensation value Kx of any arbitrary compensation table X, i.e. also
with itself. The result of the table multiplication is added to the actual compensation value K of
compensation table, and this is the summed compensation value SK, which is then effective in
the compensation axis.
SK = K + K * Kx
The number of the compensation table should be entered in the system variable, with whose
compensation value the actual compensation value should be multiplied.
$AN_CEC_MULT_BY_TABLE[<table index>] = <table number X>
<table number X> = <table index X> + 1
Modulo function ($AN_CEC_IS_MODULO)
If the modulo function is activated for a compensation table, then the input value, i.e. the
setpoint position of the basic axis, is calculated, modulo with the input range of the
compensation table. This means that the compensation value of the end position is followed
again by the compensation value of the starting position or for an inverse run-through direction,
the compensation value of the starting position is followed again by the compensation value of
the end position.
$AN_CEC_IS_MODULO[<table index>] = <value>
•
0: Compensation without modulo function
•
1: Compensation with modulo function
Note
Equal compensation values
When the modulo function is active, we recommend that you set the compensation values of the
starting and end positions the same.
Note
Modulo rotary axis
For a modulo rotary axis, the modulo function of the compensation must be activated.
Example: Parameterization for a modulo rotary axis
$MA_IS_ROT_AX[AX1] = 1
; rotary axis
$MA_ROT_IS_MODULO[AX1] = 1 ; modulo 360°
$AN_CEC_INPUT_AXIS[0] = AX1
$AN_CEC_MIN[0] = 0.0
$AN_CEC_MAX[0] = 360.0
$AN_CEC_STEP[0]=1.0
$AN_CEC_IS_MODULO[0] = 1
Monitoring and compensating
258
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.5 Interpolatory compensation
$MN_MM_CEC_MAX_POINTS = 361
$AN_CEC[0, 0] = $AN_CEC[0, 360] = 0.1
Table type ($AN_CEC_TYPE)
The table type, i.e. the compensation type should be entered into the system variable.
$AN_CEC_TYPE[<table index>] = <Type>
•
0: General interpolating compensation
•
1: Cylinder error compensation
Actual compensation value ($VA_CEC_COMP_VAL)
The system variable supplies the currently effective compensation value of the axis:
<Actual compensation value> = $VA_CEC_COMP_VAL[<Axis>]
9.5.3.5
Commissioning: Basic procedure
The compensation tables must be defined in the first commissioning step. To do this, the
required number of interpolation points must be set for the particular compensation table. The
compensation tables will be created in the control system and populated with default values at
the next warm restart.
The second commissioning step involves parameterizing the compensation data using system
variables. This can be performed in two different ways:
• Start an NC program in which the system variables will be written.
• Transfer the compensation tables from an external computer to the control.
Note
All compensation functions for all axes must be deactivated before loading the
compensation tables:
• MD32700 $MA_ENC_COMP_ENABLE[<Achse>] == 0
• MD32710 $MA_CEC_ENABLE[<axis>] == 0
Sequence
1. Parameterize the number of interpolation points for the compensation tables:
MD18342 $MN_MM_CEC_MAX_POINTS
2. Parameterize the monitoring functions:
- Absolute limiting: MD32720 $MA_CEC_MAX_SUM
- Limiting the change: MD32730 $MA_CEC_MAX_VELO
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
259
Compensations
9.5 Interpolatory compensation
3. Parameterize the system of units switchover
- without automatic conversion:
MD10240 $MN_SCALING_SYSTEM_IS_METRIC
- with automatic conversion:
- MD10240 $MN_SCALING_SYSTEM_IS_METRIC
- MD10260 $MN_CONVERT_SCALING_SYSTEM
- MD32711 $MA_CEC_SCALING_SYSTEM_METRIC
4. Initiate a warm restart of the NC to activate the machine data changes
5. Parameterize the weighting factors for the compensation tables:
SD41310$SN_CEC_TABLE_WEIGHT
6. Parameterize the table parameters in system variables $AN_CEC_...
7. Check or reference the actual measuring system of the basic and compensation axis:
DB31, ... DBX60.4 bzw. 60.5 == 1 (referenced/synchronized 1 or 2)
8. Enable compensation:
- Table-specific: SD41300 CEC_TABLE_ENABLE
- Axis-specific: MD32710 $MA_CEC_ENABLE
Monitoring and compensating
260
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.5 Interpolatory compensation
9.5.3.6
Commissioning: Overview diagram
0'
0$B&(&B(1$%/(
0'
0$B&(&B0$;B9(/2
0'
0$B&(&B0$;B680
$1B&(&B08/7B%<B7$%/(
6'
61B&(&B7$%/(B(1$%/(
6'
61B&(&B7$%/(B:(,*+7
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
261
Compensations
9.5 Interpolatory compensation
9.5.3.7
Example 1: Sag compensation
Depending on the position of the axis Y1, an additional compensation value is applied to the set
position of axis Z1.
Compensation table used: Table 1 ⇒ Index = 0
Compensation parameters
• Starting position: -400.0
• End position: 400.0
• Distance between interpolation points: 8.0
Number of interpolation points
MD18342 $MN_MM_CEC_MAX_POINTS[ 0 ] = (400.0 - -400.0) / 8.0 + 1 = 101
The memory required in the static user memory is at least 808 bytes (8 bytes per compensation
value).
Program code
Comment
%_N_NC_CEC_INI
; Writing the compensation data
CHANDATA(1)
; Compensation table 1, index 0
$AN_CEC[0,0]=0
;
1st Compensation value = 0µm
$AN_CEC[0,1]=0.01
;
2nd Compensation value = 10µm
$AN_CEC[0,2]=0.012
;
3rd Compensation value = 12µm
$AN_CEC[0,100]=0
; 101st Compensation value = 0µm
$AN_CEC_INPUT_AXIS[0]=AX2
; Basic axis Y1 ⇒ machine axis name AX2
$AN_CEC_OUTPUT_AXIS[0]=AX3
; Compensation axis Z1 ⇒ machine axis name AX3
$AN_CEC_STEP[0]=8.0
; distance between interpolation points 8.0 mm
$AN_CEC_MIN[0]=-400.0
; Starting position: Y1 = -400mm
$AN_CEC_MAX[0]=400.0
; End position:
Y1 = +400mm
$AN_CEC_DIRECTION[0]=0
; Compensate in both traversing directions of Y1
$AN_CEC_MULT_BY_TABLE[0]=0
; No table multiplication
$AN_CEC_IS_MODULO[0]=0
; No modulo function
Monitoring and compensating
262
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.5 Interpolatory compensation
9.5.3.8
Example 2: Compensation with table multiplication
Compensation of sag of the foundation of a drilling machine with table multiplication.
Boring mill
Z1 (measured value)
Z1
¥
Foundation under load
X1
ෙX1
X1 (measured
value)
Figure 9-15
Sag of the foundation
On large machines, sagging of the foundation can cause inclination of the whole machine.
The compensation in axis X1 depends on:
• The position of axis X1 because it determines the angle of inclination β
• The position of axis Z1, in which the drill is located.
The summed compensation value ΔX1total is calculated from the compensation values ΔX1 and
ΔZ1:
ΔX1total = ΔZ1 * ΔX1 = ΔZ1 * sinβ(X1) ≈ ΔZ1 * β(X1)
Table 1
X1setp
sin¥ (X1)
+
¥
Z1
X1setpSComp
Z1setp
+
X1
Table 2
Figure 9-16
Table multiplication
Compensation table 1 (table index: 0)
• Basic axis: X1
• Compensation axis: X1
• Compensation values: Sine of the position-dependent tilt angle β, with β = f(position of X1)
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
263
Compensations
9.5 Interpolatory compensation
Compensation table 2 (table index: 1)
• Basic axis: Z1
• Compensation axis: X1
• Compensation values: Reaction of the position of axis Z1 on the measured position of axis X1
Table multiplication
For compensation relationship 1 (table index: 0) the table multiplication should be set with the
compensation relationship 2:
$AN_CEC_MULT_BY_TABLE[ 0 ] = 2
9.5.3.9
Example 3: 2-dimensional array of compensation values
For flat-bed machines, the use case often arises in practice in which the sag compensation
values of the Z-axis depend on the axis positions of the X axis and Y axis. This is why it makes
sense to organize compensation values in a 2-dimensional array.
In this example, a possible way of implementing sag compensation using a grid, having a size of
4 x 5 (rows x columns), is explained in more detail. The size of the complete measuring range is
2000 x 900 mm2. The compensation values are each determined in increments of 500 mm along
the X axis and 300 mm increments along the Y axis. The interpolation points with the relevant
compensation values are positioned at the intersections of the grid (X-Y plane). Compensation
values between these interpolation points are linearly interpolated.
<
;
Figure 9-17
Compensation values of the Z axis
Note
SINUMERIK Operate user interface
The currently effective compensation value of the Z axis as a result of sag compensation is
displayed on the SINUMERIK Operate user interface under:
Operating area: "Diagnostics" > "Axis diagnostics" > "Service axis" > Signal: "Compensation, sag
+ temperature"
Implementation
For each line of the four-line the grid, a compensation table is set up with five interpolation
points. In the first compensation table, starting at interpolation point 1, in ascending sequence,
the compensation values 0.1 to 0.5 are entered in the first line. Using the same procedure, in the
first compensation table, compensation values 0.6 to 1.0 are entered in the second line, etc.
Monitoring and compensating
264
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.5 Interpolatory compensation
These compensation tables, relevant for the position of the X axis, are now designated with f
tablesand the table values as f_i(x), with i: Table number.
Additional compensation tables are required to take into account the position of the Y axis.
These compensation tables are now designated as g tables and the table values as g_i(y). The
number of f tables and g tables is equal. In the example, four:
In the g tables, one compensation value is set to 1 - and all the others to 0. The position of
compensation value 1 within the table is determined by the table number. In the first g table,
compensation value 1 is positioned at the first interpolation point and, in the second g table, at
the second interpolation point, etc. By multiplying g tables by f tables, the correct compensation
value in each f table is selected by multiplying it by 1. All irrelevant compensation values are
concealed through multiplication by 0.
The summed compensation value Dz at position (x/y) is calculated according to the following
equation:
Dz(x/y) = f_1(x) * g_1(y) + f_2(x) * g_2(y) + f_3(x) * g_3(y) + f_4(x) * g_4(y) = k_1 + k_2 + k_3
+ k_4
At location Dz(750/450), the summed compensation value of the Z axis is calculated to be:
IB
[
JB
NB
IB
[
JB
NB
IB
[
JB
NB
IB
[
JB
NB
;
<
Dz(750/450)
= f_1(750) * g_1(450) + f_2(750) * g_2(450) +
f_3(750) * g_3(450) + f_4(750) * g_4(450)
=
0.25
*
0.0
+
0.75
*
0.5 +
1.25
*
0.5
+
1.75
*
0.0
= 1.0
Parameterization
Parameterization of machine data using the NC program
Program code
Comment
; Number of interpolation points for the compensation tables
$MN_MM_CEC_MAX_POINTS[0]=5
; Compensation table 1
$MN_MM_CEC_MAX_POINTS[1]=5
; Compensation table 2
$MN_MM_CEC_MAX_POINTS[2]=5
; Compensation table 3
$MN_MM_CEC_MAX_POINTS[3]=5
; Compensation table 4
$MN_MM_CEC_MAX_POINTS[4]=4
; Compensation table 5
$MN_MM_CEC_MAX_POINTS[5]=4
; Compensation table 6
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
265
Compensations
9.5 Interpolatory compensation
Program code
Comment
$MN_MM_CEC_MAX_POINTS[6]=4
; Compensation table 7
$MN_MM_CEC_MAX_POINTS[7]=4
; Compensation table 8
; Monitoring functions for axis Z1 corresponding to the 3rd machine axis
$MA_CEC_MAX_SUM[AX3]=10.0
; Max. summed compensation value
$MA_CEC_MAX_VELO[AX3]=100.0
; Max. change
Setting the table parameters (system variables) using the NC program
Program code
Comment
; To write to the compensation tables, the
; compensation for axis Z1 (compensation axis)
; must first be deactivated.
$MA_CEC_ENABLE[Z1] = FALSE
NEWCONF
; Activate $MA_CEC_ENABLE
; Define values f_i(x) in the f tables:
; Function values f_1(x) for table with index [0]
$AN_CEC[0,0]=0.1
$AN_CEC[0,1]=0.2
$AN_CEC[0,2]=0.3
$AN_CEC[0,3]=0.4
$AN_CEC[0,4]=0.5
; Function values f_2(x) for table with index [1]
$AN_CEC[1,0]=0.6
$AN_CEC[1,1]=0.7
$AN_CEC[1,2]=0.8
$AN_CEC[1,3]=0.9
$AN_CEC[1,4]=1.0
; Function values f_3(x) for table with index [2]
$AN_CEC[2,0]=1.1
$AN_CEC[2,1]=1.2
$AN_CEC[2,2]=1.3
$AN_CEC[2,3]=1.4
$AN_CEC[2,4]=1.5
; Function values f_4(x) for table with index [3]
$AN_CEC[3,0]=1.6
$AN_CEC[3,1]=1.7
$AN_CEC[3,2]=1.8
$AN_CEC[3,3]=1.9
$AN_CEC[3,4]=2.0
Monitoring and compensating
266
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.5 Interpolatory compensation
Program code
Comment
; Enable evaluation of f tables with compensation values
$SN_CEC_TABLE_ENABLE[0]=TRUE
$SN_CEC_TABLE_ENABLE[1]=TRUE
$SN_CEC_TABLE_ENABLE[2]=TRUE
$SN_CEC_TABLE_ENABLE[3]=TRUE
; Define weighting factor for f tables
$SN_CEC_TABLE_WEIGHT[0]=1.0
$SN_CEC_TABLE_WEIGHT[1]=1.0
$SN_CEC_TABLE_WEIGHT[2]=1.0
$SN_CEC_TABLE_WEIGHT[3]=1.0
; Changes to the following table parameters do not take effect until
; after a warm restart
; Define basic axis X1
$AN_CEC_INPUT_AXIS[0]=(X1)
$AN_CEC_INPUT_AXIS[1]=(X1)
$AN_CEC_INPUT_AXIS[2]=(X1)
$AN_CEC_INPUT_AXIS[3]=(X1)
; Define compensation axis Z1
$AN_CEC_OUTPUT_AXIS[0]=(Z1)
$AN_CEC_OUTPUT_AXIS[1]=(Z1)
$AN_CEC_OUTPUT_AXIS[2]=(Z1)
$AN_CEC_OUTPUT_AXIS[3]=(Z1)
; Define distance between interpolation points for compensation values in f tables
$AN_CEC_STEP[0]=500.0
$AN_CEC_STEP[1]=500.0
$AN_CEC_STEP[2]=500.0
$AN_CEC_STEP[3]=500.0
; Compensation starts at X1=0
$AN_CEC_MIN[0]=0.0
$AN_CEC_MIN[1]=0.0
$AN_CEC_MIN[2]=0.0
$AN_CEC_MIN[3]=0.0
; Compensation ends at X1=2000
$AN_CEC_MAX[0]=2000.0
$AN_CEC_MAX[1]=2000.0
$AN_CEC_MAX[2]=2000.0
$AN_CEC_MAX[3]=2000.0
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
267
Compensations
9.5 Interpolatory compensation
Program code
Comment
; Values of f tables with index [t1] are multiplied by values in g tables
; by the number [t2]
; in accordance with the equation (algorithm) specified above
$AN_CEC_MULT_BY_TABLE[0] = 5
$AN_CEC_MULT_BY_TABLE[1] = 6
$AN_CEC_MULT_BY_TABLE[2] = 7
$AN_CEC_MULT_BY_TABLE[3] = 8
; Define the g table values for g_i(y):
; Function values g_1(x) for table with index [4]
$AN_CEC[4,0]=1.0
$AN_CEC[4,1]=0.0
$AN_CEC[4,2]=0.0
$AN_CEC[4,3]=0.0
; Function values g_2(x) for table with index [5]
$AN_CEC[5,0]=0.0
$AN_CEC[5,1]=1.0
$AN_CEC[5,2]=0.0
$AN_CEC[5,3]=0.0
; Function values g_3(x) for table with index [6]
$AN_CEC[6,0]=0.0
$AN_CEC[6,1]=0.0
$AN_CEC[6,2]=1.0
$AN_CEC[6,3]=0.0
; Function values g_4(x) for table with index [7]
$AN_CEC[7,0]=0.0
$AN_CEC[7,1]=0.0
$AN_CEC[7,2]=0.0
$AN_CEC[7,3]=1.0
; Enable evaluation of g tables with compensation values
$SN_CEC_TABLE_ENABLE[4]=TRUE
$SN_CEC_TABLE_ENABLE[5]=TRUE
$SN_CEC_TABLE_ENABLE[6]=TRUE
$SN_CEC_TABLE_ENABLE[7]=TRUE
; Define weighting factor for g tables
$SN_CEC_TABLE_WEIGHT[4]=1.0
$SN_CEC_TABLE_WEIGHT[5]=1.0
$SN_CEC_TABLE_WEIGHT[6]=1.0
$SN_CEC_TABLE_WEIGHT[7]=1.0
Monitoring and compensating
268
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.5 Interpolatory compensation
Program code
Comment
; Changes to the following table parameters do not take effect until
; a power on is carried out
;Define basic axis Y1
$AN_CEC_INPUT_AXIS[4]=(Y1)
$AN_CEC_INPUT_AXIS[5]=(Y1)
$AN_CEC_INPUT_AXIS[6]=(Y1)
$AN_CEC_INPUT_AXIS[7]=(Y1)
; Define compensation axis Z1
$AN_CEC_OUTPUT_AXIS[4]=(Z1)
$AN_CEC_OUTPUT_AXIS[5]=(Z1)
$AN_CEC_OUTPUT_AXIS[6]=(Z1)
$AN_CEC_OUTPUT_AXIS[7]=(Z1)
; Define distance between interpolation points for compensation values in g tables
$AN_CEC_STEP[4]=300.0
$AN_CEC_STEP[5]=300.0
$AN_CEC_STEP[6]=300.0
$AN_CEC_STEP[7]=300.0
;Compensation starts at Y1=0
$AN_CEC_MIN[4]=0.0
$AN_CEC_MIN[5]=0.0
$AN_CEC_MIN[6]=0.0
$AN_CEC_MIN[7]=0.0
;Compensation ends at Y1=900
$AN_CEC_MAX[4]=900.0
$AN_CEC_MAX[5]=900.0
$AN_CEC_MAX[6]=900.0
$AN_CEC_MAX[7]=900.0
; Activate compensation again
$MA_CEC_ENABLE[Z1]=TRUE
NEWCONF
; Carry out a program test to check that the compensation is active
G01 F1000 X0 X0 Z0 G90
R1=0 R2=0
LOOP_Y:
LOOP_X:
STOPRE
X=R1 Y=R2
M0
; Wait to check the CEC value
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
269
Compensations
9.5 Interpolatory compensation
Program code
Comment
R1=R1+500
IF R1 <=2000 GOTOB LOOP_X
R1=0
R2=R2+300
IF R2<=900 GOTOB LOOP_Y
9.5.4
Extension of the sag compensation with NCU link
9.5.4.1
General parameter assignment
Basic and compensation axes
Parameterization of the basic axis (input) and compensation axis (output) of a compensation
table is implemented in conjunction with link axes (see Function Manual "Basic Functions",
Section "Distributed systems") with the following system variables:
• $AN_CEC_INPUT_NCU
• $AN_CEC_INPUT_AXIS
• $AN_CEC_OUTPUT_NCU
• $AN_CEC_OUTPUT_AXIS
The following supplementary conditions must be observed:
• The basic and compensation axes of the sag compensation must be interpolated as channel
axes on the same NCU.
• The corresponding machine axes can be connected to different NCUs.
• The system variables become effective only after a warm restart of the NCU.
• Data backup is undertaken with machine axis names.
General commissioning of the sag compensation
For general commissioning of the sag compensation, see Chapter "Commissioning: Basic
procedure (Page 259)".
9.5.4.2
Parameterization with channel names
The parameterization of basic and compensation axes with channel axis names takes place with
the following system variables:
• Input axis
$AN_CEC_INPUT_AXIS[<CEC table number>] = <channel axis name>
• Output axis
$AN_CEC_OUTPUT_AXIS[<CEC table number>] = <channel axis name>
Monitoring and compensating
270
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.5 Interpolatory compensation
Example: Coupling axis "ZZ" (AX2, NCU 2) to "XR" (AX1, NCU 1)
Two part programs, TP1 for channel 1 and TP2 for channel 2, have to be created. The system
variables of the basic and compensation axes of the compensation table are written to these.
Excerpt from TP1, channel 1: $AN_CEC_INPUT_AXIS[0] = "XR"
Excerpt from TP2, channel 2: $AN_CEC_OUTPUT_AXIS[0] = "ZZ"
9.5.4.3
Parameterization with machine axis names
The parameterization of basic and compensation axes with machine axis names takes place with
the following system variables:
• Basic axis
- $AN_CEC_INPUT_NCU[<CEC table number>] = <NCU number>
- $AN_CEC_INPUT_AXIS[<CEC table number>] = <machine axis name>
• Compensation axes
- $AN_CEC_OUTPUT_NCU[<CEC table number>] = <NCU number>
- $AN_CEC_OUTPUT_AXIS[<CEC table number>] = <channel axis name>
Example: Coupling axis "ZZ" (AX2, NCU 2) to "XR" (AX1, NCU 1)
A part program has to be created, which can be started in any channel of the NCU 1. The system
variables of the basic and compensation axes of the compensation table with machine axis
names and NCU number are written to these.
Part program:
$AN_CEC_INPUT_NCU[0] = 1
$AN_CEC_INPUT_AXIS[0] = "AX1"
$AN_CEC_OUTPUT_NCU[0] = 2
$AN_CEC_OUTPUT_AXIS[0] = "AX2"
Note
• The NCU number must be written to the NC program before the axis names.
• Sag compensation between NC1_AX1 and NC2_AX2 is not possible.
9.5.4.4
Axis container
The sag compensation can also be used in conjunction with container axes (see Function
Manual "Basic Functions", Section "Distributed systems"). It should be noted that when using
container axes, after each axis container rotation, other machine axes are coupled regarding sag
compensation. In order to maintain the coupling between two specific machine axes, even after
an axis container rotation, after each rotation, the system variables to parameterize the basic
and compensation axes must be appropriately newly written to the compensation table by the
user.
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
271
Compensations
9.5 Interpolatory compensation
Requirement
The axis container has to be located in the start position ($AN_AXCTAS == 0) when the sag
compensation is activated.
NOTICE
Changing the machine axes
After a axis container rotation, the same channel axes remain coupled. The coupled machine
axes can change.
9.5.4.5
Configuration example 1: NCU link with rigid coupling
In configuration example 1, the two channels of NCU 1 - and the channel axis names defined
using machine data MD20080 $MC_AXCONF_CHANAX_NAME_TAB - are shown. The
configuration of NCU 2 is not shown.
1&8
1&8
&KDQQHO
&KDQQHO
;5
<5
=5
;;
<<
==
,QWHUSRODWLRQ
,QWHUSRODWLRQ
$;
$;
$;
$;
$;
$;
$;
$;
$;
$;
$;
$;
① Assignment of channel axes to machine axes:
MD20070 $MC_AXCONF_MACHAX_USED[0 ... 2]
② Assignment of logical to real machine axes:
MD10002 $MN_AXCONF_LOGIC_MACHAX_TAB
③ Machine axis names:
MD10000 $MN_AXCONF_MACHAX_NAME_TAB
Figure 9-18
Configuration 1: NCU link with rigid coupling
Channel axis ZZ (NCU1, channel 2) is connected to machine axis AX2 of NCU 2. This means that
in order that machine axis AX2 of NCU 2 traverses, in the 2nd channel of NCU 1, axis ZZ is
traversed. For example, using the following commands in an NC program:
POS[ZZ]=10 FA[ZZ]=1000
Monitoring and compensating
272
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.5 Interpolatory compensation
Parameterization
The machine data of both NCUs is parameterized using the subsequently listed NC programs
NC_P1 and NC_P2.
NC program NC_P1: Parameterization of the machine data for NCU 1
Program code
; ########## NCU1 ##########
; NC-specific machine data
$MN_NCU_LINKNO = 1
$MN_MM_NCU_LINK_MASK = 1
$MN_MM_LINK_NUM_OF_MODULES= 2
$MN_MM_SERVO_FIFO_SIZE = 3
$MN_ASSIGN_CHAN_TO_MODE_GROUP[1]=1
$MN_AXCONF_LOGIC_MACHAX_TAB[0] = "NC1_AX1"
$MN_AXCONF_LOGIC_MACHAX_TAB[1] = "NC1_AX3"
$MN_AXCONF_LOGIC_MACHAX_TAB[2] = "NC2_AX2"
$MN_AXCONF_LOGIC_MACHAX_TAB[3] = "NC1_AX4"
$MN_AXCONF_LOGIC_MACHAX_TAB[4] = "NC1_AX5"
$MN_AXCONF_LOGIC_MACHAX_TAB[5] = "NC2_AX6"
; Channel-specific machine data: Channel 1
CHANDATA(1)
$MC_AXCONF_MACHAX_USED[0]=1
$MC_AXCONF_MACHAX_USED[1]=5
$MC_AXCONF_MACHAX_USED[2]=4
$MC_AXCONF_MACHAX_USED[3]=0
$MC_AXCONF_MACHAX_USED[4]=0
$MC_AXCONF_MACHAX_USED[5]=0
$MC_AXCONF_CHANAX_NAME_TAB[0] = "XR"
$MC_AXCONF_CHANAX_NAME_TAB[1] = "YR"
$MC_AXCONF_CHANAX_NAME_TAB[2] = "ZR"
; Channel-specific machine data: Channel 2
CHANDATA(2)
$MC_REFP_NC_START_LOCK=0
$MC_AXCONF_MACHAX_USED[0]=2
$MC_AXCONF_MACHAX_USED[1]=6
$MC_AXCONF_MACHAX_USED[2]=3
$MC_AXCONF_MACHAX_USED[3]=0
$MC_AXCONF_MACHAX_USED[4]=0
$MC_AXCONF_MACHAX_USED[5]=0
$MC_AXCONF_CHANAX_NAME_TAB[0] = "XX"
$MC_AXCONF_CHANAX_NAME_TAB[1] = "YY"
$MC_AXCONF_CHANAX_NAME_TAB[2] = "ZZ"
M30
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
273
Compensations
9.5 Interpolatory compensation
NC program NC_P2: Parameterization of machine data for NCU 2
Program code
; ########## NCU-2 ##########
; NC-specific machine data
$MN_NCU_LINKNO = 2
$MN_MM_NCU_LINK_MASK = 1
$MN_MM_LINK_NUM_OF_MODULES= 2
$MN_MM_SERVO_FIFO_SIZE = 3
$MN_AXCONF_LOGIC_MACHAX_TAB[0] = "NC2_AX1"
$MN_AXCONF_LOGIC_MACHAX_TAB[1] = "NC1_AX6"
$MN_AXCONF_LOGIC_MACHAX_TAB[2] = "NC2_AX3"
$MN_AXCONF_LOGIC_MACHAX_TAB[3] = "NC2_AX4"
$MN_AXCONF_LOGIC_MACHAX_TAB[4] = "NC2_AX5"
$MN_AXCONF_LOGIC_MACHAX_TAB[5] = "NC1_AX2"
; Channel-specific machine data: Channel 1
CHANDATA(1)
$MC_AXCONF_MACHAX_USED[0]=1
$MC_AXCONF_MACHAX_USED[1]=2
$MC_AXCONF_MACHAX_USED[2]=3
$MC_AXCONF_MACHAX_USED[3]=4
$MC_AXCONF_MACHAX_USED[4]=5
$MC_AXCONF_MACHAX_USED[5]=6
$MC_AXCONF_MACHAX_USED[6]=0
M30
9.5.4.6
Configuration example 2 NCU link with axis container
Configuration example 2 includes an axis container CT1 (see Function Manual "Basic Functions",
Section "Distributed systems"). The parameterization of the axes contained in the axis container
is realized using MD12701 $MN_AXCT_AXCONF_ASSIGN_TAB1. The axis container is a multi-
NCU object that only exists once for all NCUs.
The logical machine axis of channel axis YR refers to slot CT1_SL3 - and channel axis YY to slot
CT1_SL4. The channel axes of NCU2 are not shown.
Container axes are assigned to the following machine axes:
• NC1_AX5
• NC1_AX6
• NC2_AX1
• NC2_AX2
Axis constellation in the initial state of the axis container
In the initial state of the axis container, after the NCUs power up, channel axis YR is connected
with NC2_AX1 and channel axis YY with NC2_AX2.
Monitoring and compensating
274
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.5 Interpolatory compensation
1&8
1&8
.DQDO
DQDO
;5
<5
=5
;;
<<
==
,QWHUSRODWLRQ
,QWHUSRODWLRQ
$[LV
FRQWDLQHU
$;
$;
$;
$;
$;
$;
$;
$;
$;
$;
$;
$;
① MD20070 $MC_AXCONF_MACHAX_USED.
② MD10002 $MN_AXCONF_LOGIC_MACHAX_TAB
③ MD10000 $MN_AXCONF_MACHAX_NAME_TAB
Axis constellation after one axis container step
After the axis container rotates through one step (increment), channel axis YR is connected to
NC2_AX2, and channel axis YY is connected to NC1_AX5.
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
275
Compensations
9.5 Interpolatory compensation
1&8
1&8
&KDQQHO
&KDQQHO
;5
<5
=5
;;
<<
==
,QWHUSRODWLRQ
,QWHUSRODWLRQ
$[LV FRQWDLQHU
$;
$;
$;
$;
$;
$;
$;
$;
$;
$;
$;
$;
① MD20070 $MC_AXCONF_MACHAX_USED.
② MD10002 $MN_AXCONF_LOGIC_MACHAX_TAB
③ MD10000 $MN_AXCONF_MACHAX_NAME_TAB
NC program NC_P1: Parameterization of the machine data for NCU 1
Program code
; ########## NCU1 ##########
; NC-specific machine data
$MN_NCU_LINKNO = 1
$MN_MM_NCU_LINK_MASK = 1
$MN_MM_LINK_NUM_OF_MODULES= 2
$MN_MM_SERVO_FIFO_SIZE = 3
$MN_ASSIGN_CHAN_TO_MODE_GROUP[1]=1
$MN_AXCONF_LOGIC_MACHAX_TAB[0] = "NC1_AX1"
$MN_AXCONF_LOGIC_MACHAX_TAB[1] = "NC1_AX3"
$MN_AXCONF_LOGIC_MACHAX_TAB[2] = "NC2_AX2"
$MN_AXCONF_LOGIC_MACHAX_TAB[3] = "NC1_AX4"
$MN_AXCONF_LOGIC_MACHAX_TAB[4] = "CT1_SL3"
$MN_AXCONF_LOGIC_MACHAX_TAB[5] = "CT1_SL4"
$MN_AXCT_AXCONF_ASSIGN_TAB1[0] = "NC1_AX5"
$MN_AXCT_AXCONF_ASSIGN_TAB1[1] = "NC1_AX6"
$MN_AXCT_AXCONF_ASSIGN_TAB1[2] = "NC2_AX1"
$MN_AXCT_AXCONF_ASSIGN_TAB1[3] = "NC2_AX2"
$SN_AXCT_SWWIDTH[0] = 1
; Channel-specific machine data: Channel 1
CHANDATA(1)
Monitoring and compensating
276
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.5 Interpolatory compensation
Program code
$MC_AXCONF_MACHAX_USED[0]=1
$MC_AXCONF_MACHAX_USED[1]=5
$MC_AXCONF_MACHAX_USED[2]=4
$MC_AXCONF_MACHAX_USED[3]=0
$MC_AXCONF_MACHAX_USED[4]=0
$MC_AXCONF_MACHAX_USED[5]=0
$MC_AXCONF_CHANAX_NAME_TAB[0] = "XR"
$MC_AXCONF_CHANAX_NAME_TAB[1] = "YR"
$MC_AXCONF_CHANAX_NAME_TAB[2] = "ZR"
; Channel-specific machine data: Channel 1
CHANDATA(2)
$MC_REFP_NC_START_LOCK=0
$MC_AXCONF_MACHAX_USED[0]=2
$MC_AXCONF_MACHAX_USED[1]=6
$MC_AXCONF_MACHAX_USED[2]=3
$MC_AXCONF_MACHAX_USED[3]=0
$MC_AXCONF_MACHAX_USED[4]=0
$MC_AXCONF_MACHAX_USED[5]=0
$MC_AXCONF_CHANAX_NAME_TAB[0] = "XX"
$MC_AXCONF_CHANAX_NAME_TAB[1] = "YY"
$MC_AXCONF_CHANAX_NAME_TAB[2] = "ZZ"
M30
NC program NC_P2: Parameterization of machine data for NCU 2
Program code
; ########## NCU-2 ##########
; NC-specific machine data
$MN_NCU_LINKNO = 2
$MN_MM_NCU_LINK_MASK = 1
$MN_MM_LINK_NUM_OF_MODULES= 2
$MN_MM_SERVO_FIFO_SIZE = 3
$MN_AXCONF_LOGIC_MACHAX_TAB[0] = "CT1_SL1"
$MN_AXCONF_LOGIC_MACHAX_TAB[1] = "CT1_SL2"
$MN_AXCONF_LOGIC_MACHAX_TAB[2] = "NC2_AX3"
$MN_AXCONF_LOGIC_MACHAX_TAB[3] = "NC2_AX4"
$MN_AXCONF_LOGIC_MACHAX_TAB[4] = "NC2_AX5"
$MN_AXCONF_LOGIC_MACHAX_TAB[5] = "NC2_AX6"
CHANDATA(1)
; Channel-specific machine data: Channel 1
$MC_AXCONF_MACHAX_USED[0]=1
$MC_AXCONF_MACHAX_USED[1]=2
$MC_AXCONF_MACHAX_USED[2]=3
$MC_AXCONF_MACHAX_USED[3]=4
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
277
Compensations
9.5 Interpolatory compensation
Program code
$MC_AXCONF_MACHAX_USED[4]=5
$MC_AXCONF_MACHAX_USED[5]=6
$MC_AXCONF_MACHAX_USED[6]=0
M30
9.5.5
Direction-dependent leadscrew error compensation
9.5.5.1
Description of functions
If the direction-dependent differences at the compensation points are excessively high, for an
inconsistent backlash or for extremely high demands placed on the precision, then it may be
necessary to apply direction-dependent compensation of the leadscrew error or measuring
system error (for direct position sensing).
Direction-dependent leadscrew error compensation
For the "direction-dependent leadscrew error compensation" ("direction-dependent LEC" or also
"Bidirectional LEC") , two compensation tables are used for each axis. One compensation table
for the positive and one compensation table for the negative traversing direction. The deviation
at the particular compensation point is entered as difference between the ideal setpoint and
measured actual value in the compensation tables. The control automatically calculates
compensation values of intermediate values using linear interpolation.
Preconditions / activation
The "direction-dependent LEC" is implemented in the SINUMERIK control as a special case of "sag
compensation". This is the reason that the preconditions and conditions of "sag compensation"
apply (see "Sag and angularity error compensation (Page 251)").
The activation of the compensation can be checked using a reference measurement, e.g. using
the laser interferometer or in the simplest case, using the service display of the particular axis.
Note
If the "direction-dependent LEC" is used in parallel to the sag compensation and compensation
of the angularity, then the secondary conditions of these functions must be taken into
consideration together, e.g. the assignment of tables <t> to the particular function.
Monitoring and compensating
278
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.5 Interpolatory compensation
9.5.5.2
Commissioning
Measuring the error or compensation values
When commissioning the "direction-dependent LEC" - just the same as when commissioning the
"direction-dependent LEC" - direction-dependent error curves for each axis are determined using
a suitable measuring device (e.g. laser interferometer) (see Section "Leadscrew error and
measuring system error compensation (Page 246)"). A part program with measurement points
and wait times should be generated in order to perform the measurement (see Section "Example
(Page 282)": Program "BI_SSFK_MESS_AX1_X.MPF").
Because the various measuring devices offer different support options for the practical
implementation in conjunction with a SINUMERIK control, this process is only generally
described in the following referred to a control.
Note
The measurement for determining the leadscrew error should only be carried out during the
first commissioning if, in the machine data, the traversing directions of the axes in relation to the
machine coordinate system have been correctly set.
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
279
Compensations
9.5 Interpolatory compensation
Commissioning (principle)
1.
Specify the number of compensation interpolation points (also see Section "Compensation
for droop and angularity error: Commissioning (Page 259)")
For the directional leadscrew error compensation, a compensation table for the positive and
a compensation table for the negative traversing directions must be assigned to each axis.
The number of compensation interpolation points of a table is defined in:
MD18342 $MN_MM_CEC_MAX_POINTS[ <compensation table index> ]
CAUTION
Possible data loss
A change to the machine data MD18342 $MN_MM_CEC_MAX_POINTS, which configures
memory, reconfigures the NC memory the next time the control starts. This can result in the
loss of all user-specific data. See Function Manual "Basic Functions", Section "Memory
configuration".
Creating a commissioning archive:
Operating area: "Commissioning" > "ETC" key > "Commissioning archive" > "Create
commissioning archive" > "OK" > Selection: "NC data"
Example
- X axis: positive traversing direction, table 1, 11 interpolation points
- X axis: negative traversing direction, table 2, 11 interpolation points
Machine data:
- MD18342 $MN_MM_CEC_MAX_POINTS[ 0 ] = 11
- MD18342 $MN_MM_CEC_MAX_POINTS[ 1 ] = 11
2.
Reading in a commissioning archive that has been created:
Operating area: "Commissioning" > "ETC" key > "Commissioning archive" > "Read in
commissioning archive" > "OK"
The compensation tables are then available.
3.
To simplify commissioning, create an NC program by which the compensation parameters
are written into the machine data and system variables (see Section "Example (Page 282)").
4.
Run the NC program on the control:
Mode: "AUTOMATIC" > Select program > NC start
5.
Power-on (warm restart).
6.
Now, comparative measurements can be made using the laser interferometer.
7.
To further improve the compensation results, it is also conceivable to correct individual
compensation values in the program. A POWER ON is no longer necessary when reading-in
the table again.
Monitoring and compensating
280
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.5 Interpolatory compensation
Note
NC_CEC.INI
The "NC_CEC.INI" file copied via "Commissioning" > "System data" (from the folder "NC active
data" > "sag angularity comp") includes all negotiated sag/angularity and direction-dependent
LEC tables.
Note
Backlash
The backlash should be set to 0:
• MD32450 $MA_BACKLASH [ <measuring system> ] = 0
Compensation parameters
The compensation parameters are set via the following system variables:
• $AN_CEC[ <table>,<interpolation point> ] (compensation value)
• $AN_CEC_INPUT_AXIS[ <table> ] (basic axis)
• $AN_CEC_OUTPUT_AXIS[ <table> ] (compensation axis)
Note
For the "directional LEC," the basis and compensation axes are always identical.
• $AN_CEC_STEP[ <table> ] (distance between interpolation points)
• $AN_CEC_MIN[ <table> ] (starting position)
• $AN_CEC_MAX[ <table> ] (end position)
• $AN_CEC_DIRECTION[ <table> ] (direction)
Note
The setting $AN_CEC_DIRECTION[<t>] = 0 (table is effective for both traversing directions of
the basic axis) is not relevant for the "direction-dependent LEC".
• $AN_CEC_IS_MODULO[ <table> ] (compensation with modulo function)
Note
For a description of these system variables, see Section "Compensation of sag and angularity
error: Commissioning (Page 259)".
System of units
See Section "Compensation for droop and angularity error: Commissioning (Page 259)".
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
281
Compensations
9.5 Interpolatory compensation
Monitoring
See Section "Compensation for droop and angularity error: Commissioning (Page 259)".
9.5.5.3
Example
The following examples shows parameterization of the directional compensation tables for an
axis (machine axis AX1). All parameter values of the compensation tables are written by means
of a program.
Compensation parameters
• Basic axis = compensation axis = machine axis AX1
• Distance between interpolation points: 58.0 mm
• Starting position: -585.0 mm
• End position: -5.0 mm
Table definition
The 1st and 2nd compensation table are defined with 11 compensation interpolation points
each for machine axis AX1 as directional compensation tables:
• MD18342 $MN_MM_CEC_MAX_POINTS[ 0 ] = 11 (table 1: positive traversing direction)
• MD18342 $MN_MM_CEC_MAX_POINTS[ 1 ] = 11 (table 2: negative traverse direction)
Interpolation points and correction values
Interpolation points
Deviations or correction values
Deviation with compensation
Index
Position
pos. Traversing di-
neg. Traversing di-
pos. Traversing di-
neg. Traversing di-
[mm]
rection
rection
rection
rection
[mm]
[mm]
[mm]
[mm]
0
-585 1)
0.0000
0.0020
0.0000
-0.0008
1
-527
0.0010
0.0017
-0.0005
-0.0001
2
-469
0.0040
0.0053
-0.0001
-0.0009
3
-411
0.0034
0.0061
0.0001
-0.0009
4
-353
0.0013
0.0030
-0.0005
-0.0006
5
-295
0.0004
0.0016
-0.0002
-0.0003
6
-237
0.0016
0.0027
-0.0004
-0.0007
7
-179
0.0026
0.0043
-0.0004
-0.0004
8
-121
-0.0010
0.0026
0.0000
-0.0011
9
-63
-0.0023
0.0000
-0.0011
-0.0003
10
-5 2)
-0.0031
-0.0012
-0.0001
-0.0012
1) Starting position: $AC_CEC_MIN[ <Table> ]
2) End position: $AC_CEC_MAX[ <Table> ]
Monitoring and compensating
282
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.5 Interpolatory compensation
(UURU FXUYH ; D[LV
3RVLWLRQ ;
; ZLWKRXW FRPSHQVDWLRQ
; ZLWKRXW FRPSHQVDWLRQ
; ZLWK FRPSHQVDWLRQ
; ZLWK FRPSHQVDWLRQ
Programming
The following actions are performed by program "BI_SSFK_TAB_AX1_X.MPF":
• Deactivation of the compensation
• Deactivation of the compensation tables to be written (active tables cannot be written).
• Writing the compensation values into the compensation tables for the positive and negative
traversing direction of the X axis
• Writing the compensation parameters
; directional LEC
; 1st axis AX1
; table 1 - positive traversing direction
; table 2 - negative traversing direction
;--- Deaktivierung der Kompensation und der Tabellen
CHANDATA(1)
$MA_CEC_ENABLE[AX1]=0
; compensation OFF
$SN_CEC_TABLE_ENABLE[0]=0
; lock Table 1
$SN_CEC_TABLE_ENABLE[1]=0
; lock Table 2
NEWCONF
;--- 1. Kompensationstabelle, positive Verfahrrichtung
;------ Kompensationswerte
$AN_CEC[0,0]=0
; correction value interpolation point 0
$AN_CEC[0,1]=0.001
; correction value interpolation point 1
$AN_CEC[0,2]=0.004
; correction value interpolation point 2
$AN_CEC[0,3]=0.0034
; correction value interpolation point 3
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
283
Compensations
9.5 Interpolatory compensation
$AN_CEC[0,4]=0.0013
; correction value interpolation point 4
$AN_CEC[0,5]=0.0004
; correction value interpolation point 5
$AN_CEC[0,6]=0.0016
; correction value interpolation point 6
$AN_CEC[0,7]=0.0026
; correction value interpolation point 7
$AN_CEC[0,8]=-0.001
; correction value interpolation point 8
$AN_CEC[0,9]=-0.0023
; correction value interpolation point 9
$AN_CEC[0,10]=-0.0031
; correction value interpolation point 10
; ------ Kompensationsparame-
ter
$AN_CEC_INPUT_AXIS[0]=(AX1)
; basic axis
$AN_CEC_OUTPUT_AXIS[0]=(AX1)
; compensation axis
$AN_CEC_STEP[0]=58.0
; distance between interpolation points
$AN_CEC_MIN[0]=-585.0
; starting position
$AN_CEC_MAX[0]=-5.0
; end position
$AN_CEC_DIRECTION[0]=1
; table applies to positive traversing directions
$AN_CEC_MULT_BY_TABLE[0]=0
; no multiplication (not relevant here)
$AN_CEC_IS_MODULO[0]=0
; compensation without modulo function
;--- 2. Kompensationstabelle, negative Verfahrrichtung
;------ Kompensationswerte
$AN_CEC[1,0]=0.002
; correction value interpolation point 0
$AN_CEC[1,1]=0.0017
; correction value interpolation point 1
$AN_CEC[1,2]=0.0053
; correction value interpolation point 2
$AN_CEC[1,3]=0.0061
; correction value interpolation point 3
$AN_CEC[1,4]=0.003
; correction value interpolation point 4
$AN_CEC[1,5]=0.0016
; correction value interpolation point 5
$AN_CEC[1,6]=0.0027
; correction value interpolation point 6
$AN_CEC[1,7]=0.0043
; correction value interpolation point 7
$AN_CEC[1,8]=0.0026
; correction value interpolation point 8
$AN_CEC[1,9]=0.000
; correction value interpolation point 9
$AN_CEC[1,10]=-0.0012
; correction value interpolation point 10
; ------ Kompensationsparame-
ter
$AN_CEC_INPUT_AXIS[1]=(AX1)
; basic axis
$AN_CEC_OUTPUT_AXIS[1]=(AX1)
; compensation axis
$AN_CEC_STEP[1]=58.0
; distance between interpolation points
$AN_CEC_MIN[1]=-585.0
; starting position
$AN_CEC_MAX[1]=-5.0
; end position
$AN_CEC_DIRECTION[1]=-1
; table applies to negative traversing directions
$AN_CEC_MULT_BY_TABLE[1]=0
; no multiplication (not relevant here)
$AN_CEC_IS_MODULO[1]=0
; compensation without modulo function (for rotary
axes only)
;--- Aktivierung der Kompensation und der Tabellen
$MA_CEC_ENABLE[AX1]=1
; compensation ON
$SN_CEC_TABLE_ENABLE[0]=1
; enable table 1
$SN_CEC_TABLE_ENABLE[1]=1
; enable table 2
NEWCONF
Monitoring and compensating
284
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.5 Interpolatory compensation
M17
; end of program
9.5.6
Cylinder error compensation
9.5.6.1
Options
The following option is required to use the "Cylindrical error compensation" function:
• SINUMERIK Grinding Advanced (6FC5800-0AS35-0YB0)
9.5.6.2
Function
The cylinder error compensation is used to compensate for clamping errors for cylindrical
grinding. In this case, a shift and/or rotation of the workpiece in the machining plane is
compensated.
Contrary to Sag and angularity error compensation (Page 251), which is used as basis for
cylinder error compensation, only two interpolation points are used to define the compensation
function (straight line).
;
=
① Set position of the cylinder
② Actual position of the cylinder
Figure 9-19
Cylinder error due to incorrect clamping
9.5.6.3
Commissioning
Number
Identifier
Meaning
SD41300
$SN_CEC_TABLE_ENABLE
Compensation table enable
SD41310
$SN_CEC_TABLE_WEIGHT
Weighting factor
SD41320
$SN_CEC_0
Compensation value at the starting position
SD41321
$SN_CEC_1
Compensation value at the end position
SD41330
$SN_CEC_BAS_0
Measuring point P1: Basic value
SD41331
$SN_CEC_BAS_1
Measuring point P2: Basic value
SD41335
$SN_CEC_BAS_STORE_0
Bit memories for measuring point P1: Basic value
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
285
Compensations
9.5 Interpolatory compensation
Number
Identifier
Meaning
SD41336
$SN_CEC_BAS_STORE_1
Bit memories for measuring point P2: Basic value
SD41340
$SN_CEC_COMP_0
Measuring point P1: Cylinder error
SD41341
$SN_CEC_COMP_1
Measuring point P2: Cylinder error
SD41350
$SN_CEC_COMP_STORE_0
Bit memories for measuring point P1: Cylinder error
SD41351
$SN_CEC_COMP_STORE_1
Bit memories for measuring point P2: Cylinder error
SD41355
$SN_CEC_CALC
Start of calculation by 0/1 edge
SD41356
$SN_CEC_CALC_ADD
Absolute or additive compensation values
Note
Table index
All of the subsequently described machine data, setting data and system variables with the
same index <t> belong to the same compensation table.
Compensation function
The compensation function of the cylinder error compensation is a straight line with the form:
ΔX = m*Z + b
ΔX:
Compensation value for the set position of the compensation axis
m:
Gradient of the compensation straight lines
Z:
Set position of the basic axis
b: Offset of the compensation straight lines
Measuring points
To enable the control to calculate the compensation function, the error in the compensation axis
must be measured at two points on the clamped cylindrical workpiece. In the following figure,
in accordance with the machining plane G18 (Z/X) that is usual in grinding, the basic axis is
designated Z and the compensation axis, X.
Monitoring and compensating
286
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.5 Interpolatory compensation
61B&(&B&203B > W!@
61B&(&B&203B > W!@
;
=
61B&(&B%$6B > W!@
61B&(&B%$6B > W!@
① Measuring point P1
② Measuring point P2
---
$SN_CEC_BAS_0/_1 : Positions of the measuring points in the basic axis (Z)
---
$SN_CEC_COMP_0/_1: Cylinder error at the measuring points in the compensation axis (X)
---
∅ D1 == ∅ D2
Figure 9-20
Measuring points of the cylinder error compensation
The measuring points must meet the following condition:
ZP1 < ZP2 ⇒ $SN_CEC_BAS_0 < $SN_CEC_BAS_1
Basic commissioning
Cylinder error compensation is based on sag compensation (CEC) (Page 251). As a consequence,
before commissioning the cylinder error compensation, the following compensation
parameters must first be set in the system variables of the sag compensation. To this end, the
required values are written to the system variables in an NC program.
Program code
Comment
$AN_CEC_INPUT_AXIS[<t>] = "<basic axis>"
; name of the basic axis
$AN_CEC_OUTPUT_AXIS[<t>] = "<compensa-
; name of the compensation axis
tion axis>"
$AN_CEC_MIN[<t>] = <starting position>
; starting position of the traversing
range in which the compensation should be
effective
$AN_CEC_MAX[<t>] = <end position>
; end position of the traversing range in
which the compensation should be effective
$AN_CEC_STEP[<t>] = <distance between in-
; distance between interpolation point =
terpolation points>
end position - starting position
$AN_CEC_DIRECTION[<t>] = 0
; no dependency on the direction
$AN_CEC_IS_MODULO[<t>] = FALSE
; no modulo functionality
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
287
Compensations
9.5 Interpolatory compensation
Program code
Comment
$AN_CEC_MULT_BY_TABLE[<t>] = 0
; no multiplication with another table
$AN_CEC_TYPE = 1
; compensation type = cylinder error com-
pensation
Distance between interpolation points ($AN_CEC_STEP[t])
Because the compensation function is a straight line, only two interpolation points are required
for the cylinder error compensation. The distance between the interpolation points is therefore
the difference between the end and the starting position:
$AN_CEC_STEP[<t>] = $AN_CEC_MAX[<t>] - $AN_CEC_MIN[<t>]
Setting the cylinder error compensation
The following shows the principle approach when setting cylinder compensation.
1. Definition of whether the actual compensation values take effect absolutely or relatively:
Setting data
Meaning
SD41356
$SN_CEC_CALC_ADD[<t>]
Absolute or additive compensation values (0: ab-
solute, 1: relative)
2. Definition of the weighting factor to which the compensation values are added:
Setting data
Meaning
SD41310
$SN_CEC_TABLE_WEIGHT[<t>]
Weighting factor
The characteristic curve can be moved vertically via the weighting factor.
3. Determining the error in the direction of the compensation axis (X) at two measuring points.
4. Transfer the measuring points (basic value and error or compensation value) to the
compensation data:
Basic value (Z)
Compensation value (X)
Measuring point
SD41330 $SN_CEC_BAS_0[<t>]
SD41340 $SN_CEC_COMP_0[<t>]
P1
Measuring point
SD41331 $SN_CEC_BAS_1[<t>]
SD41341 $SN_CEC_COMP_1[<t>]
P2
5. Triggering a positive edge change (0→1) at the start of calculation of the compensation
function:
Setting data
Meaning
SD41355
$SN_CEC_CALC[<t>]
Start of calculation by 0→1 edge
Monitoring and compensating
288
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.5 Interpolatory compensation
6.
The control calculates the compensation values for the starting and end points of the
compensation straight lines, absolute or relative, depending on setting data SD41356
$SN_CEC_CALC_ADD[<t>]:
Absolute:
- SD41320 $SN_CEC_0[<t>] = <calculated compensation value at the starting position>
- SD41321 $SN_CEC_1[<t>] = <calculated compensation value at the end position>
Relative:
- SD41320 $SN_CEC_0[<t>] = SD41320 $SN_CEC_0[<t>] + <calculated compensation
value at the starting position>
- SD41321 $SN_CEC_1[<t>] = SD41321 $SN_CEC_1[<t>] + <calculated compensation
value at the end position>
Setting data
Meaning
SD41320
$SN_CEC_0[<t>]
Compensation value at the starting position
SD41321
$SN_CEC_1[<t>]
Compensation value at the end position
The measured values are written into bit memories after the calculation and then deleted:
- Bit memory = measured value
- Measured value = 0.0
Setting data
Meaning
Bit memory
SD41335
$SN_CEC_BAS_STORE_0[<t>]
Bit memories for measuring point P1: Base value
SD41350
$SN_CEC_COMP_STORE_0[<t>]
Bit memories for measuring point P1: Cylinder
error
SD41336
$SN_CEC_COMP_STORE_0[<t>]
Bit memories for measuring point P2: Base value
SD41351
$SN_CEC_COMP_STORE_1[<t>]
Bit memories for measuring point P2: Cylinder
error
Deleted measured values
SD41330
$SN_CEC_BAS_0[<t>]
Measuring point P1: Base value
SD41340
$SN_CEC_COMP_0[<t>]
Measuring point P1: Cylinder error
SD41331
$SN_CEC_BAS_1[<t>]
Measuring point P2: Base value
SD41341
$SN_CEC_COMP_1[<t>]
Measuring point P2: Cylinder error
7.
Set enable for use of the compensation table:
Setting data
Meaning
SD41300
$SN_CEC_TABLE_ENABLE[<t>]
Compensation table enable
Note
SINUMERIK Toolbox
File CNC_TAB_CONF.MPF is also provided in the SINUMERIK Toolbox. It includes an example how
cylinder error compensation can be parameterized within an NC program.
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
289
Compensations
9.5 Interpolatory compensation
9.5.6.4
Examples
In the following examples, for the cylinder error compensation, the first compensation table
(index 0) is used.
Example 1: Cylinder error compensation with absolute compensation values
Overview of the compensation parameters determining the characteristic
For the example, the compensation parameters shown in the following figure are used.
61B&(&B&203B > @
61B&(&B&203B > @
;
=
61B&(&B%$6B > @
61B&(&B%$6B > @
$1B&(&B0,1> @
$1B&(&B0$;> @
$1B&(&B67(3> @
General compensation data
Setting data $SN_...
Value
Meaning
SD41300
CEC_TABLE_ENABLE[0]
FALSE
Enable
SD41310
CEC_TABLE_WEIGHT[0]
1
Weighting factor
SD41356
CEC_CALC_ADD[0]
FALSE
Absolute compensation values 1)
1) The compensation values calculated below are written into the setting data SD41320 $SN_CEC_0[0]
and SD41321 $SN_CEC_1[0], i.e. they are applied absolutely. In case of TRUE, they would be added to the
existing compensation values.
Axes, compensation range, and table properties
System variable $AN_...
Value
Meaning
CEC_INPUT_AXIS[0]
(Z)
Basic axis
CEC_OUTPUT_AXIS[0]
(X)
Compensation axis
CEC_MIN[0]
-400,000
Starting position
mm
CEC_MAX[0]
400,000
End position
mm
Monitoring and compensating
290
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.5 Interpolatory compensation
System variable $AN_...
Value
Meaning
CEC_STEP[0]
800,000
Distance between interpolation points
mm
CEC_DIRECTION[0]
0
The compensation table applies to both travers-
ing directions of the basic axis.
CEC_IS_MODULO[0]
FALSE
No modulo function is active
CEC_MULT_BY_TABLE[0]
0
No table multiplication is active
Measuring points
Setting data $SN_...
Value
Meaning
SD41330
CEC_BAS_0[0]
110.0 mm
Measuring point P1: Base value
SD41331
CEC_BAS_1[0]
210.0 mm
Measuring point P2: Base value
SD41340
CEC_COMP_0[0]
0.001 mm
Measuring point P1: Cylinder error
SD41341
CEC_COMP_1[0]
0.002 mm
Measuring point P2: Cylinder error
Calculation of the compensation values
Calculation of the compensation values is performed by the control based on a rising edge
(0→1) in setting data SD41355 $SN_CEC_CALC[0]. The calculations shown below are therefore
only for illustration.
• Compensation function ΔX = f(Z):
;3
;3
˂; P
= E
= E
=3
=3
• Calculation of the gradient m:
6'
61B&(&B&203B > @
6'
61B&(&B&203B > @
P
6'
61B&(&B%$6B > @
6'
61B&(&B%$6B > @
• Calculating the offset b → measuring point P1(110.0, 0.001) and (2) used in (1):
0.001 = 1*10-5 * 110.0 + b
b = -1*10-4
(3)
• Resulting compensation function → (3) and (2) used in (1):
ΔX = 1*10-5 * Z - 1*10-4
• Calculating the compensation values → starting or end position used in (4):
SD41320 $SN_CEC_0[0] = ΔXCOMP_0 = 1*10-5 * -400000 - 1*10-4 = -4.0001
SD41321 $SN_CEC_1[0] = ΔXCOMP_1 = 1*10-5 * 400000 - 1*10-4 = 3.9999
Setting data $SN_...
Value
Meaning
SD41320
CEC_0[0]
-4.0001
Compensation value at the starting position
mm
SD41321
CEC_1[0]
3.9999
Compensation value at the end position
mm
SD41330
CEC_BAS_0[0]
0.0 mm
Measuring point P1: Base value (deleted)
SD41331
CEC_BAS_1[0]
0.0 mm
Measuring point P2: Base value (deleted)
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
291
Compensations
9.5 Interpolatory compensation
Setting data $SN_...
Value
Meaning
SD41335
CEC_BAS_STORE_0[0]
110.0 mm
Bit memories for measuring point P1: Base value
SD41336
CEC_BAS_STORE_1[0]
210.0 mm
Bit memories for measuring point P2: Base value
SD41340
CEC_COMP_0[0]
0.0 mm
Measuring point P1: Cylinder error (deleted)
SD41341
CEC_COMP_1[0]
0.0 mm
Measuring point P2: Cylinder error (deleted)
SD41350
CEC_COMP_STORE_0[0]
0.001 mm
Bit memories for measuring point P1: Cylinder
error
SD41351
CEC_COMP_STORE_1[0]
0.002 mm
Bit memories for measuring point P2: Cylinder
error
Example 2: Cylinder error compensation with relative compensation values
Example 2 based on the compensation data of example 1. The cylinder error compensation is
also realized using the first compensation table (index 0).
In example 2, the cylinder error is determined only at two measuring points, unlike example 1.
The compensation values are to apply relatively, i.e. they are added to the existing
compensation values from example 1.
General compensation data
Setting data $SN_...
Value
Meaning
SD41356
CEC_CALC_ADD[0]
TRUE
Relative compensation values 1)
1) The compensation values calculated below are added to the setting data SD41320 $SN_CEC_0[0] and
SD41321 $SN_CEC_1[0].
Measuring points
Setting data $SN_...
Value
Meaning
SD41330
CEC_BAS_0[0]
10.0 mm
Measuring point P1: Base value
SD41331
CEC_BAS_1[0]
410.0 mm
Measuring point P2: Base value
SD41340
CEC_COMP_0[0]
0.0 mm
Measuring point P1: Cylinder error
SD41341
CEC_COMP_1[0]
-0.003
Measuring point P2: Cylinder error
mm
Monitoring and compensating
292
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.5 Interpolatory compensation
Calculation of the compensation values
Calculation of the compensation values is performed by the control based on a rising edge
(0→1) in setting data SD41355 $SN_CEC_CALC[0]:
• Compensation function: ΔX = m * Z + b = -7.5*10-6 * Z + 7.5*10-5
• Calculated compensation values:
- ΔXCOMP_0 = 3.000075 mm
- ΔXCOMP_1 = -2.999925 mm
• Adding the calculated compensation values to the actual compensation values:
- SD41320 $SN_CEC_CEC_0[0] = SD41320 $SN_CEC_CEC_0[0] + ΔXCOMP_0 = -4.0001 mm +
3.000075 = -1.000025 mm
- SD41321 $SN_CEC_CEC_1[0] = SD41321 $SN_CEC_CEC_1[0] + ΔXCOMP_1 = 3.9999 mm -
2.999925 mm = 0.999975
Setting data $SN_CEC_...
Value
Meaning
SD41320
CEC_0[0]
-1.000025
Compensation value at the starting position
mm
SD41321
CEC_1[0]
0.999975
Compensation value at the end position
mm
SD41330
CEC_BAS_0[0]
0.0 mm
Measuring point P1: Base value (deleted)
SD41331
CEC_BAS_1[0]
0.0 mm
Measuring point P2: Base value (deleted)
SD41335
CEC_BAS_STORE_0[0]
10.0 mm
Bit memories for measuring point P1: Base value
SD41336
CEC_BAS_STORE_1[0]
410.0 mm
Bit memories for measuring point P2: Base value
SD41340
CEC_COMP_0[0]
0.0 mm
Measuring point P1: Cylinder error (deleted)
SD41341
CEC_COMP_1[0]
0.0 mm
Measuring point P2: Cylinder error (deleted)
SD41350
CEC_COMP_STORE_0[0]
0.0 mm
Bit memories for measuring point P1: Cylinder
error
SD41351
CEC_COMP_STORE_1[0]
-0.003
Bit memories for measuring point P2: Cylinder
mm
error
9.5.7
Supplementary conditions
Compensated actual position
The following functions are based on the compensated actual position:
• Measurement
• Teach In
• Software limit switch
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
293
Compensations
9.5 Interpolatory compensation
Displaying the actual position
The actual position of the axis without compensation (ideal machine) is displayed in the actual
position display in the machine coordinate system.
The actual position of the axis with compensation (MSEC and backlash compensation) is
displayed in the service display "Axis/spindle" ("Diagnostics" operating area).
Displaying the compensation values
The following compensation values are also output in the "Axis/spindle" service display
(operating area "Diagnosis"):
• "Absolute compensation value measuring system 1" or 2
The value displayed is the sum of the compensation values of MSEC, obtained from the actual
position of the basic and compensation axis, and backlash compensation.
• Compensation, sag + temperature
The value displayed is the sum of the compensation values of sag and temperature
compensation, obtained from the actual position of the basic and compensation axis.
Loss of the referenced status of the basic axis
If the referenced status of the active measuring system of the basic axis changes from
"Referenced/synchronized" to "Not referenced/synchronized" (DB31, ... DBX60.4 or .5: 1→0),
then the MSEC and/or sag compensation is deactivated in the corresponding axis (basic/
compensation axis).
If the referenced status of the active measuring system of the basic axis then changes from "Not
referenced/synchronized" to "Referenced/synchronized" (DB31, ... DBX60.4 or .5: 0→1), then
the MSEC and/or sag compensation is reactivated in the corresponding axis (basic/
compensation axis).
Controller enable signals
If a compensation relationship is active, then the controller enable (DB31, ... DBX2.1) should
always be set the same for the basic and compensation axes.
Traversing signal output
The traversing signals of the compensation axis are only when the compensation function is
activated/deactivated and when the number of active compensation tables changes.
Traversing motion of the compensation axis, resulting from motion of the basic axis, does not
result in the output of traversing signals in the compensation axis.
Monitoring and compensating
294
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.6 Dynamic feedforward control (following error compensation)
9.6
Dynamic feedforward control (following error compensation)
9.6.1
General properties
Axial following error
The remaining system deviation of the position controller when traversing a machining axis is
known as axial following error. In other words, the axial following error is the difference between
the setpoint position and the actual position of the machine axis with a velocity which is not
equal to "0".
Effects
Particularly during acceleration in contour curvatures, e.g. circles and corners, this following
error leads to undesirable, velocity-dependent contour violations.
Compensation
The axial following error can be reduced almost to zero with the help of the "dynamic
feedforward control". The function is therefore also called "following error compensation".
Reduction of the following errors in the interpolating axes also ensures that the contour errors
are less velocity-dependent and contour distortions are minimized.
Methods
There are two "dynamic feedforward control" methods:
• Speed feedforward control (velocity-dependent)
• Torque feedforward control (acceleration-dependent)
Activation
The feedforward control method is selected and activated using the machine data:
MD32620 $MA_FFW_MODE (feedforward control mode)
Setting $MA_FFW_MODE = 4 is recommended to avoid contour errors.
Value
Meaning
0
No feedforward control
1
Speed feedforward control with PT1 balancing
2
Torque feedforward control with PT1 balancing
3
Speed feedforward control with Tt balancing
4
Torque feedforward control with Tt balancing
Modes 1 and 2 are additionally provided for compatibility purposes.
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
295
Compensations
9.6 Dynamic feedforward control (following error compensation)
Activation/deactivation in part program
The following axis-specific machine data can be used to define that the feedforward control for
the respective axis/spindle can be activated and deactivated by the part program:
MD32630 $MA_FFW_ACTIVATION_MODE (activate feedforward control from program)
Value
Meaning
0
The feedforward control cannot be activated and deactivated from the part program. This
means that the state specified using MD32620 $MA_FFW_MODE is always effective for the axis/
spindle.
1
The feedforward control can be activated and deactivated from the part program. The operation
becomes active immediately.
2
The feedforward control can be activated and deactivated from the part program. The operation
only becomes active the next time that the axis comes to a standstill.
The feedforward control is activated/deactivated from the part program using the operations:
FFWON: Feedforward control ON
FFWOF: Feedforward control OFF
The default setting (i.e. M30 even after reset) is entered using the channel-specific machine data:
MD20150 $MC_GCODE_RESET_VALUES (initial setting of the G groups)
FFWON/FFWOF is active for all axes/spindles in the axis mode, where:
MD32630 $MA_FFW_ACTIVATION_MODE = 1 (or 2)
and
MD32620 $MA_FFW_MODE = 1, 2, 3 or 4
The identical MD32630 setting should be used for axes that interpolate with each other.
The feedforward control should only be activated or deactivated while the axis/spindle is
stationary in the axis mode, in order to prevent jerky motion. Hence the switchover is delayed
automatically up to the next standstill through block search stop.
If the axes are optimized with feedforward control, it is recommended that the feedforward
control is not switched off in the part program.
MD32630=0 is recommended in this regard.
Note
A preprocessing stop has no effect for command or PLC axes traversing asynchronously to the
part program processing. To ensure that FFWON/FFWOF only has an effect on the axis/spindle
when it is next stationary in the axis mode, you must explicitly set MD32630 = 2 for each axis/
spindle in the axis mode (see also "Forward feed control for command- and PLC axes
(Page 301)").
Monitoring and compensating
296
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.6 Dynamic feedforward control (following error compensation)
9.6.2
Speed feedforward control
Function
In the case of speed feedforward control, a velocity setpoint is also applied directly to the input
of the speed controller. With this value the following error can be reduced to nearly zero (i.e.
system deviation is 0) when the velocity is constant.
Commissioning
The following axis-specific parameters must be defined for the speed feedforward control during
commissioning:
1&.
'ULYH
0'
0$B )):B02'(
3RVLWLRQ
6HWSRLQW
)HHGIRUZDUG
6SHHG
FRQ
UHIHUHQFH YDOXH
FRQWURO
FRQWUROOHU
WUROOHU
3RVLWLRQ DFWXDO YDOXH
0'
0$B9(/2B)):B:(,*+7
0'
0$B(48,9B63(('&75/B7,0(
Equivalent time constant of the speed control loop (MD32810)
The equivalent time constant of the speed control loop must be determined accurately (e.g.
graphically from a speed setpoint step response) and entered into the following machine data
to correctly set the speed feedforward control:
MD32810 $MA_EQUIV_SPEEDCTRL_TIME (equivalent time constant speed control loop for
feedforward control)
Feedforward control factor for speed feedforward control (MD32610)
The additional velocity setpoint can be weighted using a factor:
MD32610 $MA_VELO_FFW_WEIGHT
Value range: 0 ... 1
"0" means: no feedforward control. As standard, the factor has a value of 1 (≙ 100%).
The factor should remain set at 100%, as this value is the optimum setting for an optimally set
control loop for the axis/spindle as well as a precisely determined equivalent time constant of the
speed control loop.
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
297
Compensations
9.6 Dynamic feedforward control (following error compensation)
Fine adjustment
The speed feedforward control for the particular axis/spindle can be optimized by making slight
changes (fine tuning) to the equivalent time constants of the speed control loop (MD32810).
Fine adjustment (equivalent time constant, moment of inertia) can also be determined
automatically via AST (AutoServoTuning). Calibration of the interpolating axes ("Dynamic
response adaptation") is likewise performed by the AST.
To make this check, the axis/spindle should be traversed at a constant velocity and in the service
display "Axis/spindle", the "System deviation" should be checked.
A small acceleration and a high feedrate should be chosen so that the values can be easily read
on the service display. This produces very long acceleration phases from which it is easy to read
off the control deviation.
Example:
MD32300 $MA_MAX_AX_ACCEL = 0.1
; Maximum axis acceleration = 0.1 m/s2
MD32000 $MA_MAX_AX_VELO = 20000.0
; Maximum axis velocity
= 20000.0 mm/min
; Part program for setting the equivalent time constant
G1 F20000
FFWON
LOOP:
X1000
X0
GOTOB LOOP
M30
Further information
For detailed information about setting the equivalent time constants of the speed control loop
(MD32810) refer to:
• Function Manual Axes and Spindles; Velocities, setpoint/actual value systems, closed-loop
control (G2), optimizing the closed-loop control
9.6.3
Torque feedforward control
Function
In the case of torque feedforward control, an additional current setpoint proportional to the
torque is applied directly to the current controller input. This value is formed using the
acceleration and moment of inertia.
Monitoring and compensating
298
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.6 Dynamic feedforward control (following error compensation)
Application
Torque feedforward control is required to achieve high contour accuracy where the demands on
the dynamic response are very high. If set correctly, the following error can almost be completely
compensated even during high acceleration.
Commissioning
The following axis-specific parameters must be defined during commissioning for torque
feedforward control:
1&.
'ULYH
0'
0$B )):B02'(
3RVLWLRQ
&XUUHQW
6HWSRLQW
3UHFRQ
6SHHG
FRQWURO
FRQWURO
VHWSRLQW
WURO
FRQWUROOHU
OHU
OHU
$FWXDO SRVLWLRQ
YDOXH
0'
0$B$;B,1(57,$
0'
0$B(48,9B&855&75/B7,0(
Equivalent time constant of the current control loop (MD32800)
The equivalent time constant of the current control loop must be determined accurately (e.g.
graphically from the step response of the current control loop) and entered in the following
machine data in order to correctly set the torque feedforward control:
MD32800 $MA_EQUIV_CURRCTRL_TIME (equivalent time constant current control loop for
feedforward control)
Total moment of inertia of axis (MD32650)
The torque feedforward control already offers advantages over the speed feedforward control -
even if the actual moment of inertia is not precisely known. It is recommended for load-
dependent axes that the empty axis is measured and the resulting total inertia applied. For fine
tuning of the AX_INERTIA::
MD32650 $MA_AX_INERTIA (inertia for torque feedforward control)
Fine adjustment
The torque feedforward control for the particular axis/spindle can be optimized by making slight
changes (fine tuning) to the values in MD32800 and MD32650. Fine adjustment (equivalent
time constant, moment of inertia) can be determined automatically via AST (AutoServoTuning).
Calibration of the interpolating axes ("Dynamic response adaptation") is likewise performed by
the AST.
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
299
Compensations
9.6 Dynamic feedforward control (following error compensation)
The position controller difference can be recorded via the trace functionality as verification. In
addition to traversing at a constant velocity, the following error should be monitored especially
when the axis/spindle accelerates.
Note
As a result of the extremely fast sequences when accelerating, when commissioning the torque
feedforward control, the service display cannot be used to check the fine adjustment.
Further information
For detailed information about setting the equivalent time constants of the current control loop
(MD32810) refer to:
• Function Manual Axes and Spindles; Velocities, setpoint/actual value systems, closed-loop
control, optimizing the closed-loop control
9.6.4
Dynamic response adaptation
Function
For axes that interpolate with one another, but with different axial control loop response times,
dynamic response adaptation can be used to achieve identical time responses of all axes to
ensure optimum contour accuracy without loss of control quality.
Commissioning
Time constant for dynamic response adaptation (MD32910)
The difference between the equivalent time constants of the "slowest" speed or current control
loop and the particular axis should be entered as time constant for the dynamic response
adaptation in the following machine data.
MD32910 $MA_DYN_MATCH_TIME (time constant of dynamic response adaptation)
Example:
Equivalent time constants of the speed control loop (MD32810) for active speed feedforward
control of axes 1, 2 and 3:
• Axis 1: 2 ms
• Axis 2: 4 ms (dynamically the slowest axis)
• Axis 3: 1 ms
Monitoring and compensating
300
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.6 Dynamic feedforward control (following error compensation)
This means that the following values are obtained for the time constant of the dynamic response
adaptation MD32910:
• Axis 1: 2 ms
• Axis 2: 0 ms
• Axis 3: 3 ms
Activation (MD32900)
The dynamic response adaptation is only active if the following machine data is set:
MD32900 $MA_DYN_MATCH_ENABLE= 1
Further filters
Additional filters can be used for dynamic response adaptation:
• MD32890 $MA_DESVAL_DELAY_ENABLE (axial phase filter setpoint)
• MD32895 $MA_DESVAL_DELAY_TIME (time constant for the axial phase filter setpoint)
Further information
Function Manual Axes and Spindles; Velocities, setpoint/actual value systems, closed-loop
control, optimizing the closed-loop control
9.6.5
Forward feed control for command- and PLC axes
Function
For command and PLC axes, it must be prevented that the feedforward control is activated/
deactivated at higher velocities as follows:
MD32630 $MA_FFW_ACTIVATION_MODE = 2
With this setting, the FFWON/FFWOF operation only becomes active below the stationary
velocity (MD36060 $MA_STANDSTILL_VELO_TOL) configured for this particular axis.
If the switchover instruction coincides with an axis motion, the required switchover is executed
only in the next stoppage condition of the axis. This avoids the following error being suddenly
established/reduced.
Note
A stoppage velocity set to a very high value can lead to the changeover of the feedforward
control in the movement. Controls can be activated depending on the existing following error.
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
301
Compensations
9.6 Dynamic feedforward control (following error compensation)
Commissioning
We recommend the following procedure when checking the feedforward control for command
and PLC axes:
1. Check the stoppage velocity in MD36060.
2. Check the existing following error of the axis in stoppage condition.
3. Setting the changeover condition and activating it:
MD32630 = 2
4. Traverse axis in the part program using the POSA operation.
5. Execute FFWON during the axis motion.
6. The KV factor and following error displayed in the service display "Axis/spindle" must not jump.
7. A higher KV factor and a lower following error are only obtained for traversing motion
following standstill. However, the feedforward control is active only from the stoppage
condition.
Essentially the same as when activating the feedforward control, for deactivation, the following
applies:
1. Traverse axis in the part program using the POSA operation.
2. Execute FFWOF during the axis motion.
3. The KV factor and following error displayed in the service display "Axis/spindle" must not jump.
4. A lower KV factor and a higher following error are only obtained for traversing motion
following standstill. However, the feedforward control is inactive only from the stoppage
condition.
Example
In the following program example, axis A is traversed asynchronously to the path. An attempt is
made to activate the feedforward control in the channel while traversing. Contrary to the
geometry axes X, Y and Z, the feedforward control is not immediately effective for axis A. Here
one waits for the stoppage after N60. Axis A then traverses with the feedforward control in N70.
Program code
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
Monitoring and compensating
302
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.6 Dynamic feedforward control (following error compensation)
9.6.6
Secondary conditions
Axes that are interpolating axes with one another
Also for axes that interpolate with one another, the feedforward control parameter should be
optimally set for each axis, i.e. also several axes that are interpolating with one another can
have different feedforward control parameters.
Check contour monitoring
As the two equivalent time constants:
• MD32810 $MA_EQUIV_SPEEDCTRL_TIME (equivalent time constant speed control loop for
feedforward control)
and
• MD32800 $MA_EQUIV_CURRCTRL_TIME) (equivalent time constant current control loop for
feedforward control)
also influence the contour monitoring, this should be subsequently checked.
Further information
Axis monitoring functions (Page 149)
Influence on the servo gain factor (KV factor)
When the feedforward control is set correctly, the response to setpoint changes in the controlled
system under speed feedforward control is as dynamic as that of the speed control loop or, under
torque feedforward control, as that of the current control loop, i.e. the servo gain factor
(KVfactor) entered into MD32200 $MA_POS_CTRLGAIN hardly has any effect on the control
behavior (e.g. corner errors, overshoots, circle/radius errors).
On the other hand, feedforward control does not affect the response to disturbances
(synchronism). In this case, the servo gain factor (KV factor) entered in MD32200 is the active
factor.
Service display "KV factor"
When a feedforward control is active, the servo gain (KV factor) of the axis (corresponds to servo
gain factor (KVfactor) active as response to setpoint changes) shown in the service display "axis/
spindle" is very high.
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
303
Compensations
9.8 Friction compensation with a constant compensation value
9.7
Friction compensation overview
In addition to the mass inertia and the machining forces, the friction forces in the gearing and
guideways of the machine influence the dynamic behavior of a machine axis. In particular, when
accelerating a machine axis from standstill, the transition from static to sliding friction has an
adverse effect. The resulting sudden change in the friction force results in a briefly increased
following error. With interpolating axes, this results in significant contour violations. For circles,
these occur especially at the quadrant transitions where one of the participating axes is
stationary as its direction is reversed.
To improve the contour accuracy at these points, an additional setpoint pulse (velocity or torque
setpoint pulse) is applied to the friction compensation following a direction reversal by the
machine axis (during acceleration).
Friction compensation functions
The following functions are available for friction compensation:
• Friction compensation with a constant compensation value (Page 304)
Depending on the acceleration of the machine axis, the same pulse is always applied to the
velocity setpoint.
The amplitude and the decay time of the velocity setpoint pulse can be set.
• Friction compensation with adaptive characteristic (Page 310)
Depending on the acceleration of the machine axis, the velocity setpoint pulse is determined
from a parameterizable characteristic.
Three different acceleration values can be set as well as the minimum and maximum
amplitude and the decay time of the velocity setpoint pulse.
• Friction compensation with adaptive characteristics (Page 313) (Licensed option:
6FC5800-0AS06-0YB0)
Depending on the acceleration of the machine axis, the velocity setpoint pulse is determined
from up to three parameterizable characteristics.
Up to nine different acceleration values can be set. For each acceleration value, weighting
factors for the amplitude, the active time, and the decay time of the velocity setpoint pulse
can be defined.
If the velocity setpoint pulse is not sufficient to achieve the desired result, an additional
torque setpoint pulse can be parameterized.
9.8
Friction compensation with a constant compensation value
9.8.1
Description of functions
The friction compensation described below with constant compensation value is intended for
applications in which the following general conditions apply:
• The velocity setpoint pulse required for friction compensation is independent of the
acceleration.
• An acceleration-independent amplitude and an acceleration-independent decay time are
sufficient to model the velocity setpoint pulse.
Monitoring and compensating
304
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.8 Friction compensation with a constant compensation value
• For friction compensation at the positive and negative reversal point, the same velocity
setpoint pulse is sufficient.
• The requirement for contour accuracy at the reversal points is relatively low.
The following figure shows an example characteristic that can be set with this function:
˂Q
˂QRSW
D
Δnopt
Amplitude of the velocity setpoint pulse
a
Acceleration at the quadrant transition
9.8.2
Commissioning
To determine the axis-specific compensation value Δnopt, the Circularity test (Page 306) must be
used to determine the optimum amplitude of the velocity setpoint pulse Δnopt_a for each of a
number of acceleration values. The different acceleration values should cover the entire
dynamic range.
Calculation of the acceleration at the quadrant transition
On a circular path, the acceleration a of a machine axis on direction reversal at the quadrant
transition is calculated from the radius r of the circle and the path velocity v: a = v2 / r
Note
The path velocity and therefore the axis-specific acceleration a can be varied simply via the
feedrate override.
Evaluation of the value pairs determined (a, Δnopt_a)
To determine the compensation value Δnopt, we recommend graphically applying the value pairs
determined in the circularity test comprising the acceleration a and the associated optimum
amplitude of the velocity setpoint pulse Δnopt_a: Δnopt_a = f(a)
˂Q
˂QRSW
*
D
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
305
Compensations
9.8 Friction compensation with a constant compensation value
Figure 9-21
Axis-specific characteristic determination
The optimum amplitude of the velocity setpoint pulse Δnopt is obtained by drawing in the straight
line G1.
Axis-specific machine data
Activating friction compensation
Friction compensation is activated with:
• MD32500 $MA_FRICT_COMP_ENABLE[ <axis> ] = TRUE (1)
Activating friction compensation with a constant compensation value
Friction compensation with constant compensation value is activated with:
• MD32490 $MA_FRICT_COMP_MODE[ <axis> ] = 1
• MD32510 $MA_FRICT_COMP_ADAPT_ENABLE[ <axis> ] = FALSE (0)
Velocity setpoint pulse: Amplitude
The amplitude of the velocity setpoint pulse is set with:
MD32520 $MA_FRICT_COMP_CONST_MAX[ <axis> ] = <amplitude>
Velocity setpoint pulse: Decay time
The decay time of the velocity setpoint pulse is set via:
MD32540 $MA_FRICT_COMP_TIME[ <axis> ] = <time constant>
9.8.2.1
Circularity test
Commissioning via the circularity test
The easiest way to commission the friction compensation is with the circularity test integrated
in the user interface. This involves acquiring the circular contour created on the machine as a
circle is traversed based on the actual positions of the participating machine axes. Deviations
from the programmed ideal circular contour, in particular, at the quadrant transitions, are
visualized graphically.
The circularity test can be found on the user interface under:
• SINUMERIK Operate: "Operating area switchover" > "Commissioning" > "Optimization/test" >
"Circularity test"
Sequence
The sequence for commissioning friction compensation for a machine axis is divided into the
following steps:
1. Set the acceleration a1 via path velocity vn and circle radius r
2. Perform circularity test without friction compensation
Monitoring and compensating
306
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.8 Friction compensation with a constant compensation value
3. Perform a circularity test with friction compensation with small initial values for amplitude
and decay time
4. Optimize the circularity test with friction compensation by changing the parameter values
step by step
5. The optimized parameter values are applied graphically, e.g. amplitude = f(an)
6. Setting of the next acceleration an and continuation with point 2.
Performing the circularity test without friction compensation
A circularity test without friction compensation should be performed to determine the initial
quality of the circular contour at the quadrant transitions. To do this, switch off the friction
compensation temporarily:
MD32500 FRICT_COMP_ENABLE[ <axis> ] = 0
The following figure shows a typical example of quadrant transitions without friction
compensation:
$[LV
,,
,
$[LV
,,,
,9
Figure 9-22
Quadrant transitions without friction compensation
The friction compensation must then be activated again:
MD32500 FRICT_COMP_ENABLE[ <axis> ] = 1
Performing circularity test with friction compensation
It is recommended that a small amplitude value and a decay time of just a few position control
cycles be set as initial values for the velocity setpoint pulse, e.g.:
• MD32520 $MA_FRICT_COMP_CONST_MAX[ <axis> ] = 10 [mm/min]
• MD32540 $FRICT_COMP_TIME[ <axis> ] = 0.008 [s]
The circularity test performed with these values provides an initial assessment of the friction
compensation.
Amplitude too small
Too small an amplitude value (MD32520) is revealed in the circularity test by insufficient
compensation of the contour deviations at the quadrant transitions.
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
307
Compensations
9.8 Friction compensation with a constant compensation value
$[LV
,,
,
$[LV
,,,
,9
Figure 9-23
Amplitude too small
Amplitude too large
Too large an amplitude value (MD32520) is revealed in the circularity test by overcompensation
of the contour deviations at the quadrant transitions.
$[LV
,,
,
$[LV
,,,
,9
Figure 9-24
Amplitude too large
Decay time too short
Too short a decay time (MD32540) is revealed in the circularity test when the contour deviations
at the quadrant transitions are compensated for for a short time but immediately increase again
thereafter.
$[LV
,,
,
$[LV
,,,
,9
Figure 9-25
Decay time too short
Decay time too long
Too long a decay time (MD32540) is revealed in the circularity test when the contour deviation
at the quadrant transitions is compensated for at first. This assumes that the optimum amplitude
Monitoring and compensating
308
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.8 Friction compensation with a constant compensation value
values has already been set. If the decay time is too long, however, the compensation applies for
too long and results in overcompensation at the next circular contour.
$[LV
,,
,
$[LV
,,,
,9
Figure 9-26
Decay time too long
Good friction compensation setting
With a good friction compensation setting, "no" contour violations can be detected at the
quadrant transitions.
$[LV
,,
,
$[LV
,,,
,9
Figure 9-27
Good friction compensation setting
See also
Friction compensation with adaptive characteristic (Page 310)
9.8.3
Supplementary conditions
Reaction of setpoint-related compensation functions
The following setpoint-related compensation functions affect the position setpoint and must
therefore be deactivated for the axes that perform a circularity test:
• Sag and angularity compensation (CEC)
MD32710 $MA_CEC_ENABLE[ <axis> ] = 0
• Directional leadscrew error compensation (LEC):
MD32710 $MA_CEC_ENABLE[ <axis> ] = 0
• Temperature compensation:
MD32750 $MA_TEMP_COMP_TYPE[ <axis> ] = 0
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
309
Compensations
9.9 Friction compensation with adaptive characteristic
9.9
Friction compensation with adaptive characteristic
9.9.1
Description of functions
The friction compensation with adaptive characteristic is intended for applications with the
following requirements:
• The velocity setpoint pulse required for friction compensation depends on the acceleration.
• It is enough if the characteristic is modeled by three different acceleration interpolation
points and a minimum and maximum amplitude of the velocity setpoint pulse.
• An acceleration-dependent amplitude and an acceleration-independent decay time are
sufficient to model the velocity setpoint pulse.
• For friction compensation at the positive and negative reversal point, the same velocity
setpoint pulse is sufficient.
• For greater acceleration, a smaller compensation value is required than for smaller
acceleration.
• The requirement for contour accuracy at the reversal points is high.
The following figure shows an example characteristic that can be set with this function:
˂Q
˂QPD[
˂QPLQ
D
D
D
D
%
%
%
%
Δnmax
Maximum amplitude of the velocity setpoint pulse
Δnmin
Minimum amplitude of the velocity setpoint pulse
a1, a2,
Acceleration interpolation points 1, 2, and 3
a3
B1 ...
Acceleration range 1 ... 4
B4
Monitoring and compensating
310
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.9 Friction compensation with adaptive characteristic
The amplitude of the velocity setpoint pulse Δn is calculated in the relevant acceleration range
B1 to B4 to form:
Range
Acceleration a
Amplitude of the velocity setpoint pulse Δn
B1
a < a1
Δn = Δnmax * a / a1
B2
a1 ≤ a ≤ a2
Δn = Δnmax
B3
a2 < a < a3
Δn = Δnmax + [(Δnmin - Δnmax) / (a3 - a2)] * (a - a2)
B4
a ≥ a3
Δn = Δnmin
9.9.2
commissioning
To determine the axis-specific characteristic parameters, the Circularity test (Page 306) must be
used to determine the optimum amplitude of the velocity setpoint pulse Δnopt_a each for each of
a number of acceleration values. The different acceleration values should cover the entire
dynamic range. In particular, a sufficient number of measurements must be ensured for low
acceleration values and large circle radii.
Calculation of the acceleration at the quadrant transition
On a circular path, the acceleration a of a machine axis on direction reversal at the quadrant
transition is calculated from the radius r of the circle and the path velocity v: a = v2 / r
Note
The path velocity and therefore the axis-specific acceleration a can be varied simply via the
feedrate override.
Evaluation of the value pairs determined (a, Δnopt_a)
To determine the acceleration interpolation points a1, a2, and a3 and the minimum and
maximum amplitude of the velocity setpoint pulse Δnmin and Δnmax, we recommend graphically
applying the value pairs determined in the circularity test comprising the acceleration a and the
associated optimum amplitude of the velocity setpoint pulse Δnopt_a: Δnopt_a = f(a)
˂Q
*
*
˂QPD[
*
˂QPLQ
*
D
D
D
D
%
%
%
%
Figure 9-28
Axis-specific characteristic determination
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
311
Compensations
9.9 Friction compensation with adaptive characteristic
The acceleration interpolation points a
1
, a2, and a3 and the minimum and maximum amplitude
of the velocity setpoint pulse Δnmin and Δnmax result from drawing in the straight lines G1 ...G4.
Axis-specific machine data
Activating friction compensation
Friction compensation is activated with:
MD32500 $MA_FRICT_COMP_ENABLE[ <axis> ] = TRUE (1)
Activating friction compensation with adaptive characteristic
Friction compensation with adaptive characteristic is activated with:
• MD32490 $MA_FRICT_COMP_MODE[ <axis> ] = 1
• MD32510 $MA_FRICT_COMP_ADAPT_ENABLE[ <axis> ] = TRUE (1)
Characteristic parameters: Acceleration a1, a2, and a3
The axis-specific acceleration a occurring on a circle path on reversal at the quadrant transitions
is calculated from the radius r and the path velocity v as: a = v2 / r
The acceleration values a1, a2, and a3, are entered in the machine data in monotonically
ascending order (a1 < a2 < a3).
• MD32550 $MA_FRICT_COMP_ACCEL1[ <axis> ] = <a1>
• MD32560 $MA_FRICT_COMP_ACCEL2[ <axis> ] = <a2>
• MD32570 $MA_FRICT_COMP_ACCEL3[ <axis> ] = <a3>
Characteristic parameters: Amplitude Δnmin and Δnmax
The maximum and minimum amplitude of the velocity setpoint pulse (Δnmax, Δnmin) must be
entered in the following machine data:
• MD32520 $MA_FRICT_COMP_CONST_MAX[ <axis> ] = <Δnmax>
• MD32530 $MA_FRICT_COMP_CONST_MIN[ <axis> ] = <Δnmin>
Note
If satisfactory results cannot be obtained for very small path velocities, the computational
resolution may have to be increased:
• MD10200 $MA_INT_INCR_ PER_MM (computational resolution for linear positions)
• MD10210 $MA_INT_INCR_PER_DEG (computational resolution for angular positions)
Velocity setpoint pulse: Decay time
The decay time of the velocity setpoint pulse is set via:
MD32540 $MA_FRICT_COMP_TIME[ <axis> ] = <decay time>
Monitoring and compensating
312
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.10 Friction compensation with adaptive characteristics
9.9.3
Supplementary conditions
Reaction of setpoint-related compensation functions
The following setpoint-related compensation functions affect the position setpoint and must
therefore be deactivated for the axes that perform a circularity test:
• Sag and angularity compensation (CEC)
MD32710 $MA_CEC_ENABLE[ <axis> ] = 0
• Directional leadscrew error compensation (LEC):
MD32710 $MA_CEC_ENABLE[ <axis> ] = 0
• Temperature compensation:
MD32750 $MA_TEMP_COMP_TYPE[ <axis> ] = 0
9.10
Friction compensation with adaptive characteristics
9.10.1
Description of the function
Friction compensation with adaptive characteristics has the following properties:
• For fast and simple optimization, commissioning can be performed via the SINUMERIK
Operate user interface.
• In guided commissioning, the test movements are optionally generated automatically for
one or two axes.
• The compensation values can be set separately for each axis, e.g. for a vertical axis, for each
reversal point (direction-dependent).
• In relation to the set position (compensation mode (Page 315) = 3), better results are
achieved by early application of the compensation value.
• If the velocity setpoint pulse is insufficient to achieve the desired result, e.g. for gearless
drives, a pulse can additionally be applied to the torque setpoint.
• Four compensation characteristics with up to nine acceleration interpolation points can be
defined.
• Settable parameters for the velocity setpoint pulse:
- Delay time
- Amplitude 1)
- Action time 1)
- Rise time
- Decay time 1)
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
313
Compensations
9.10 Friction compensation with adaptive characteristics
• Settable parameters for the torque setpoint pulse:
- Amplitude 1)
- Delay time
- Rise time
• A temperature, leadscrew error, and/or sag compensation that is active in parallel has no
effect on the friction compensation.
1): Parameters that can be adapted depending on the acceleration
Note
In most applications, compensation by means of velocity setpoint pulse and compensation
characteristics for amplitude and decay time are sufficient. Only if no satisfactory results have
been achieved should further options be used.
Examples of adapted characteristics
Y LQ PP PLQ
W LQ PV
D LQ P V
D LQ P V
W LQ PV
0 LQ 1P
D LQ P V
D LQ P V
①②③
Velocity setpoint pulse:
• Red: Lower reversal point
• Blue: Upper reversal point
④
Torque setpoint pulse
Compensation values for acceleration between the parameterized interpolation points are
interpolated linearly.
Monitoring and compensating
314
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.10 Friction compensation with adaptive characteristics
9.10.2
Commissioning
9.10.2.1
Activating the function
Activating friction compensation
Friction compensation is activated axis-specifically with:
MD32500 $MA_FRICT_COMP_ENABLE[<axis>] = TRUE
Activating friction compensation with adaptive characteristics
Friction compensation with adaptive characteristics can be applied to the set or actual position
of the machine axis, depending on the dynamics of the axis. The function is activated axis-
specifically with:
MD32490 $MA_FRICT_COMP_MODE = <mode>
<mode
Meaning
>
3
For axes with high dynamics and active feedforward control1).
The velocity or torque setpoint pulse is applied if the set position of the machine axis has
reached the trigger point.
4
For axes with low dynamics and inactive feedforward control1).
The velocity or torque setpoint pulse is applied if the actual position of the machine axis has
reached the trigger point.
1) Feedforward control: MD32620 FFW_MODE (feedforward control mode)
Note
Commissioning
We urgently recommend performing guided commissioning using the commissioning functions
of the SINUMERIK Operate user interface (Page 315) and not changing the generated values in
the machine data subsequently.
9.10.2.2
Commissioning functions of the SINUMERIK Operate user interface
Commissioning of the friction compensation with adaptive characteristics is performed in the
"friction compensation" window:
Operating area: "Commissioning" > "NC" > "Friction compensation"
Note
Softkey "Friction compensation"
The "friction compensation" softkey is only displayed if the friction compensation with adaptive
characteristics is active (Page 315) for at least one machine axis.
The parameters for the axis-specific velocity and torque setpoint pulses are determined and
stored retentively in machine data. Friction compensation by means of velocity setpoint pulse is
normally sufficient.
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
315
Compensations
9.10 Friction compensation with adaptive characteristics
Determination of the characteristic parameters for the velocity setpoint pulses is performed with
guidance by the operator interface.
The characteristic parameters for the torque setpoint pulse required only in exceptional cases
must be determined manually.
Note
Friction compensation - axis selection dialog
For the selection of an axis on an NCU other than the currently selected NCU, a switchover is no
longer possible once the "Friction compensation" dialog is opened.
To clear the switchover lock, you must first exit the "Friction compensation" dialog.
Further information
The description of friction compensation with adaptive characteristics via the SINUMERIK
Operate user interface can be found in: Commissioning Manual, CNC Commissioning: NC, PLC,
drive; commissioning NC > Friction compensation with adaptive characteristics
Function
The characteristic parameters are determined using a circularity test for up to nine
different acceleration values (Page 317). One or two machine axes are alternately continuously
traversed via an circularity test program generated automatically by the control and the result is
displayed in a circle diagram.
The traversing movements of the circularity program (radius, path velocity, and direction of
rotation) are already set in the following setting data. If necessary, they can be modified via the
data list (see below paragraph "Further parameters").
Parameters
Axis type
Setting Data
Radius
Linear axis
SD55820 $SCS_FRICT_OPT_RADIUS
Rotary axis
SD55821 $SCS_FRICT_OPT_RADIUS_ROT
Path velocity
Linear axis
SD55822$SCS_FRICT_OPT_FEED[ 0 ... 8 ]
Rotary axis
SD55823 $SCS_FRICT_OPT_FEED_ROT[ 0 ... 8 ]
Direction of rota-
---
SD55828 $SCS_FRICT_OPT_DIR_MINUS
tion 1)
1) Only effective in the circularity test with two axes
Measuring step
After the start of the circularity test program, in each of the up to nine measuring steps of a
measurement series, the axes are traversed with the path velocity that is defined in the setting
data or with the corresponding acceleration. The deviations of the actual positions from the
ideal path are acquired and displayed as a set or actual circular path. The parameters of the
velocity setpoint pulse can be varied by the commissioning engineering while the circularity test
continues to be performed constantly. The resulting changes are automatically updated in the
result graphics.
If the circularity tests is only performed with a single axis, the result is also displayed as a circle.
For this purpose, the determined contour deviations of the axis are displayed one horizontally
Monitoring and compensating
316
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
Compensations
9.10 Friction compensation with adaptive characteristics
and once vertically. If the circularity test is performed with two axes, both axes must be
geometry axes of the same channel.
Completion
After optimization of the compensation parameters for the entire measurement series has been
completed, the maximum values, characteristics interpolation points, and weighting factors are
calculated by the control and written into the following machine data:
Maximum value
Machine data
Amplitude
MD32571 $MA_FRICT_VELO_STEP
Decay time
MD32574 $MA_FRICT_V_PULSE_DECAY_TIME
Active time
MD32573 $MA_FRICT_V_PULSE_CONST_TIME
Characteristic interpolation points
Machine data
Acceleration of the friction compensa-
MD32581 $MA_FRICT_ADAPT_TABLE_ACCEL[ 0 ... 9 ]
tion characteristics
Weighting factors
Machine data
Amplitude upper / lower
MD32582 $MA_FRICT_ADAPT_V_STEP_PLUS[ 0 ... 9 ]
MD32583 $MA_FRICT_ADAPT_V_STEP_MINUS[ 0 ... 9 ]
Decay time upper / lower
MD32586 $MA_FRICT_ADAPT_V_DECAY_PLUS[ 0 ... 9 ]
MD32587 $MA_FRICT_ADAPT_V_DECAY_MINUS[ 0 ... 9 ]
Action time upper / lower
MD32584 $MA_FRICT_ADAPT_V_CONST_PLUS[ 0 ... 9 ]
MD32585 $MA_FRICT_ADAPT_V_CONST_MINUS[ 0 ... 9 ]
Additional parameters
With the vertical softkey "Data list," further machine and setting data are displayed for
parameterization of the friction compensation with adaptive characteristics, e.g. also the
parameters for the torque setpoint pulse. The setting these parameters is described in the
following sections.
9.10.2.3
Parameterization of the acceleration at the characteristic interpolation points
From the channel-specific setting data of the circularity test (circle radius and traversing
velocity), the control calculates the acceleration values of the characteristic interpolation points.
Channel-specific setting data
The channel-specific setting data for circle radius and velocities apply to all machine axes with
active friction compensation with adaptive characteristics that are channel axes of the channel
in question. They are already assigned typical values. In necessary, they can be adapted machine-
specifically.
Monitoring and compensating
Function Manual, 10/2020, 6FC5397-7GP40-0BA1
317
Compensations
9.10 Friction compensation with adaptive characteristics
Circle radius
A circle is traversed with the parameterized radius in the automatically generated circularity
tests program:
• Linear axes
SD55820 $SCS_FRICT_OPT_RADIUS = <radius>
• Rotary axes
SD55821 $SCS_FRICT_OPT_RADIUS_ROT = <radius>
Traversing velocities
In the circularity test, the machine axes are traversed in each of the up to nine measurement
sections with the velocity parameterized in the setting data:
• Linear axes
SD55822$SCS_FRICT_OPT_FEED[ 0 ... 8 ] = <velocity 1 ... 9>
• Rotary axes
SD55823 $SCS_FRICT_OPT_FEED_ROT[ 0 ... 8 ] = <velocity 1 ... 9>
Note
• If fewer than nine characteristic interpolation points ( 1 ... n ) are required, the velocity zero
must be entered in each of the corresponding array elements for all unneeded characteristic
interpolation points ( (n+1) ... 9 ).
• If the velocity is equal to zero in an array element, no following array element must contain
a velocity that is not equal to zero.
Direction of rotation
In the circularity test with two axes, the direction of rotation of the circle is defined with:
SD55828 $SCS_FRICT_OPT_DIR_MINUS = <direction of rotation>
Axis-specific machine data
The acceleration a at the characteristic interpolation point n is calculated by the control from the
setting data for the circle radius r and the path velocity vn-1: an = vn-12 / r
0'
6'
6&6B)5,&7B237B)(('> Q
@
0$B)5,&7B$'$37B7$%/(B$&&(/> Q @
6'
6&6B)5,&7B237B5$',86
where n = 1, 2, 3, ... 9
For acceleration a at characteristic interpolation point n = 0, the value zero is always entered:
MD32581 $MA_FRICT_ADAPT_TABLE_ACCEL[ 0 ] = 0
Monitoring and compensating
318
Function Manual, 10/2020, 6FC5397-7GP40-0BA1

 

 

 

 

 

 

 

Content      ..     46      47      48      49     ..