EN - ONE Measure Kinematics 0622 - 2023-10
EN - ONE Measure Kinematics 0622 - 2023-10
Measure Kinematics
With CYCLE9960
SINUMERIK
Edition 2023.10
Training Manual
Front cover:
This area is used to go to page 2, This area is used to go to the This area is used to go to page 5,
where it shows the manual manual structure where it shows the software
structure. version of the manual.
This area is used to go to page 7, Hexagons are used to go to the Hexagons are used to go to the
where it shows the section module contents. individual modules.
contents.
Red oval is used to go back to the Red rectangle is used to go back
front cover. to the section content.
Manual Structure
The following page structure is used in this manual.
Individual modules:
This area is used to go to the Hexagons are used to go to the The top rectangle is used to go
table of the contents. sections. back to the table of contents.
Measure Kinematics
With CYCLE9960
Manual
Valid for:
Module Description:
The modul contains the basic functions of CYCLE9960 which is used to measure the kinematics of a
machine to use transformations like TRAORI or CYCLE800 for examle.
Module objective:
The reader should be able to handle the CYCLE9960 for machines with kinematic transformations.
Content:
Sinumerik
SINUMERIK ONE V6.22 Page 1 This document was produced for training purposes. A650
Siemens assumes no responsibility for its contents.
Sa 09/23
A650 Measure kinematics with CYCLE9960
Front Cover
Program
Start example:
of the Machine with
Module kinematics type
"P"
Program
Objective:
example:
Geometric
Machine with
sample
kinematics type
calculation
"T"
System Program
prerequisites example:
Machine with
table-C-axis
Machine
data
Term
definitions
Programming End
of the
Module
Program
example:
Machine with
kinematics type
"M"
Use of the "Measure kinematics" function and objective: Overview of the complete design:
Zero offset
In the controller, the distance between the spin axis and WCS When the difference between both workpiece zero points is
is calculated from the known data (zero offset and C offset considered (before the rotation and after the rotation), the
vector): difference values for X and Y result:
∆X=NPVX - OFFSETX = 600 mm - 500 mm = 100 mm
∆Y=NPVY - OFFSETY = -200 mm - (-200 mm) = 0 mm
The effective distance between WCS and the rotary axis is
MCS:
therefore 100 mm. X=0 mm
Y=0 mm
If the rotary axis is turned by 240°, the workpiece reference Z=0 mm
point (WCS) at the C direction vector rotates: MCS:
∆X = -150 mm X=600 mm
Y=-200 mm
Z=150 mm
Arc
R = 100 mm
∆Y = -86.6 mm
MCS:
MCS X=450 mm
Y=-286.6 mm
Z=150 mm
WCS at
C = 240°
WCS at
C = 0°
Notes:
MCS:
If, because of a measurement error during the measurement X=0 mm
Y=0 mm
of the kinematics or, for example, after replacement of a Z=0 mm
measurement system of the X/Y axis, the actual values of the
offset vector do not match the position stored in the controller, ∆X = -150.15
MCS:
X=600 mm
differences result between the calculated zero point position Y=-200 mm
after the C rotation and the actual position of the new Z=150 mm
workpiece reference point.
Assumption:
The position of the C rotary axis in the MCS is actually X 500 ∆Y = -86.689 mm
mm and Y -200 mm.
The position of the C rotary axis stored in the controller is
MCS:
X 499.9 mm and Y -200.15 mm. X=449.85 mm
The zero offset is X 600 mm, Y -200 mm, Z 150 mm. Y=-286.839 mm
This corresponds to the previously used constellation, only Z=150 mm
the rotary axis is implicitly "moved" to another position. WCS at
C = 0°
WCS at
The following differences between the entered C rotary axis C = 240°
position and the WCS result:
∆X=NPVX - OFFSETX = 600 mm - 499.9 mm=100.1 mm
∆Y=NPVY - OFFSETY = -200 mm - (-200.15 mm) =0.15 mm
The effective distance (total radius) between WCS and the No change has been made to the mechanical design of the
rotary axis is therefore 100.100 mm. machine, but only to the position data of the C rotary axis in
Calculation: the controller. The following differences (difference of the
Radius=SQRT(POT(100.1)+POT(0.15))=100.1001123 mm MCS positions for C = 240°) result between the now
calculated MCS positions after rotating the C axis and the
"correctly" determined position data:
∆X= 450 mm - 499.85 mm=0.15 mm
∆Y=-286.6 mm - (-286.839 mm) =0.239 mm
This calculated example shows why the machine kinematics Fundamentals for measuring the kinematics with
must be measured precisely: CYCLE9960:
The position of rotary axes and the travel direction of the rotary
axes must be known exactly so that precise results can be
achieved when machining with rotary axis movements. System prerequisites:
The above sample calculation shows a deviation of the
rotation axis position of 0.1 mm that leads later to an almost The function must be enabled via a system license:
three-fold deviation of 0.282 mm!
These necessary measurements can be performed with
CYCLE9960.
CYCLE9960 can perform the required corrections and store
the measurement results in log files. The entry-level softkey for the program editor must also be
enabled:
Notes:
The MD defines the tolerance of the sphere diameter that is In the case of this SD is <> 0° the measured roundaxes are
accepted during the measurement. This function is used to incrementally prepositioned in the opposite direction to the
make sure that the control will stop if the probe is on contact measuring direction to compensate the backlash.
to the shaft of the sphere. In this case the calculated diameter The value of this SD is interpretated as an incremental value
is too big and this will cause an alarm. and it is used for every rotary axis which is included in the
actual measuring sequence.
SD 55647 $SCS_MEA_KIN_MIN_ANG_TRIANGLE
The SD is predefined with a value of 0°.
If there are three measuring points are used, the control will Range of the accepted values:
calculate a triangle with these three points. The MD will check 0° <= SD 55650 $SCS_MEA_KIN_PREPOS_RA <= 2°
the minimum angle of this triangle. If the angle is too small, The direction of the prepositioning is defined automatically in
the control will generate an alarm. the cycle depending on the direction of the measuring
sequence.
SD 55648 $SCS_MEA_KIN_MIN_ANG_POS
MD 62738 $MC_E996_FILE_LOCATION
It is possible to define a minimum angle that every measured
rotary axis has to move during the measuring. It is possible to define the storage folder of the result file
whitch is conaining the VCS-data:
1=CMA.DIR
2=CUS.DIR
Notes:
For the index n of the setting data item, check whether the Machine type "M" - mixed kinematic
swivel data set selected for correction is a classic defined tool A. Classic tool carrier
carrier or a tool carrier based on a kinematic chain. B. Tool carrier based on a kinematic chain
(Direction of rotation: from the end of the workpiece
The assignment of the first and second rotary axes always chain to the end of the tool chain.)
applies:
Notes:
Machine type "P" - part kinematic Machine type "T" - tool kineamtic
A. Classic tool carrier A. Classic tool carrier
B. Tool carrier based on a kinematic chain B. Tool carrier based on a kinematic chain
(Direction of rotation: from the end of the workpiece (Direction of rotation: from the end of the workpiece
chain to the end of the tool chain.) chain to the end of the tool chain.)
Possibility 1: I2X=100 mm
Z Y I2Y=400 mm
I2X=400 mm MKS I2Z=400 mm
Y
I2Y=400 mm I2Y
I2Z=400 mm I2Total=574.456 mm
MCS X
I2Y I2Total=692.820 mm
I2Z
X
I2 Total
I2 Total
I2Z Rotary axis vector V1
Notes:
Tool reference
Tool reference
Notes:
Example 1:
SD 55646 $SCS_MEA_KIN_VALUE[n] n=0,1
Setpoint for the component of the offset vector specified in The three measurement points differ in the position of the
SD 55645[n] if SD 55645[n] = 1,2 or 3. rotary axis by 120°, all angles within the triangle are 60°.
This case is very favorable for the calculation and smaller
Meaning of index n: measurement deviations have only a limited effect on the
n=0: Setpoint for rotary axis 1 calculation result.
n=1: Setpoint for rotary axis 2
SD 55647 $SCS_MEA_KIN_MIN_ANG_TRIANGLE
Valid value range: 2° to 60°.
This SD is relevant when a measurement is defined over
three individual sphere measurement points per rotary axis.
An arc is calculated from these three points.
If the three points are connected with straight lines, this
produces a triangle. The SD defines the minimum angle that
may exist within the triangle.
If two points lie too closely together, a small position deviation
for one of the two points causes a large change of the
calculated center point and of the calculated radius. In the
ideal case, all three angles are 60° within the triangle. In this
case, a measurement uncertainty has only a minimal effect
on the result.
Example 2:
Example with concrete numbers:
The three measurement points differ in the position of the Case 1:
rotary axis by 30°; the angles within the triangle are unequal. The red-highlighted sphere is moved by –1 mm in the Y axis.
This case is unfavorable for the calculation, because smaller
measurement deviations have a large effect on the
calculation result.
Y-1 mm
Notes:
$SCS_MEA_KIN_BALL_VEC[0] X
X component of the shaft vector
$SCS_MEA_KIN_BALL_VEC[1]
Y component of the shaft vector
$SCS_MEA_KIN_BALL_VEC[2]
Z component of the shaft vector
$SCS_MEA_KIN_BALL_VEC[0]=0
$SCS_MEA_KIN_BALL_VEC[1]=-1
$SCS_MEA_KIN_BALL_VEC[2]=-1
Notes:
Bit 8: Bit10=0:
Kinematic measurement with active tool carrier (CYCLE800) The selection field for a reference measurement is not
or TRAORI permitted. displayed.
Bit 11 = 0: Bit 12 = 1:
When "Measure on circular path" measurement mode is used, A RESET alarm is issued in the event of a tolerance violation.
10 measurement points are approached: 4x on the circular The alarm cannot be acknowledged and the program must be
circumference and 1x at the top of the sphere. canceled with RESET.
This operation is performed 2x.
Bit 13:
Bit 11 = 1: Mode for normalization with kinematic type "P" or table
When "Measure on circular path" measurement mode is used, kinematics with 2 rotary axes:
8 measurement points are approached: 3x on the circular
circumference and 1x at the top of the sphere. Bit 13 = 0:
This operation is performed 2x. The normalization is performed with the two I2 vectors
(distance from the machine zero to the 1st rotary axis) and I3
(distance from the 1st rotary axis to the 2nd rotary axis).
Bit 13 = 1:
The normalization for rotary axis 2 is performed in the I4 vec-
tor (distance from the 2nd rotary axis to the machine zero).
Notes:
Positioning feed for repositioning the rotary axes during the MD 55740 Bit 20 + 21 = true
measurement in degrees/min.
As standard, the value is set to 360°/min. Note for Software-release 6.21:
SD 55640 $SCS_MEA_FEED_CIRCLE
Notes:
3
SD 55740
$SCS_MEA_FUNCTION_MASK Bit 10
9
The name of the round axis is set by the
control automatically.
10
11
12
13
14
Second part of the input mask: Explanation of the individual input fields:
1.
Selection of the work plane in which the measurement should
be performed:
Setting options:
G17 XY plane
G18 ZX plane
15
G19 YZ plane
16 No selection: The measurement is performed in the
active plane.
2.
Name of the transformation agreement for which the
correction should be performed.
Notes:
3.
Settings for reference measurements: For several attachment heads, machining must begin with the
reference head in "Measure reference" mode. A check is
made whether for all subsequent measurements in "Adapt to
reference" mode, the same zero offset is active as for
measuring the reference.
Setting options:
Measure reference 4.
Adapt to reference Measuring mode:
Measure without reference
Measure reference:
If a machine with replaceable kinematic modules (e.g. attach-
ment heads) should be measured, a kinematic module must Setting options:
serve as reference for the measurement of the other Correct
modules. Only correct
Measure only
Adapt to reference:
Measurement of a further kinematic module that should Correct:
receive a reference to the reference kinematics. After the measurement, the results are entered into the
machine data.
Measure without reference: The measurement results can also be displayed or stored in a
Measurement without replaceable modules. This method is log file.
the standard method for 5x machines without replaceable
kinematic modules. Only correct:
Calculate with the last stored values.
Measure only:
After the measurement, the results are displayed or a log file
can be created.
5. 6.
Calibrate the probe: Positioning:
Yes: Paraxial:
The probe on the sphere is calibrated before beginning the The probe approaches each individual measurement point
actual measurement. The calibration is performed in the from a point above the sphere center and returns to this point
active work plane. The calibrated length of the probe is not after the measurement.
changed.
Because the length of the probe is relevant for calculating the On circular path:
kinematics, the length of the probe must be calibrated exactly The probe positions from the first measurement point at the
before beginning the measurement with CYCLE9960. height of the sphere equator on a circular path to the next
measurement point. Because of the few positioning
No: movements, this method is faster than the axis-parallel meth-
The deployed probe is not calibrated before beginning the od.
measurement.
Axis parallel
On circular path
Notes:
9.
7. Confidence range:
Diameter of the measuring sphere:
The confi-
dence range
The diameter of the measuring sphere must be entered specifies the maximum permissible deviation for each individ-
precisely. A certified calibration sphere should be deployed as ual measuring sphere operation. An alarm is issued if the
measuring sphere. measured center point of the sphere (= actual value) deviates
from the calculated center point of the sphere (= setpoint) by
8. more than the programmed TSA value. The measurement
Measurement path: must then be terminated with RESET.
10.
Start angle for the rotary axis measurement:
The number of measurement points can be selected in the
range 3 to 12. The larger the number of measurement points,
the more precise the kinematics can be calculated.
For the definition of the measuring range, the start and end 13.
values must be selected so that the start value is smaller than Position of the rotary axis not moved during the measuring
the end value. The measuring range is divided into uniform operation:
sections by the definition of the number of measurement
points.
The start angle must lie within the valid traversal area of the
rotary axis.
11.
End angle for the rotary axis measurement: If two rotary axes are present on the machine, the axis not
involved with the measurement can leave its initial setting.
This can avoid collisions or the calibration of the kinematics
can be adapted to a specific machining situation.
In particular for head kinematics, it is desirable to position the
second rotary axis from the initial setting while the first rotary
The end angle must be larger than the start angle and must axis is being measured:
lie within the valid traversal area of the rotary axis.
For the measurement of a rotary axis, an angle range as large
as possible should lie between the start angle and the end
angle.
Notes:
C=120°
C=0°
If the orientation of the shaft is specified in the SD 55649
$SCS_MEA_KIN_BALL_VEC, the start angle for each
measurement of the sphere is calculated automatically so that
no collision occurs between the probes.
If no vector direction of the sphere shaft is specified, the start
angle can be specified manually, but must be adapted to the
kinematics of the machine and the associated measuring
range (start and end angles of the rotary axes).
C=240°
15: 16:
Tolerance mode for linear vectors: Tolerance value for linear vectors:
Setting options: The maximum permissible change value with which a linear
Yes vector or offset vector may be adapted.
No If the programmed tolerance is exceeded, an alarm is issued
after calculation and the program must be terminated with
Yes: RESET.
The tolerance for the maximum change of the linear vectors
can be programmed. Consequently, among other things, the
specification is important for machines with the "Collision
Avoidance" function so that the collision bodies are not
moved too far by an unwanted excessive change of the offset
vectors.
For the normalization of "free vector components", such as
the X component for a vector (-1,0,0), SD 55645 must be
observed!
No:
The tolerance for the maximum change of the linear vectors
cannot be programmed in the cycle.
Notes:
• Storage of the center points of the sphere in MCS: Compensation data for VCS
The single measured center points of the sphere are stored in The measured results are sored in a file that could be used
the channel GUD (SGUD): for the volumetric compensation VCS. Depending on the MD
62738 the storage location of the result file is given in the
_MEA_MKS[n,0] Position of the X-axis at point n following table:
_MEA_MKS[n,1] Position of the Y-axis at point n
_MEA_MKS[n,2] Position of the Z-axis at point n MD 62738 $MC_E996_FILE_LOCATION Stored in
_MEA_MKS[n,3] Position of the 1st rotary axis at point n
_MEA_MKS[n,4] Position of the 2nd rotary axis at point n 1 CMA.DIR
2 CUS.DIR
Exeption n=0: Measuring result in initial position
Exeption n=1: First measuring point of the first rotary axis
Other constraints are:
VCS has to be licensed and it has to be installed.
Measuring result display:
The name of the result file is generated automatically:
The measuring result display can be activated or deactivated
by using the CYCLE150. E996 + Name of the active Trafo + _ +Channelnumber.SPF
By using the function „MRD“ it is also possible to switch the
measuring result display off independent from the state of the Example:
CYCLE150.
The actice transformation during the measurement is TC1,
the active channel is 1.
The name of the compensation data file will be:
E996TC1_1.SPF
Notes:
Sample program for a machine with mixed kinematics: A sample program is created to measure mixed kinematics
with tool carrier based on a kinematic chain.
The machine has the following data:
Head axis:
Table axis:
X_OFFSET Y_OFFSET
X_AXIS Y_AXIS
Z_OFFSET C_OFFSET
Z_AXIS CORR_C_OFFSET
B_OFFSET C_AXIS
B_AXIS TABLE_OFFSET
CORR_SP1_OFFSET END_PART_CHAIN
SP1_OFFSET
SP1_AXIS
END_TOOL_CHAIN
Notes:
Sample program
N1000 TRAFOOF
N1010 CYCLE800
N1020 $P_UIFR[1]=CTRANS(X,150,Y,0,Z,200)
N1030 T="3D_PROBE"
N1040 M6
N1050 $SCS_MEA_KIN_BALL_VEC[0]=0
N1060 $SCS_MEA_KIN_BALL_VEC[1]=0
N1070 $SCS_MEA_KIN_BALL_VEC[2]=-1
N1080 $SCS_MEA_KIN_MODE[0]=6 ;C AXIS AT KIN. CHAIN, RETAIN Z VALUE
N1090 $SCS_MEA_KIN_MODE[1]=6 ;B AXIS AT KIN. CHAIN, RETAIN Z VALUE
N1100 STOPRE
N1110 G54 G17
N1120 CYCLE800(1,"TOOL_CARR_KIN",200000,57,0,0,0,0,0,0,0,0,0,1,100,1)
N1130 G0 X0 Y0 Z20
N1140 CYCLE150(30,10002,"//NC:/MPF.DIR/PROTOCOL_9960.TXT")
N1150 CYCLE9960(11400,"TOOL_CARR_KIN",1,30,0,0,180,3,0,0,0,240,3,0,0.001,2,2,1,1,0,1)
N1160 CYCLE800(1,"0",200000,57,0,0,0,0,0,0,0,0,0,1,100,1)
N1170 CYCLE150(30,10000,"")
N1180 M30
***************************************************************
Date : 2019-07-11 Time: 12:22:33
Protocol: //NC:/MPF.DIR/PROTOCOL_9960.TXT
Program : /_N_WKS_DIR/_N_EXAMPLE_5X_M_BC_WPD/_N_KINEMATIK_9960_
DOKU_M_MPF
Machine :
***************************************************************
---------------------------------------------------------------
1 : Time: 12:22:33
Results measure: Kinematic measure complete /CYCLE9960
Variant : S_MVAR=11400
Measuring plane: G17
Name / number : TOOL_CARR_KIN / 2
Rotary axis 1 : B start: 0.000 final: 180.000 no.: 3
Position of rotary axis 2 : 0.000
Rotary axis 2 : C start: 0.000 final: 240.000 no.: 3
Position of rotary axis 1 : 0.000
---------------------------------------------------------------
Difference of measure: X [mm] Y [mm] Z [mm]
max Value 0.00940 0.00945 0.05073
min Value -0.36203 -0.28886 -0.28886
B [deg] C [deg] X [mm] Y [mm] Z [mm]
0.00000 0.00000 0.00000 0.00000 0.00000
90.00000 0.00000 -0.36203 -0.25174 -0.21111
180.00000 0.00000 -0.00002 -0.28886 0.05073
0.00000 0.00000 0.00000 0.00000 0.00000
0.00000 120.00000 0.00940 -0.01503 -0.28885
0.00000 240.00000 -0.01505 0.00945 -0.28886
Difference of vector before: X [mm] Y [mm] Z [mm]
CORR_SP1_OFFSET 0.00000 0.00000 15.00000
CORR_C_OFFSET 0.00000 0.00000 0.00000
Results:
Difference of vector: X [mm] Y [mm] Z [mm]
CORR_SP1_OFFSET 0.24197 0.16979 15.00000
CORR_C_OFFSET 0.00808 -0.00427 0.00000
Notes:
Sample program for a machine with table kinematics: A sample program is created to measure the table
kinematics with a tool carrier based on a kinematic chain.
The machine has the following data:
ROOT
Y_OFFSET A_OFFSET
Y_AXIS CORR_A_OFFSET
X_OFFSET A_AXIS
X_AXIS C_OFFSET
Z_OFFSET CORR_C_OFFSET
Z_AXIS C_AXIS
SP1_OFFSET TABLE_OFFSET
SP1_AXIS END_PART_CHAIN
END_TOOL_CHAIN
Notes:
Sample program:
N1000 TRAFOOF
N1010 CYCLE800
N1020 $P_UIFR[1]=CTRANS(X,200,Y,0,Z,150)
N1030 T="3D_PROBE"
N1040 M6
N1050 $SCS_MEA_KIN_BALL_VEC[0]=0
N1060 $SCS_MEA_KIN_BALL_VEC[1]=0
N1070 $SCS_MEA_KIN_BALL_VEC[2]=-1
N1080 $SCS_MEA_KIN_MODE[0]=6 ;C AXIS AT KIN. CHAIN, RETAIN Z VALUE
N1090 $SCS_MEA_KIN_MODE[1]=4 ;A AXIS AT KIN. CHAIN, RETAIN X VALUE
N1100 STOPRE
N1110 G54 G17
N1120 CYCLE800(1,"TOOL_CARR_KIN",200000,57,0,0,0,0,0,0,0,0,0,1,100,1)
N1130 G0 X0 Y0 Z20
N1140 CYCLE150(30,10002,"//NC:/MPF.DIR/PROTOCOL_9960.TXT")
N1150 CYCLE9960(11400,"TOOL_CARR_KIN",1,30,0,-90,0,3,0,0,0,240,3,0,0.001,2,2,1,1,0,1)
N1160 CYCLE800(1,"0",200000,57,0,0,0,0,0,0,0,0,0,1,100,1)
N1170 CYCLE150(30,10000,"")
N1180 M30
***************************************************************
Date : 2019-07-10 Time: 14:06:19
Protocol: //NC:/MPF.DIR/PROTOCOL_9960.TXT
Program : /_N_WKS_DIR/_N_KINEMATIK_9960_WPD/_N_KINEMATIK_9960_D
OKU_MPF
Machine :
***************************************************************
---------------------------------------------------------------
1 : Time: 14:06:19
Results measure: Kinematic measure complete /CYCLE9960
Variant : S_MVAR=11400
Measuring plane: G17
Name / number : TOOL_CARR_KIN / 2
Rotary axis 1 : A start: -90.000 final: 0.000 no.: 3
Position of rotary axis 2 : 0.000
Rotary axis 2 : C start: 0.000 final: 240.000 no.: 3
Position of rotary axis 1 : 0.000
---------------------------------------------------------------
Difference of measure: X [mm] Y [mm] Z [mm]
max Value 0.03119 0.03118 0.00000
min Value -0.02522 -0.02522 -0.29568
A [deg] C [deg] X [mm] Y [mm] Z [mm]
0.00000 0.00000 0.00000 0.00000 0.00000
-90.00000 0.00000 0.00887 0.01775 -0.29568
-45.00000 0.00000 0.00887 0.01775 -0.29568
0.00000 0.00000 0.00000 0.00000 0.00000
0.00000 120.00000 0.03119 -0.02522 -0.29567
0.00000 240.00000 -0.02522 0.03118 -0.29568
Difference of vector before: X [mm] Y [mm] Z [mm]
CORR_A_OFFSET 0.00000 0.00000 0.00000
CORR_C_OFFSET 0.00000 0.00000 0.00000
Results:
Difference of vector: X [mm] Y [mm] Z [mm]
CORR_A_OFFSET 0.00000 -0.51895 0.50309
CORR_C_OFFSET 0.01534 0.49967 0.00000
Notes:
Note:
The working range of the C-axis is 361°.
Kinematic chain
ROOT
of the machine: Configuration of the "TOOL_CARR_KIN" tool carrier
(kinematically relevant part):
Y_OFFSET TABLE_OFFSET
Y_AXIS END_PART_CHAIN
X_OFFSET
X_AXIS
Z_OFFSET
Z_AXIS
C_OFFSET A_AXIS
C_AXIS CORR_SP1_OFFSET
CORR_A_OFFSET SP1_OFFSET
A_OFFSET SP1_AXIS
END_TOOL_CHAIN
Notes:
Sample program:
N1000 TRAFOOF
N1010 CYCLE800
N1020 $P_UIFR[1]=CTRANS(X,200,Y,0,Z,250)
N1030 T="3D_PROBE"
N1040 M6
N1050 $SCS_MEA_KIN_BALL_VEC[0]=0
N1060 $SCS_MEA_KIN_BALL_VEC[1]=0
N1070 $SCS_MEA_KIN_BALL_VEC[2]=-1
***************************************************************
Date : 2019-07-10 Time: 16:45:38
Protocol: //NC:/MPF.DIR/PROTOCOL_9960.TXT
Program : /_N_WKS_DIR/_N_EXAMPLE_5X_T_AC_WPD/_N_KINEMATIK_9960_
DOKU_T_MPF
Machine :
***************************************************************
---------------------------------------------------------------
1 : Time: 16:45:38
Results measure: Kinematic measure complete /CYCLE9960
Variant : S_MVAR=11400
Measuring plane: G17
Name / number : TOOL_CARR_KIN / 2
Rotary axis 1 : C start: 0.000 final: 240.000 no.: 3
Position of rotary axis 2 : 90.000
Rotary axis 2 : A start: -90.000 final: 90.000 no.: 3
Position of rotary axis 1 : 0.000
---------------------------------------------------------------
Difference of measure: X [mm] Y [mm] Z [mm]
max Value 0.93802 0.58650 0.10699
min Value -0.79923 -0.58230 -0.14093
C [deg] A [deg] X [mm] Y [mm] Z [mm]
0.00000 90.00000 -0.02830 0.58650 0.07917
120.00000 90.00000 -0.79923 -0.58230 0.06834
240.00000 90.00000 0.93802 -0.34191 -0.14093
0.00000 0.00000 0.00000 0.00000 0.00000
0.00000 -90.00000 0.00049 -0.45370 0.10699
0.00000 90.00000 -0.02832 0.58650 0.07916
Difference of vector before: X [mm] Y [mm] Z [mm]
CORR_A_OFFSET 0.00000 0.00000 0.00000
CORR_SP1_OFFSET 0.00000 0.00000 0.00000
Results:
Difference of vector: X [mm] Y [mm] Z [mm]
CORR_A_OFFSET -0.01408 0.33105 0.00000
CORR_SP1_OFFSET 0.00000 -0.06642 -0.52038
Notes:
Sample program for a machine with dividing unit: A sample program is created to measure the table
kinematics with only one rotary axis with a tool carrier based
on a kinematic chain.
The machine has the following data:
Note:
Kinematic chain
of the machine: ROOT
Configuration of the "TOOL_CARR_KIN" tool carrier
(kinematically relevant part):
Y_OFFSET X_OFFSET
Y_AXIS X_AXIS
CORR_A_OFFSET Z_OFFSET
A_OFFSET Z_AXIS
A_AXIS SP1_OFFSET
SP1_AXIS
END_
PART_CHAIN
END_
TOOL_CHAIN
Notes:
Sample program:
N1000 CYCLE800
N1010 TRAFOOF
N1040 $P_UIFR[1]=CTRANS(X,-200,Y,0,Z,230)
N1050 G54
N1060 T="3D_PROBE"
N1070 M6
N1080 D1
N1090 G17 G54 G90
N1100 $SCS_MEA_KIN_BALL_VEC[0]=0
N1110 $SCS_MEA_KIN_BALL_VEC[1]=0
N1120 $SCS_MEA_KIN_BALL_VEC[2]=-1
N1130 $SCS_MEA_KIN_MODE[0]=4
N1140 $SCS_MEA_FEED_POS_DEG=5000
N1150 CYCLE800(1,"TOOL_CARR_KIN",200000,57,0,0,0,0,0,0,0,0,0,1,100,101)
N1160 G0 Z300
N1170 G0 X0 Y0
N1180 G0 Z20
N1190 CYCLE150(30,10001,"//NC:/MPF.DIR/PROTOCOL_9960.TXT")
N1200 CYCLE9960(11400,"TOOL_CARR_KIN",1,30,0,-90,90,6,0,0,0,0,3,0,0.1,3,2,1,1,10,1)
N1210 CYCLE150(30,10000,"")
N1220 CYCLE800
N1230 M30
***************************************************************
Date : 2021-03-04 Time: 18:17:05
Protocol: //NC:/MPF.DIR/PROTOCOL_9960.TXT
Program : /_N_WKS_DIR/_N_VERMESSEN_9960_WPD/_N_VERMESSEN_9960_M
PF
Machine :
***************************************************************
---------------------------------------------------------------
1 : Time: 17:17:05
Results measure: Kinematic measure complete /CYCLE9960
Variant : S_MVAR=11400
Measuring plane: G17
Name / number : TOOL_CARR_KIN / 1
Rotary axis A: start: -90.000 final: 90.000 no.: 3
---------------------------------------------------------------
Difference of measure: X [mm] Y [mm] Z [mm]
max Value 0.00000 0.03398 0.00000
min Value -0.00368 0.00000 -0.29567
A [deg] -- [deg] X [mm] Y [mm] Z [mm]
0.00000 0.00000 0.00000 0.00000 0.00000
270.00000 0.00000 -0.00105 0.03140 -0.29567
90.00000 0.00000 -0.00368 0.03398 -0.29567
Results:
Difference of vector: X [mm] Y [mm] Z [mm]
A_CORR 0.00000 -0.03266 -0.44553
Notes:
Step 2: Step 3:
Calculation of a plane through the three measurement points. Calculation of a vector perpendicular to this plane.
Notes:
The Y and Z components can be measured only after the In practice, a spin axis from the table of a machine that turns
machine has been assembled so that a statement concerning at the X axis of the machine (A axis) does not run exactly
the angularity of the machine geometry can be made. parallel to the X axis of the MCS.
The deviation is apparent in the top view (shown
Example for a measured real vector: exaggerated):
A=(-0.9999999994 , 0.000025383 , 0.000023745)
Consequently, the rotary axis vector is specified as ideal Y C axis Real rotary axis vector
vector during the commissioning (and normally also in the of the A axis
subsequent operation):
A=(-1,0,0) X
If a workpiece is clamped, it can be aligned with the "Measure If the A axis is turned by 90°, the actual position of the work-
2 points with correction of the rotary axis" measuring cycle. piece relative to the machine coordinate system can be
The edges of the workpiece then lie parallel to the MCS: determined easily:
Y
Workpiece
X Y
Z
X
Notes:
Z
Offset in X
Z Note:
The use of real vectors, in conjunction with orientation
transformations (CYCLE800, TRAORI), sometimes leads to
X changed axis positions compared with kinematics with purely
ideal vectors. There may be a risk of collision.
Consequently, the real vectors are not written for CYCLE9960.
If necessary, they can be activated from the log file.
Notes:
Term definition: Normalized vector The vector should have a length of 1 mm, but is currently
128.204 mm long.
A "normalized vector" is considered to be a vector whose The individual components of the vector must be divided by
length has the value "1". The unit of measurement is this total length:
interpreted by the NC in the valid unit of measurement
system. 5.691
IX = = 0.04439
The offset vector of the 45° B head is used as example for 128.204
performing a calculation:
I=(5.691, 100, 80.025) 100
IY = = 0.78000
The total length of a vector can be calculated as follows: 128.204
80.025
IZ = = 0.62420
128.204
L= ( I x )2 + ( I Y )2 + ( I Z )2 As check, these values can be used again in the formula.
A650: END
Notes: