胡輝
昌河飛機工業(集團)有限責任公司 江西景德鎮 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],作為數控設備維護人員,可通過開發小程序來完善數控系統或設備功能,從技術層面預防事故的發生,提高設備的利用率。