五面体加工中心坐标系偏移旋转与误差补偿.docx
- 文档编号:10211311
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:10
- 大小:18.47KB
五面体加工中心坐标系偏移旋转与误差补偿.docx
《五面体加工中心坐标系偏移旋转与误差补偿.docx》由会员分享,可在线阅读,更多相关《五面体加工中心坐标系偏移旋转与误差补偿.docx(10页珍藏版)》请在冰点文库上搜索。
五面体加工中心坐标系偏移旋转与误差补偿
摘要:
目前国内五面体加工中心在立、卧头转换时,通常只进行简单的坐标系偏移补偿,通过G
17、G
18、G19来选择各个加工面。
如果采用坐标系旋转的方式,使Z轴始终沿主轴方向,更易于编程。
本文根据实际加工经验,讲解坐标系偏移、旋转和误差补偿的方法。
五面体加工中心是目前国内大型加工设备中比较先进的。
以我厂现使用中的沈机中捷THA57200×
400、GMC2560r
2、GMC2560wr3为例,控制系统采用西门子840D。
沈阳机床厂通常采用两种方式来补偿立、卧头的差值:
1、执行转头程序L01(newpos)就完成补偿变换;
2、执行完转头程序L01(newpos)后,再通过执行子程序L11完成变换。
其实这两种方式本质上没有什么区别,只是方式1中的L01(newpos)程序整合了方式2中的L01(newpos)和L11程序。
下面我们通过沈阳机床厂提供的说明及程序源码来分析一下其误差补偿程序的原理。
首先,机床厂提供一个用户数据文件UGU
D.arc:
%_N_UGUD_DEF
;$PATH=/_N_DEF_DIR
DEFNCKREALDTT[50];用于记录各头各角度偏移值(编者注)DEFNCKREALHEAD[10]
M17
HEAD[1]变量来表示当前头,如HEAD[1]=1表示当前是1号头,;用于记录头号(编者注)
HEAD[1]=2表示当前是2号头„„0为立头。
上述对当前头号的标识由厂商添加到相应子程序中,如在HEAD_
1.SPF子程序结束符“M17”之前添加“HEAD[1]=1”;在HEAD_
2.SPF子程序结束符“M17”之前添加“HEAD[1]=2”等。
DTT[]用于表示卧头在各个角度时相对于立头的偏差值:
;头1:
0°或180°时
DTT[11]主轴轴心与C轴在X向的偏差
DTT[12]主轴轴心与C轴在Y向的偏差
DTT[13]主轴轴心与C轴在Z向的偏差
90°或270°
DTT[14]主轴轴心与C轴在X向的偏差
DTT[15]主轴轴心与C轴在Y向的偏差
DTT[16]主轴轴心与C轴在Z向的偏差
上面的各个数据由厂商在调试时自己测量并设定到用户变量里面去。
我们通过查看L11程序,发现厂商使用的补偿方法其实是修改基准零点坐标系BNS来实现的。
如1号卧头处于0°方向时:
$P_UBFR[X,TR]=-DTT[11]$P_UBFR[Y,TR]=-DTT[12]$P_UBFR[Z,TR]=-DTT[13]
1号卧头处于180°方向时:
$P_UBFR[X,TR]=-DTT[11]$P_UBFR[Y,TR]=-DTT[12]$P_UBFR[Z,TR]=-DTT[13]
两者简单地对基准零点坐标系BNS进行正向或负向的偏移来实现补偿。
通过上面的分析我们发现了机床厂商提供的这套补偿方案的不合理之处:
1、修改了基准零点坐标系BNS。
这个坐标系是处于我们常用的可设定零点坐标系ENS(就是G
54、G55等所建立的坐标系)的上层的。
如果修改了BNS的偏移值,我们常用的G
53、G500命令是不能屏蔽BNS偏移值的,带着这个偏移值进行移动,机床有可能会无法到达正确的换刀点、换头点,也可能发生碰撞!
所以厂商要求必须将换刀程序、换头程序中的G53命令全部用SUPA命令代替,SUPA命令可以屏蔽BNS偏移值。
通常情况下我们的机床不在基准零点坐标系设置偏移,普通工人都认为可设定零点坐标系上层直接就是机床坐标系。
这个干涉习惯的基准零点坐标系设定方式并不容易为普通工人所接受,且一旦修改内容有误不易被发觉,容易出错。
2、这个程序只能应付0°、90°、180°、270°四个最常用的方向。
我们的卧头是5分度或
2.5分度的,在其它非正交分度时无法用此程序补偿。
3、由于机床卧头旋转存在误差,在相对方向的偏差值往往是不同的。
如我厂初步验收时,在未补偿的情况下,90°和270°方向的X向误差超过
0.05mm,Z向误差超过
0.06mm(后经厂商调试,控制在
0.03mm以内),而原L11误差补偿程序是无法补偿这个误差的,相反,还有可能会放大这个误差。
比如我们假设厂商在90°时测量出X值相对于立头向正向偏移了
0.03mm,他把DTT[14]设为了
0.03,那么当卧头转到270°时,程序会把X向负向补偿
0.03mm,而实际中我们测得的270°X向偏差值可能是正向的,这样无疑增大了误差。
如此会造成转头加工孔的同轴度较差,不能满足有严格同轴度要求的零件的加工。
4、原L11补偿程序不提供坐标系的旋转。
这往往需要操作者根据实际情况使用G
17、G
18、G19命令来选择加工平面。
这种方式在使用CYCLE81等循环时需要注意返回平面的正负号、图纸尺寸在各个坐标系方向的变化,编程不方便。
我们通常将工件坐标系建立为:
Z轴始终沿着主轴方向,加工平面选用G17平面(即XY平面),这样很方便根据图纸编程。
为了克服上述缺点,我们采用新思路编制了新的坐标系补偿程序。
1、添加GUD4用户自定义数据用来表示各个角度的偏移补偿;%_N_GUD4_DEF
;$PATH=/_N_DEF_DIR
DEFNCKREALU_0[3]=(
378.97,
0.04,
533.468)
DEFNCKREALU_90[3]=(
0.06,-
378.873,
533.468)
DEFNCKREALU_180[3]=(-
378.86,
0.05,
533.403)
DEFNCKREALU_270[3]=(
0.11,
378.931,
533.403)
DEFNCKREALU_LHY[3]
M17
由于我厂除了立头外,仅使用了一个卧头,所以仅添加了一组数组:
U_0[3]、U_90[3]、U_180[3]、U_270[3]。
U_0[0]、U_0[1]、U_0[2]分别表示卧头在0°时与立头的X、Y、Z差值。
同样:
U_90[]——卧头在90°时与立头的X、Y、Z差值;
U_180[]——卧头在180°时与立头的X、Y、Z差值;
U_270[]——卧头在270°时与立头的X、Y、Z差值。
以上参数全部手工测量,可以在“参数->用户数据->GUD4”下查询和修改。
我们定义了最常用的四个方向的补偿值,有效解决了不同方向补偿误差的微小区别。
2、建立一个用户循环,用于可设定零点坐标系ENS建立时的偏移设定:
LHYSET(INTXPOS,INTYPOS,INTZPOS)记录当前的测量状态,在LHY[]数组中记录立头坐标系与当前坐标系的差值,建立坐标系补偿。
每次找正工件建立坐标系的时候都需要执行一次,且仅执行一次就行。
参数XPOS、YPOS、ZPOS分别表示三个轴测量时的卧头角度。
如为立轴所打,记为-1。
如:
先用立轴测出Y值,再换卧头转到90°测出X和Z值。
将测量值录入到G
54、G55„„等完成后,需在程序开头执行
LHYSET(90,-1,90)
这将在机床坐标系和工件坐标系之间建立一个补偿。
以前不使用这个程序,在建立工件坐标系时我们需要通过手工计算得出当前坐标值与立头坐标值,比较麻烦。
原程序部分内容如下:
%_N_LHYSET_SPF
;$PATH=/_N_CUS_DIR
;---------------附件头误差补偿(建立坐标系测量后)--------------PROCLHYSET(INTXPOS,INTYPOS,INTZPOS)SAVEDISPLOF;X补偿
CASE(XPOS)OF-1GOTOSETX0GOTOFSET0X90GOTOFSET90X180GOTOFSET180X270GOTOFSET270XDEFAULTGOTOFERRORRET
SETX:
U_LHY[0]=0
GOTOFLHYENDX
SET0X:
U_LHY[0]=-U_0[0]
GOTOFLHYENDX
SET90X:
U_LHY[0]=-U_90[0]
GOTOFLHYENDX
SET180X:
U_LHY[0]=-U_180[0]
GOTOFLHYENDX
SET270X:
U_LHY[0]=-U_270[0]
GOTOFLHYENDX
LHYENDX:
ENDIF
;Y补偿
;„„
;Z补偿
;„„
RET
ERRORRET:
MSG("DEGREEERROR!
")
M00
GOTOBERRORRET
RET
3、建立一个用户循环,根据卧头角度旋转偏移坐标系并建立补偿:
LHY程序将ENS坐标系中的偏移值加上数组LHY[]所记录的立头与ENS坐标系差值得出立头的坐标系,再加上当前卧头对应的立卧差值得到当前工件坐标系的正确值。
程序如下:
%_N_LHY_SPF
;$PATH=/_N_CUS_DIR
;---------------旋转偏移坐标系并建立补偿--------------
PROCLHYDISPLOF
DEFREALUPX,UPY,UPZ
DEFREALUZZ
DEFREALCPOS
CPOS=$A_INA[3];读取当前卧头角度
;当前头为立头
IF(HEAD[1]==6)
TRANSX=U_LHY[0]Y=U_LHY[1]Z=U_LHY[2]
RET
ENDIF
;当前头为卧头
CASE(CPOS)OF0GOTOFTURN090GOTOFTURN90180GOTOFTURN180270GOTOFTURN270
TURN0:
UPX=U_0[0]UPY=U_0[1]UPZ=U_0[2]
GOTOFTURNSET
TURN90:
UPX=U_90[0]UPY=U_90[1]UPZ=U_90[2]
GOTOFTURNSET
TURN180:
UPX=U_180[0]UPY=U_180[1]UPZ=U_180[2]
GOTOFTURNSET
TURN270:
UPX=U_270[0]UPY=U_270[1]UPZ=U_270[2]
GOTOFTURNSET
TURNSET:
UPX=UPX+U_LHY[0]
UPY=UPY+U_LHY[1]
UPZ=UPZ+U_LHY[2]
UZZ=-CPOS+90
IF(UZZ<-180)
UZZ=UZZ+360
ENDIF
TRANSX=UPXY=UPYZ=UPZ
AROTZ=UZZX=90
RET
实际应用方法:
1、先将测量的坐标系值输入G54或其它ENS中。
2、执行LHYSET(INTXPOS,INTYPOS,INTZPOS)指令。
3、使用换头指令L01(newpos)后,在G54等代码后面需添加LHY指令来偏移旋转坐标系。
在工件程序中需要再次偏移或旋转坐标系的,请使用相对偏移或旋转指令(即ATRANS和AROT,而不是TRANS和ROT),如需恢复再次执行LHY指令即可。
由于刀具长度补偿默认补偿在机床坐标的Z轴,故卧头不使用D1等刀具长度补偿指令,而是在LHY执行后采用下面的指令取代:
ATRANSZ=$TC_DP21[$P_TOOLNO,$P_TOOL]
;范例——工件1加工程序
LHYSET(90,-1,90);建立G54时测量机床Y值用立头,测量X和Z用卧头转到90°
L01
(180)
G54
LHY;旋转坐标系
T1
ATRANSZ=$TC_DP21[$P_TOOLNO,$P_TOOL]
G90M3S600F30
„„;加工内容
T2
ATRANSZ=$TC_DP21[$P_TOOLNO,$P_TOOL]
„„;加工内容
L01
(270)
G54
LHY
ATRANSZ=$TC_DP21[$P_TOOLNO,$P_TOOL]
G90M3S600F30D1
„„;加工内容
M05
M30
如此,改进后的补偿程序完成。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 五面体 加工 中心 坐标系 偏移 旋转 误差 补偿