朱远吉
(中国东方数控有限公司,江苏 南京211153)
数控加工中心常按主轴在空间所处的状态通常可分为立式加工中心和卧式加工中心,其区别主要看主轴在空间处于垂直还是水平状态,主轴可同时作垂直和水平转换的,称为立卧式加工中心或五面加工中心。
西门子SINUMERIK 828D 系统自上市以来以其强大而稳定的功能,赢得了广大客户的认可,它秉承了西门子系统功能丰富、开放友好等一系列特点。本例要给大家介绍的是在一台龙门加工中心上,通过828D 系统丰富多彩的NC 编程指令以及平台界面的二次开发功能EasyScreen 功能,配置SETCO(赛夺科)F58D02-ACA-E 型多向摇摆立卧主轴头实现立卧转换的示例。
立卧主轴头AC 轴的实际运动均通过SP 轴旋转与机械传动实现,所以不同于3+2 轴机床中的A、C 轴可以编程A、C 地址,本例是通过宏程序L280、L290 实现的AC 轴运动。并且A 轴(下头座)的啮合与脱开必须满足主轴在固定的角度,主轴端面的刻线与主轴外圈端面刻线重合。
另外A、C 轴为虚拟轴,MD30130 设置为0,其它通用机床轴名MD10000,以及通道对应的机床轴MD20070、通道中的轴名MD20080 仍然需要设置。该立卧主轴头在A、C 轴旋转位置均带有HEIDENHAIN ROD 486 增量编码器,作为测量系统反馈实际位置,用来消除A 轴(下头座)、C 轴(上头座)分别与主运动机构啮合的间隙。所以PLC 要处理对应第一测量系统信号DB3804.DBX1.5 和DB3805.DBX1.5。
拓扑识别SMC20 模块后,分别在X,Z 轴的驱动上进行轴分配,将A,C 轴对应的SMC20 模块作为X,Z 轴的第二编码器接口模块进行配置。然后进入“编码器数据”配置界面,通过“编码器+”、“编码器-”选择“编码器2”界面,根据编码器类型及参数在“编码器2”的配置界面进行配置。
A、C 轴相关NC 参数设置如下:
MD30460 $MA_BASE_FUNCTION_MASK=100H,选择附加的定位轴
MD30300 $MA_IS_ROT_AX=1 回转轴设定
MD30310 $MA_ROT_IS_MODULO=0,取消回转轴模数转换
MD30320 $MA_DISPLAY_IS_MODULO=0,取消回转轴模数360°显示
MD34110 $MA_REFP_CYCLE_NR=-1,取消回参考点
MD34200 $MA_ENC_REFP_MODE=0,假定为绝对值编码器回零模式
MD34210 $MA_ENC_REFP_STATE=1/2/3
先按照绝对值电机设零点方法,设好零点(前提是A,C 轴对齐零刻度线),然后改为3,记忆关机前零点,回零标记变为暗色。
为了让操作使用的便利,利用828D 自带的EASYSCREEN功能设计CUSTOM用户自定义画面,其中需要定义初始化程序easyscreen.ini 以及主要的界面程序custom.com。
3.3.1 基本程序
本例中用一个主轴电机通过机械结构分别与AC 轴啮合来驱动AC 轴旋转的情况,本质上是要分别记忆AC 轴定位后的位置值并保存到参数中,因为当AC 轴转动完成后,机床开始加工的时候主轴是要旋转起来的,而主轴旋转结束停止的位置是随机的,那么当再次要进行AC 轴定位的时候,就要继续上次定位的位置进行累加。
同时A 轴(下头座)的啮合与脱开必须满足主轴在固定的角度,主轴端面的刻线与主轴外圈端面刻线重合,下头座才能脱开进行旋转。当C 轴,A 轴都在0°初始位置时,这个刻线重合处的定位角度SPOS=17°。并且设计如下A 轴刻线对齐位置记忆参数R5 及相关程序,如下:
R1=ROUND($A_DBR[12])
R7=ROUND($A_DBR[16])
R13=R1+R7
IF(R13<=17)
R5=R13+17
ENDIF
IF(R13>17)
R5=R13+17+360
ENDIF
最初A 轴旋转的时候,定位到17°的位置,端面刻线对齐后,再通过液压机构脱开,A 轴才可以转动。后面如果有C 轴的转动,以及A 轴的转动,都会让实际主轴端面不旋转的情况下系统界面SP 轴坐标值数字累加,但是只要是A 轴转动就需要主轴端面对齐刻线,所以这个时候就要找到之前A、C 轴的转动导致的主轴坐标值变化了多少,即R13 的值,这个值加上最初的17°等于R5,再执行SPOS=R5 定位,就是保证了执行这个指令的时候主轴端面刻线是对齐的,包括中间执行加工任务主轴旋转自由停车后,执行SPOS=R5 都会精确找到这个刻线对齐的定位度数,因为AC 两个编码器相当于记录了AC 定位导致的主轴坐标值累计变化值。
C 轴的旋转不需要固定刻线位置,所以C 轴的宏程序设计不需要设计上面A 轴的R5 类型的参数。只需要在定位完成后将编程位置赋值给当前位置参数即可。
3.3.2 通过读取实际坐标值补偿运动误差
R12=R0-$A_DBR[12]
IF (R12>$MN_USER_DATA_FLOAT [10]) OR (R12<-$MN_USER_DATA_FLOAT[10])
SPOS=IC(R12)
ENDIF
G4F0.5
STOPRE
R1=ROUND($A_DBR[12])
例:A 轴定位宏程序L280
;R0: A 轴编程位置
;R1: A 轴当前位置
;R2: 编程位置与当前位置的位置差
;R3: R0 除以5 的值
;R4:R1 除以5 的值
;R5: A 轴初始定位中间变量
;R7: C 轴当前位置
;R12: A 轴编程位置与实际位置的差值
;R13: A 轴当前位置与C 轴当前位置之和
;$A_DBD[12]:A 轴实际坐标值保存在DB4900.DBD12 中
;$A_DBD[16]:C 轴实际坐标值保存在DB4900.DBD16 中
;MD14514[10]=0.5,A 轴反向间隙设定误差补偿范围
R1=ROUND($A_DBR[12])
R2=R0-R1
R3=R0/5
R4=R1/5
R7=ROUND($A_DBR[16])
R13=R1+R7
IF R3<>ROUNDUP(R3) GOTOF INFO2
IF R4<>ROUNDUP(R4) GOTOF INFO2
IF R2==0 GOTOF INFO1
IF(R13<=17)
R5=R13+17
ENDIF
IF(R13>17)
R5=R13+17+360
ENDIF
M05
M41
M80
M03S0
G4F0.2
M05
SPOS=R5
M52
G4F2
STOPRE
SPOS=IC(R2)
R12=R0-$A_DBR[12]
IF (R12>$MN_USER_DATA_FLOAT [10]) OR (R12<-$MN_USER_DATA_FLOAT[10])
SPOS=IC(R12)
ENDIF
R1=ROUND($A_DBR[12])
M53
G4F2
STOPRE
M81
M17
INFO1:MSG("**** A 轴无旋转动作 原因:编程位置=当前位置****")
G04F3
MSG("")
M17
INFO2:MSG("**** A 轴无旋转动作 原因:编程位置不是5 的整数倍****")
G04F3
MSG("")
M17
带立卧转换主轴头的龙门式加工中心比普通立加或卧加功能更加灵活,加工产品范围更加广泛,也为客户节约了空间以及设备和人员成本。传统立卧转换的机床是通过一个立头和一个卧头更换分别机械啮合的方法实现立卧转换,这样不仅效率低,而且重复定位的精度得不到保证。通过案例既实现传统的立卧转换,扩大了产品加工范围,又保证了重复定位精度及加工效率,不失为一种有效的方法。