Cycle 451 MEASURE KINEMATICS (#48 / #2-01-1)
ISO programming
G451
Application
Refer to your machine manual.
This function must be enabled and adapted by the machine manufacturer.
Touch probe cycle 451 enables you to check and, if required, optimize the kinematics of your machine. Use the 3D TS touch probe to measure a HEIDENHAIN calibration sphere that you have attached to the machine table.
The control will determine the static tilting accuracy. The software minimizes the spatial error arising from the tilting movements and, at the end of the measurement process, automatically saves the machine geometry in the respective machine constants of the kinematics description.
Cycle run
- Clamp the calibration sphere and check for potential collisions.
- In Manual operation mode, set the preset to the center of the sphere or, if you defined Q431=1 or Q431=3: Manually position the touch probe above the calibration sphere in the touch probe axis and at the center of the sphere in the working plane.
- Select the Program Run operating mode and start the calibration program.
- The control automatically measures all rotary axes successively in the resolution you defined.
Programming and operating notes:
- If the kinematics data determined in Optimize mode exceed the permissible limit (maxModification no. 204801), the control displays a warning. Then you have to confirm acceptance of the determined values by pressing NC Start.
- During presetting, the programmed radius of the calibration sphere will only be monitored for the second measurement. The reason is that if pre-positioning with respect to the calibration sphere is inaccurate and you then start presetting, the calibration sphere will be probed twice.
Result parameter Q
The control saves the results of the touch probe cycle in the following Q parameters:
Q parameter | Meaning |
---|---|
Q141 | Standard deviation measured in the A axis (–1 if axis was not measured) |
Q142 | Standard deviation measured in the B axis (–1 if axis was not measured) |
Q143 | Standard deviation measured in the C axis (–1 if axis was not measured) |
Q144 | Optimized standard deviation in the A axis (–1 if axis was not optimized) |
Q145 | Optimized standard deviation in the B axis (–1 if axis was not optimized) |
Q146 | Optimized standard deviation in the C axis (–1 if axis was not optimized) |
Q147 | Offset error in X direction, for manual transfer to the corresponding machine parameter |
Q148 | Offset error in Y direction, for manual transfer to the corresponding machine parameter |
Q149 | Offset error in Z direction, for manual transfer to the corresponding machine parameter |
Result parameter QS
The control saves the measured position faults of rotary axes in the QS parameters QS144 to QS146. Each result is ten characters long. The results are separated from each other by a space.
Example: QS146 = "0.01234567 -0.0123456 0.00123456 -0.0012345"
Q parameter | Meaning |
---|---|
QS144 | Position error of A axis EY0A EZ0A EB0A EC0A |
QS145 | Position error of B axis EZ0B EX0B EC0B EA0B |
QS146 | Position error of C axis EX0C EY0C EA0C EB0C |
Position faults are deviations from the ideal axis position and are marked by four characters.
Example: EX0C= Position error of the C axis in X direction.
You can convert the individual results in the NC program, using string processing into numerical values and use them in evaluations, for example.
Example:
The cycle produces the following results within the QS parameter QS146:
QS146 = "0.01234567 -0.0123456 0.00123456 -0.0012345"
The example below shows how to convert the results produced into numerical values.
NC programs contained in this User's Manual are suggestions for solutions. The NC programs or individual NC blocks must be adapted before being used on a machine.
Change the following contents as needed:
- Tools
- Cutting parameters
- Feed rates
- Clearance height or safe position
- Machine-specific positions (e.g., with M91)
- Paths of program calls
Some NC programs depend on the machine kinematics. Adapt these NC programs to your machine kinematics before the first test run.
In addition, test the NC programs using the simulation before the actual program run.
With a program test you determine whether the NC program can be used with the available software options, the active machine kinematics and the current machine configuration.
11 QS0 = SUBSTR ( SRC_QS146 BEG0 LEN10 ) | ; Read out the first result EX0Cfrom QS146 |
12 QL0 = TONUMB ( SRC_QS0 ) | ; Convert alphanumeric value from QS0 to a numerical value and assign it to QL0 |
13 QS0 = SUBSTR ( SRC_QS146 BEG11 LEN10 ) | ; Read out the second result EY0Cfrom QS146 |
14 QL1 = TONUMB ( SRC_QS0 ) | ; Convert alphanumeric value from QS0 to a numerical value and assign it to QL1 |
15 QS0 = SUBSTR ( SRC_QS146 BEG22 LEN10 ) | ; Read out the third result EA0Cfrom QS146 |
16 QL2 = TONUMB ( SRC_QS0 ) | ; Convert alphanumeric value from QS0 to a numerical value and assign it to QL2 |
17 QS0 = SUBSTR ( SRC_QS146 BEG33 LEN10 ) | ; Read out the forth result EB0Cfrom QS146 |
18 QL3 = TONUMB ( SRC_QS0 ) | ; Convert alphanumeric value from QS0 to a numerical value and assign it to QL3 |
Positioning direction
The positioning direction of the rotary axis to be measured is determined from the start angle and the end angle that you define in the cycle. A reference measurement is automatically performed at 0°.
Specify the start and end angles in such a way that the same position is not measured twice. A duplicated point measurement (e.g., measuring positions +90° and –270°) is not advisable, but it will not generate an error message.
- Example: Start angle = +90°, end angle = –90°
- Start angle = +90°
- End angle = –90°
- No. of measuring points = 4
- Stepping angle resulting from the calculation = (–90° minus +90°) / (4 minus 1) = –60°
- Measuring point 1 = +90°
- Measuring point 2 = +30°
- Measuring point 3 = –30°
- Measuring point 4 = –90°
- Example: start angle = +90°, end angle = +270°
- Start angle = +90°
- End angle = +270°
- No. of measuring points = 4
- Stepping angle resulting from the calculation = (270° minus 90°) / (4 minus 1) = +60°
- Measuring point 1 = +90°
- Measuring point 2 = +150°
- Measuring point 3 = +210°
- Measuring point 4 = +270°
Machines with Hirth-coupled axes
- So remember to leave a large enough set-up clearance to prevent any risk of collision between the touch probe and calibration sphere
- Also ensure that there is enough space to reach the set-up clearance (software limit switch)
- Note the documentation of the machine manufacturer
- Define a retraction height greater than 0 if the Adv. Function Set 2 (#9 / #4-01-1) software option is not available.
- The measured positions are calculated from the start angle, end angle, and number of measurements for the respective axis and from the Hirth grid.
Example calculation of measuring positions for an A axis:
Start angle Q411 = –30
End angle Q412 = +90
Number of measuring points Q414 = 4
Hirth grid = 3°
Calculated stepping angle = (Q412 minus Q411) / (Q414 minus 1)
Calculated stepping angle = (90° minus –30°) / (4 minus 1) = 120° / 3 = 40°
Measuring position 1 = Q411 + 0 * stepping angle = –30° → –30°
Measuring position 2 = Q411 + 1 * stepping angle = +10° → 9°
Measuring position 3 = Q411 + 2 * stepping angle = +50° → 51°
Measuring position 4 = Q411 + 3 * stepping angle = +90° → 90°
Choice of number of measuring points
To save time, you can make a rough optimization with a small number of measuring points (1 or 2), for example when commissioning the machine.
You then make a fine optimization with a medium number of measuring points (recommended value = approx. 4). Higher numbers of measuring points do not usually improve the results. Ideally, you should distribute the measuring points evenly over the tilting range of the axis.
This is why you should measure an axis with a tilting range of 0° to 360° at three measuring points, namely at 90°, 180° and 270°. Thus, define a starting angle of 90° and an end angle of 270°.
If you want to check the accuracy accordingly, you can also enter a higher number of measuring points in the Check mode.
If a measuring point has been defined at 0°, it will be ignored because the reference measurement is always done at 0°.
Choice of the calibration sphere position on the machine table
In principle, you can fix the calibration sphere to any accessible position on the machine table and also on fixtures or workpieces. The following factors should positively influence the result of measurement:
- On machines with rotary tables/tilting tables: Clamp the calibration sphere as far as possible away from the center of rotation.
- On machines with very large traverse paths: Clamp the calibration sphere as closely as possible to the position intended for subsequent machining.
Position the calibration sphere on the machine table so that there can be no collisions during the measuring process.
Notes on various calibration methods
- Rough optimization during commissioning after entering approximate dimensions.
- Number of measuring points between 1 and 2
- Angular step of the rotary axes: Approx. 90°
- Fine optimization over the entire range of traverse
- Number of measuring points between 3 and 6
- The start and end angles should cover the largest possible traverse range of the rotary axes.
- Position the calibration sphere in such a way on the machine table that, with rotary table axes, there is a large measuring circle or that, on swivel head axes, measurement can be made at a representative position (e.g., in the center of the traverse range).
- Optimization of a specific rotary axis position
- Number of measuring points between 2 and 3
- The measurements are made with the aid of the inclination angle of an axis (Q413/Q417/Q421) around the rotary axis angle at which the workpiece is to be machined later.
- Position the calibration sphere on the machine table for calibration at the position subsequently intended for machining.
- Inspecting the machine accuracy
- Number of measuring points between 4 and 8
- The start and end angles should cover the largest possible traverse range of the rotary axes.
- Determination of the rotary axis backlash
- Number of measuring points between 8 and 12
- The start and end angles should cover the largest possible traverse range of the rotary axes.
Notes on the accuracy
If required, deactivate the lock on the rotary axes for the duration of the calibration. Otherwise it may falsify the results of measurement. The machine manual provides further information.
The geometrical and positioning errors of the machine influence the measured values and therefore also the optimization of a rotary axis. For this reason there will always be a certain amount of error.
If there were no geometrical and positioning errors, any values measured by the cycle at any point on the machine at a certain time would be exactly reproducible. The greater the geometrical and positioning errors are, the greater is the dispersion of measured results when you perform measurements at different positions.
The dispersion output by the control in the measurement log is a measure of the machine's static tilting accuracy. However, the measuring circle radius and the number and position of measuring points have to be included in the evaluation of accuracy. One measuring point alone is not enough to calculate dispersion. For only one point, the result of the calculation is the spatial error of that measuring point.
If several rotary axes are moved simultaneously, their error values are combined. In the worst case they are added together.
If your machine is equipped with a feedback-controlled spindle, you should activate angle tracking in the touch probe table (TRACK column). This generally increases the accuracy of measurements with a 3D touch probe.
Backlash
Backlash is a small amount of play between the rotary or angle encoder and the table that occurs when the traverse direction is reversed. If the rotary axes have backlash outside of the control loop, for example because the angle measurement is performed with the motor encoder, this can result in significant error during tilting.
With input parameter Q432, you can activate backlash measurement. Enter an angle that the control uses as the traversing angle. The cycle will then carry out two measurements per rotary axis. If you take over the angle value 0, the control will not measure any backlash.
Backlash measurement is not possible if an M function for positioning the rotary axes is set in the optional mStrobeRotAxPos machine parameter (no. 204803) or if the axis is a Hirth axis.
Programming and operating notes:
- The control does not perform an automatic backlash compensation.
- If the measuring circle radius is < 1 mm, the control does not calculate the backlash. The larger the measuring circle radius, the more accurately the control can ascertain the rotary axis backlash.
Notes
- Deactivate the basic rotation before running the cycle.
- Set the preset and the basic rotation again after optimization.
- This cycle can be executed only in the FUNCTION MODE MILL machining mode.
- Before the beginning of the cycle, M128 or FUNCTION TCPM must be switched off.
- As with Cycles 451 and 452, Cycle 453 ends with active 3D‑ROT in automatic mode, matching the position of the rotary axes.
- Before defining the cycle, you must set the preset to the center of the calibration sphere and activate it, or set input parameter Q431 to 1 or 3, respectively.
- For the positioning feed rate when moving to the probing height in the touch probe axis, the control uses the value from cycle parameter Q253 or the FMAX value from the touch probe table, whichever is smaller. The control always moves the rotary axes at positioning feed rate Q253, while probe monitoring is inactive.
- The control ignores cycle definition data that applies to inactive axes.
- A correction in the machine datum (Q406=3) is only possible if superimposed rotary axes on the spindle head side or table side are measured.
- If you have activated presetting before the calibration (Q431 = 1/3), then move the touch probe to the set-up clearance (Q320 + SET_UP) to a position approximately above the center of the calibration sphere before the start of the cycle.
- Programming in inches: The control always records the log data and results of measurement in millimeters.
- After measuring the kinematics, you must re-determine the preset.
Notes about machine parameters
- If the optional machine parameter mStrobeRotAxPos (no. 204803) is not equal to –1 (M function positions the rotary axis), then start a measurement only if all rotary axes are at 0°.
- In every probing process the control first measures the radius of the calibration sphere. If the measured sphere radius differs from the entered sphere radius by more than the value you have defined in the optional machine parameter maxDevCalBall (no. 204802), the control displays an error message and ends the measurement.
- For angle optimization, the machine manufacturer must adapt the configuration correspondingly.
Cycle parameters
Help graphic | Parameter |
---|---|
Q406 Mode (0/1/2/3)? Define whether the control will check or optimize the active kinematics: 0: Check the active machine kinematics. The control measures the kinematics in the rotary axes you have defined, but it does not make any changes to the active kinematics. The control displays the measurement results in a measuring log. 1: Optimize the active machine kinematics: The control measures the kinematics in the rotary axes you have defined. It then optimizes the rotary axes positions of the active kinematics. 2: Optimize the active machine kinematics: The control measures the kinematics in the rotary axes you have defined. It then optimizes angle and position errors. The KinematicsComp software option (#52 / #2-04-1) is required for compensation of angle errors. 3: Optimize the active machine kinematics: The control measures the kinematics in the rotary axes you have defined. It then automatically corrects the machine datum. It then optimizes angle and position errors. The KinematicsComp software option (#52 / #2-04-1) is required for this. Input: 0, 1, 2, 3 | |
Q407 Radius of calib. sphere? Enter the exact radius of the calibration sphere being used. Input: 0.0001...99.9999 | |
Q320 Set-up clearance? Additional distance between touch point and ball tip. Q320 is active in addition to the SET_UP column in the touch probe table. This value has an incremental effect. Input: 0...99999.9999 or PREDEF | |
Q408 Retraction height? 0: Do not move to any retraction height; the control moves to the next measuring position in the axis to be measured. Not allowed for Hirth axes! The control moves to the first measuring position in the sequence A, then B, then C. > 0: Retraction height in the untilted workpiece coordinate system to which the control positions the spindle axis before positioning a rotary axis. In addition, the control moves the touch probe in the working plane to the datum. Touch probe monitoring is not active in this mode. Define the positioning feed rate in parameter Q253. This value has an absolute effect. Input: 0...99999.9999 | |
Q253 Feed rate for pre-positioning? Define the traversing speed of the tool during pre-positioning in mm/min. Input: 0...99999.9999 or FMAX, FAUTO, PREDEF | |
Q380 Ref. angle in ref. axis? Enter the reference angle (basic rotation) for acquiring the measuring points in the active workpiece coordinate system. Defining a reference angle can considerably enlarge the measuring range of an axis. This value has an absolute effect. Input: 0...360 | |
Q411 Starting angle in A axis? Starting angle in the A axis at which the first measurement will be made. This value has an absolute effect. Input: –359.9999...+359.9999 | |
Q412 End angle in A axis? End angle in the A axis at which the last measurement will be made. This value has an absolute effect. Input: –359.9999...+359.9999 | |
Q413 Angle of incidence in A axis? Angle of incidence in the A axis at which the other rotary axes will be measured. Input: –359.9999...+359.9999 | |
Q414 No. of meas. points in A (0...12)? Number of measuring points the control will use to measure the A axis. If the input value = 0, the control does not measure the respective axis. Input: 0...12 | |
Q415 Starting angle in B axis? Starting angle in the B axis at which the first measurement will be made. This value has an absolute effect. Input: –359.9999...+359.9999 | |
Q416 End angle in B axis? End angle in the B axis at which the last measurement will be made. This value has an absolute effect. Input: –359.9999...+359.9999 | |
Q417 Angle of incidence in B axis? Angle of incidence in the B axis at which the other rotary axes will be measured. Input: –359.999...+360.000 | |
Q418 No. of meas. points in B (0...12)? Number of measuring points the control will use to measure the B axis. If the input value = 0, the control does not measure the respective axis. Input: 0...12 | |
Q419 Starting angle in C axis? Starting angle in the C axis at which the first measurement will be made. This value has an absolute effect. Input: –359.9999...+359.9999 | |
Q420 End angle in C axis? End angle in the C axis at which the last measurement will be made. This value has an absolute effect. Input: –359.9999...+359.9999 | |
Q421 Angle of incidence in C axis? Angle of incidence in the C axis at which the other rotary axes will be measured. Input: –359.9999...+359.9999 | |
Q422 No. of meas. points in C (0...12)? Number of measuring points the control will use to measure the C axis. If the input value = 0, the control does not measure the respective axis. Input: 0...12 | |
Q423 Number of probes? (optional) Define the number of measuring points the control will use to measure the calibration sphere in the plane. Fewer measuring points increase speed, and more measuring points increase measurement precision. Input: 3...8 | |
Q431 Preset (0/1/2/3)? (optional) Define whether the control will automatically set the active preset at the center of the sphere: 0: Do not set the preset automatically at the center of the sphere: Set the preset manually before the start of the cycle 1: Set the preset automatically at the center of the sphere before measurement (the active preset will be overwritten): Pre-position the touch probe manually above the calibration sphere before the start of the cycle 2: Set the preset automatically at the center of the sphere after measurement (the active preset will be overwritten): Set the preset manually before the start of the cycle 3: Set the preset at the center of the sphere before and after measurement (the active preset will be overwritten): Pre-position the touch probe manually above the calibration sphere before the start of the cycle Input: 0, 1, 2, 3 | |
Q432 Angular range of backlash comp.? (optional) Define the traversing angle the control will use to measure the rotary axis backlash. The traversing angle must be significantly larger than the actual backlash of the rotary axes. If input value = 0, the control does not measure the backlash. Input: –3...+3 |
NC programs contained in this User's Manual are suggestions for solutions. The NC programs or individual NC blocks must be adapted before being used on a machine.
Change the following contents as needed:
- Tools
- Cutting parameters
- Feed rates
- Clearance height or safe position
- Machine-specific positions (e.g., with M91)
- Paths of program calls
Some NC programs depend on the machine kinematics. Adapt these NC programs to your machine kinematics before the first test run.
In addition, test the NC programs using the simulation before the actual program run.
With a program test you determine whether the NC program can be used with the available software options, the active machine kinematics and the current machine configuration.
11 TOOL CALL "TOUCH_PROBE" Z | ||
12 TCH PROBE 450 SAVE KINEMATICS ~ | ||
| ||
| ||
13 TCH PROBE 451 MEASURE KINEMATICS ~ | ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
|
Various modes (Q406)
Test mode Q406 = 0
- The control measures the rotary axes in the positions defined and calculates the static accuracy of the tilting transformation.
- The control records the results of a possible position optimization but does not make any adjustments.
"Optimize position of rotary axes" mode Q406 = 1
- The control measures the rotary axes in the positions defined and calculates the static accuracy of the tilting transformation.
- During this, the control tries to change the position of the rotary axis in the kinematics model in order to achieve higher accuracy.
- The machine data are adjusted automatically.
"Optimize position and angle" mode Q406 = 2
- The control measures the rotary axes in the positions defined and calculates the static accuracy of the tilting transformation.
- After that, the position is optimized. No additional measurements are necessary for this; the control calculates the optimization of the position automatically.
Depending on the machine kinematics for correctly determining the angles, HEIDENHAIN recommends performing the measurement once with an inclination angle of 0°.
"Optimize machine datum, position, and angle" mode (Q406 = 3)
- The control measures the rotary axes in the positions defined and calculates the static accuracy of the tilting transformation.
- After that, the position is optimized. No additional measurements are necessary for this; the control calculates the optimization of the position automatically.
- For correct determination of the angular position errors, HEIDENHAIN recommends setting the affected rotary axis to an inclination angle of 0° for this measurement.
- After correcting a machine datum, the control tries to reduce the compensation of the associated angular position error (locErrA/locErrB/locErrC) of the measured rotary axis.
NC programs contained in this User's Manual are suggestions for solutions. The NC programs or individual NC blocks must be adapted before being used on a machine.
Change the following contents as needed:
- Tools
- Cutting parameters
- Feed rates
- Clearance height or safe position
- Machine-specific positions (e.g., with M91)
- Paths of program calls
Some NC programs depend on the machine kinematics. Adapt these NC programs to your machine kinematics before the first test run.
In addition, test the NC programs using the simulation before the actual program run.
With a program test you determine whether the NC program can be used with the available software options, the active machine kinematics and the current machine configuration.
11 TOOL CALL "TOUCH_PROBE" Z | ||
12 TCH PROBE 451 MEASURE KINEMATICS ~ | ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
|
Log function
After running Cycle 451, the control creates a log (TCHPRAUTO.html) and saves it in the folder that also contains the associated NC program. This log contains the following data:
- Creation date and time of the log
- Path of the NC program from which the cycle was run
- Tool name
- Active kinematics
- Mode used (0=Check/1=Optimize position/2=Optimize pose/3=Optimize machine datum and pose)
- Inclination angles
- For each measured rotary axis:
- Starting angle
- End angle
- Number of measuring points
- Measuring circle radius
- Averaged backlash, if Q423>0
- Positions of the axes
- Standard deviation (scatter)
- Maximum deviation
- Angular error
- Compensation values in all axes (preset shift)
- Position before optimization of the rotary axes checked (relative to the beginning of the kinematic transformation chain, usually the spindle nose)
- Position after optimization of the rotary axes checked (relative to the beginning of the kinematic transformation chain, usually the spindle nose)
- Averaged positioning error and standard deviation of the positioning errors to 0
- SVG files with graphs: measured and optimized errors of individual measurement positions.
- Red curve: measured positions
- Green curve: optimized values after cycle has run
- Designation of the graph: axis designation depends on the rotary axis (e.g., EYC = component error in Y of axis C)
- X axis of the graph: rotary axis position in degrees
- Y axis of the graph: position deviations in mm
- Sample measurement: EYC component error in Y of axis C