胡辉
昌河飞机工业(集团)有限责任公司 江西景德镇 333002
在实际零件加工过程中,由于材料变形、环境温度、设备精度、刀具磨损及加工方法等因素的影响,零件的厚度会出现过厚或过薄的情况,这时需要操作人员根据实际加工情况,对该工件的零点在某个方向进行偏置,这样整个加工程序会整体偏移,使得最终加工结果满足设计公差要求。
西门子数控系统提供了工件坐标系零点偏置功能(见图1),在粗偏的基础上进行精偏设置。操作人员在手动输入精偏值的过程中,由于疏忽,将偏置值设置过大,轻则造成工件报废,重则造成设备撞机。本文以西门子数控系统为例,介绍如何利用西门子事件触发子程序解决坐标系零点偏置设置错误问题,进行防错。
图1 工件坐标系零点偏置功能
事件触发子程序是西门子数控系统提供的一项功能,用于在发生某个事件后,数控系统会自动调用某个设定的子程序,用于对事件做相应的处理[1]。
参数MD20108 $MC_PROG_EVENT_MASK用于定义具体的事件,其含义如下:Bit0=1表示零件加工程序启动;Bit1=1表示零件加工程序结束;Bit2=1表示操作面板上的复位;Bit3=1表示启动;Bit4=1表示预留;Bit5=1表示安全送电。
当参数MD20108中设定的某个事件激活时,系统会自动调用执行存放在F:/dh/_N_CMA_DIR/(制造商循环目录)或 F:/dh/_N_CUS_DIR/(用户循环目录)或 F:/dh/_N_CST_DIR/(标准循环目录)下PROG_EVENT.SPF程序中[2]。
防止坐标系零点偏置设置错误,需要实现的具体功能如下:在G54工件坐标系中,当操作人员根据实际加工情况,输入精偏值后,调用工件程序继续加工,这时数控系统就会将输入值与预设值(本文以0.1mm为例,该值可根据需要修改)进行比较,如果>0.1mm,则数控系统会弹出提示信息,提醒操作人员进行检查复核。
将参数MD20108的Bit0位设为1(见图2),这样当程序启动的时候,数控系统会自动调用PROG_EVENT.SPF程序(见图3)。在PROG_EVENT.SPF程序中,增加以下程序。
图2 参数设定
图3 PROG_EVENT.SPF程序界面
IF(ISFILE(“/_N_CMA_DIR/_N_CYCPE_US_SPF”))OR(ISFILE(“/_N_CUS_DIR/_N_CYCPE_US_SPF”))
N100 CYCPE_US
ENDIF
执行PROG_EVENT.SPF程序时,系统会自动检查在制造商或者用户循环目录下,是否存在CYCPE_US.SPF程序,如果存在,则执行CYCPE_US程序。
在制造商或者用户循环目录下,新建程序名为CYCPE_US的子程序,具体如下。
DEF REAL VAR1;定义一个变量VAR1
IF($P_PROG_EVENT==1);如果MD20108参数值等于1,继续执行
VAR1=$P_UIFR[1,Z,FI];将G54坐标系精偏值读入到变量VAR1中
IF VAR1>0.1 ;如果变量VAR1值>0.1,继续执行
MSG(“G54->Z->FI ERROR”);在系统界面显示文本信息
M00
ENDIF
ENDIF
M17
测试该功能是否生效,在G54坐标系下输入精偏值0.2,调用某程序自动执行,这时数控系统界面会弹出提示信息(见图4):G54->Z->FI ERROR,则程序暂停,提示操作人员进行检查复核,该防错功能生效。
图4 弹出提示信息
以上案例仅对G54坐标系中的精偏值进行监控,如果需要对其他坐标系进行监控,只需对程序进行简单修改。在数控设备实际加工操作过程中,有可能由于疏忽,造成工件加工超差或者设备损坏[3],作为数控设备维护人员,可通过开发小程序来完善数控系统或设备功能,从技术层面预防事故的发生,提高设备的利用率。