对工件进行检测之前,需要对所用的测头进行校验;程序中出现的数值是软件记录测杆红宝石球心的位置,但实际测量时是红宝石球表面接触工件,这就需要对实际的接触点与软件记录的位置沿着测点矢量方向进行测头半径、位置的补偿。通过校验,消除以下三个方面的误差:
(1)理论测针半径与实际测针半径之间的误差;
(2)理论测杆长度与实际测杆长度的误差;
(3)测头旋转角度的误差;
注:工件测量过程中使用的每一个角度都是由A角B角构成的,绕机器坐标系X轴旋转的角度为A角,应用范围为0—105度;绕Z轴旋转的角定义为B角,应用范围为-180--+180度;角度的正负判定根据右手法则:拇指指向Z轴正方向,顺四指旋转角度为正,反之为负角;对于自动测座,A角B角是以7.5度为一个分度,手动测座以15度为一个分度进行旋转。
均方根值(RMS)也称作为效值,它的计算方法是先平方、再平均、然后开方。
RMS是表示测量值与真实值之间的符合程度,是和真实值做比较。
RMS Error:这是均方根误差,它是根据校准期间获取的所有点计算得出的。
控制器校验form error值由最大/最小偏差设置为RMS误差;renishaw声明RMS误差更能反映真实的from error;
程序设置探头校验误差的选项:
$$/* Header
DMISMN/'Created by [爱科腾瑞科技(北京)有限公司] on 星期一, 六月 28, 2021', 4.0
UNITS/MM, ANGDEC, MMPS
WKPLAN/XYPLAN
PRCOMP/ON
TECOMP/ON
FLY/1.0000
MODE/MAN
SNSET/APPRCH, 2.0000
SNSET/RETRCT, 2.0000
SNSET/DEPTH, 0.0000
SNSET/SEARCH, 10.0000
SNSET/CLRSRF, 20.0000
RECALL/D(MCS)
SNSLCT/S(40-D2)
GEOALG/BF, LSTSQR
GEOALG/ANGLB, DEFALT
GEOALG/CIRCLE, LSTSQR
GEOALG/ARC, LSTSQR
GEOALG/PLANE, LSTSQR
$$
$$
$$*/
$$
$$ Change sensor setting for Calibration
SNSET/APPRCH, 3.0000
SNSET/RETRCT, 3.0000
SNSET/SEARCH, 10.0000
SNSET/CLRSRF, 15.0000
$$
$$ This sample DMIS Macro is provided by External-Array Software, Inc.
$$ It should be modified for your own use. There is no guarantee for
$$ the quality of this Macro. November, 2003
$$ FUNCION: Move machine along GI, GJ, GK direction so that the
$$ sensor mounting point will be on the plane defined by
$$ PLANE( POINT(GX, GY, GZ), VECTOR( GI, GJ, GK) )
$$ ALL Macro parameters are in PCS and Current UNITS
$$ Last update: 3-1-04 Add mode checking. only works in PROG MODE
$$ Last update: 7-6-10 Add 'SNSLABEL'. To this Sensor label that
$$ the Macro is generated. If the current sensor
$$ length is different from SNSLABEL, the difference
$$ will be used to adjust GOTO clearance position
$$ Last update: 9-27-10 Optimize the clear goto position. Too far from
$$ the sphere center.
$$ Last update: 10-31-10 When the current position is above the ClEAR
$$ move direct above the CLEAR instead of to the CLEAR level
$$ Labe update: 12-13-2011 Return to V3.0 macro
$$ Last update: 2-23-2012. Ian Kavanagh
$$ Last update: 10-25-2012.
$$ Was: GOTO/GX+DX*GI, GY+DY*GJ, GZ+DZ*GK
$$ Is: GOTO/GX+DX, GY+DY, GZ+DZ
$$ Whilst programming I defined a new angle, so dropped it on to the sphere
$$ for calibration.
$$ Plenty of room to travel clear to the sphere but instead of going to
$$ a clear plane above the sphere first it moved in the X and Y axis first,
$$ had I left it the probe body would of collided with the sphere
M(EASI_CLEARMNT_GOTO) = MACRO/'SNSLABEL',GX, GY, GZ, GI, GJ, GK
DECL/LOCAL, REAL, CURX, CURY, CURZ, DD, DX, DY, DZ, DMX, DMY, DMZ
DECL/LOCAL, CHAR, 255, SSNAME, MMODE
MMODE = VALUE/MODE
IF/( MMODE .EQ. 'PROG,MAN' )
CURX = VALUE/GOTO, XAXIS
CURY = VALUE/GOTO, YAXIS
CURZ = VALUE/GOTO, ZAXIS
DMX = ASSIGN/CURX
DMY = ASSIGN/CURY
DMZ = ASSIGN/CURZ
SSNAME = VALUE/SNSLCT
DX = OBTAIN/SS(@SSNAME), 2
DY = OBTAIN/SS(@SSNAME), 3
DZ = OBTAIN/SS(@SSNAME), 4
CURX = ASSIGN/ (CURX - DX)
CURY = ASSIGN/ (CURY - DY)
CURZ = ASSIGN/ (CURZ - DZ)
DD = ASSIGN/((GX-CURX)*GI+(GY-CURY)*GJ+(GZ-CURZ)*GK)
IF/(DD .GT. 0)
GOTO/DMX+GI*DD, DMY+GJ*DD, DMZ+GK*DD
ENDIF
GOTO/GX+DX, GY+DY, GZ+DZ
ENDIF
ENDMAC
$$ Sensor::40-D2 calibration
KNPTN1 = ASSIGN/0
$$ ThChange() is to check whether activating this sensor requires change rack
$$ Get.Status.ThChange(40-D2, KNPTN1)
IF/KNPTN1.EQ.0
CALL/M(EASI_CLEARMNT_GOTO), (40-D2), -50.500000, 49.500000, 215.301062,$
0.000000, 0.000000, 1.000000
ENDIF
SNSLCT/S(40-D2)
DMESW/COMAND,'WAITSTOP'
CALIB/SENS, S(40-D2), F(NAN), 9
GOTO/ -50.500000, 49.500000, -52.098938
PTMEAS/CART, -50.500000, 49.500000, -68.098938, 0.000000, 0.000000, 1.000000
GOTO/ -41.649475, 49.500000, -65.470429
PTMEAS/CART, -39.500568, 49.500000, -74.449463, 0.866025, 0.000000, 0.500000
GOTO/ -38.911943, 55.005341, -68.604279
GOTO/ -44.705971, 59.535552, -67.419252
GOTO/ -51.526264, 62.288223, -68.604279
PTMEAS/CART, -55.999716, 59.025787, -74.449463, -0.433013, 0.750000, 0.500000
GOTO/ -61.061794, 56.782882, -68.604279
GOTO/ -62.088057, 49.500000, -67.419252
GOTO/ -61.061794, 42.217118, -68.604279
PTMEAS/CART, -55.999716, 39.974213, -74.449463, -0.433013, -0.750000, 0.500000
PTMEAS/CART, -56.850525, 38.500568, -80.799988, -0.500000, -0.866025, 0.000000
GOTO/ -54.180255, 32.185760, -80.799988
GOTO/ -48.649736, 31.895918, -80.799988
GOTO/ -43.300334, 33.329286, -80.799988
PTMEAS/CART, -42.001339, 40.061280, -80.799988, 0.669131, -0.743145, 0.000000
GOTO/ -35.170441, 40.649475, -80.799988
GOTO/ -33.185760, 45.819745, -80.799988
GOTO/ -32.895918, 51.350264, -80.799988
PTMEAS/CART, -38.897013, 54.665982, -80.799988, 0.913545, 0.406737, 0.000000
GOTO/ -37.345556, 61.344314, -80.799988
GOTO/ -41.649475, 64.829559, -80.799988
GOTO/ -46.819745, 66.814240, -80.799988
PTMEAS/CART, -51.827621, 62.131472, -80.799988, -0.104528, 0.994522, 0.000000
GOTO/ -57.699666, 65.670714, -80.799988
GOTO/ -62.344314, 62.654444, -80.799988
GOTO/ -65.829559, 58.350525, -80.799988
PTMEAS/CART, -62.923502, 52.140697, -80.799988, -0.978148, 0.207912, 0.000000
GOTO/ -67.216622, 53.053228, -76.189532
GOTO/ -65.465023, 52.680914, -71.897344
GOTO/ -59.131593, 51.334702, -65.455391
GOTO/ -50.500000, 49.500000, -52.098938
ENDMES
DMESW/COMAND,'WAITSTOP'
$$ Additional CALL for a clear move
CALL/M(EASI_CLEARMNT_GOTO), (40-D2), -50.500000, 49.500000, 215.301062, 0.000000, 0.000000, 1.000000
$$
$$ Reset sensor setting for measurement
SNSET/APPRCH, 2.0000
SNSET/RETRCT, 2.0000
SNSET/SEARCH, 10.0000
SNSET/CLRSRF, 20.0000
$$