■寶雞吉利發動機有限公司 (陜西寶雞 721306) 姜永軍 王 軍 秦 亮
■浙江吉利羅佑發動機有限公司 (浙江寧波 315800) 羊 奎 王瑞平
從加工現場的實際需要出發,主要圍繞西門子NC高級編程I/O功能中的寫文件WRITE指令,分三個不同寫文件模塊展開論述。如圖1所示為西門子840Dsl數控系統虛擬機操作面板。程序編寫、測試、開發階段在虛擬機上完成,之后導入數控機床進行驗證。
西門子828D、840Dsl均具有寫入文件的功能,使用WRITE指令可將零件程序中的段落或數據寫入到指定文件(日志文件)的末尾,或寫入到正在執行的零件程序中。

圖1 西門子數控系統虛擬機操作面板
如果需要使用WRITE指令的文件或文件路徑不存在,則應在NC內存中新建該文件或文件夾,并將該文件存放在靜態NC存儲器中,在SINUMERIK 840Dsl上,存儲器為CF卡。
如果硬盤中有一個相同名稱的文件,則文件在NC中將會被覆蓋。只有設置了保護權限后,才不會被覆蓋。文件設置的保護等級必須不低于文件的WRITE權限等級,否則系統會拒絕訪問并顯示錯誤提示信息,出錯變量的返回值為13。
(1)利用寫文件功能生成新的NC程序塊 曲軸的外觀模型如圖2所示;曲軸上連桿頸的外銑模型及加工原理如圖3所示。
1)連桿頸外銑原理:由圖3可知,外銑刀盤以O2為圓心高速回轉,同時沿著x軸根據連桿頸的旋轉做往復運動,曲軸以主軸頸圓心O1為圓心旋轉,這樣就保證了外銑刀盤時刻與連桿頸相切,并且切點(Xt,Yt)是不斷變化的,這就是外銑的基本原理。

圖2 曲軸的外觀模型

圖3 曲軸連桿頸外銑加工原理
一般曲軸有3~6個連桿頸,每當一個連桿頸銑削完成后,x軸退刀,z軸橫向移動,開始外銑下一個連桿頸,直至所有連桿頸外銑完畢。從圖3可看出,曲軸連桿頸外銑的主要參數包括:曲軸連桿頸的偏心距b,連桿頸的半徑rw,外銑刀盤的半徑rs,曲軸的旋轉角度α,連桿頸和外銑刀盤的中心連線與x軸的夾角β。
因此要想在隨動外銑的理念下完成對曲軸連桿頸的外銑加工,應該在幾何條件的約束下,在任意外銑位置建立曲軸旋轉C軸的轉角方程與外銑刀盤在x軸的位移方程。
2)數學模型的建立:采用外銑方式加工連桿頸,需要按照一定的運動模型進行加工,才能保證曲軸連桿頸的加工精度,加工完成后,再采用一定的補償策略,進行連桿頸的圓度補償。
在連桿頸的銑削過程中,必須保證連桿頸時刻與盤刀相切,這就要求連桿頸繞主軸頸中心旋轉時,外銑刀盤在x軸方向做配合連桿頸旋轉的往復運動,同時外銑刀盤自身高速回轉,切點坐標軌跡方程如下:

用X表示O1O2的距離,則盤刀中心O2的運動方程如下:

3)加工程序的實現:編寫用于生成外銑點的加工程序,程序名稱為WRITE_PRG.MPF,其中FOLLOWPOINT.MPF是由WRITE_PRG程序自動執行后自動生成的,FOLLOWPOINT.MPF自動生成的隨動點程序如圖4所示。在WRITE_PRG.MPF程序使用之前,需要定義程序中所要使用的全局變量,全局變量的定義文件為UGUD.DEF,詳細內容如圖5所示。
WRITE_PRG程序定義了字符串變量EACH_LINE,定義規則為DEF STRING[80] EACH_LI N E,字符串長度為80,字符串名稱為EACH_LINE。WRITE文件寫入之前,首先需要刪除舊文件,并指定文件的輸出路徑,緊接著一行一行寫入,之后由循環賦值語句實現當曲軸回轉一周時,連桿頸隨動耦合數據寫入,按照角度增加1°,數組逐行加一的方式 ,完成隨動程序的寫入和輸出。WRITE_P R G 程序塊的的順序執行過程如圖6所示;WRITE_PRG程序塊中語句如圖7所示;自動生成的FOLLOWPOINT程序及其程序內容如圖8所示。
以WRITE(ERROR,”/_N_MPF_DIR/_N_FOLLOWPOINT_MPF”,”; MSG”<<”(“<<”Start Milling!!!”<<”)”)為例簡述 WRITE函數的變量及內容,其中ERROR為寫文件時的錯誤代號,返回值為INT型,可以指導用戶第一時間查找到錯誤報警的原因,“_N_MPF_DIR/_N_FOLLOWPOINT_MPF”為文件的寫入路徑,“<<”為字符串連接符,可以將不同的字符串連接起來,如下列語句所示:

圖4 WRITE_PRG程序塊

圖5 全局變量定義UGUD.DEF

圖6 WRITE_PRG程序執行過程

圖7 WRITE_PRG程序塊中語句
EACH_LINE=”G01”<<” “<<”C”< WRITE(ERROR,”/_N_MPF_DIR/_N_FOLLOWPOINT_MPF”,EACH_LINE) EACH_LINE首先將一個個字符串連接起來,之后統一寫入文件FOLLOWPOINT,其中C_ANGLE、X_MOV_DIS[C_ANGLE]、F_FEED[C_ANGLE]為F O R循環執行后計算出的數值,數據類型為實數。WRITE寫出來的具體結果為: 通過執行程序WRITE_PRG產生輸出,輸出的程序為FOLLOWPOINT.MPF,可以供其他主程序進行外部調用,避免了程序邊運行邊計算的缺點,程序一次運算完成,運行時直接進行數據讀取和走位,提高了數控程序的執行速度。 (2)利用寫文件功能可以輸出日志文件 將機床需要記錄的R參數或G U D參數直接記錄下來,供用戶分析現場機床的工件坐標系修正數據、溫度補償數據、尺寸補償數據和探針補償數據等。使用WRITE_PARAMETER時需要注意以下幾個方面。 1)寫出參數時,一般需要記錄參數對應的當前日期和時間,此處使用了西門子編程系統時間變量$A_YEAR、$A_MONTH、$A_DAY、$A_HOUR、$A_MINUTE和$A_SECOND進行編寫。 2)WRITE 在寫文件或WRITE_PARAMTER執行時,當寫文件發生錯誤,對錯誤代號需要進行判斷和處理,程序中需要增加判斷和跳轉,如下所示: MSG(“ERROR 1: PATH NOT ALLOWED”) MSG(“ERROR 2: PATH NOT FOUND”) MSG(“ERROR 3: FILE NOT FOUND”) MSG(“ERROR 4: INCORRECT FILETYPE”) MSG(“ERROR 10: FILEIS FULL”) MSG(“ERROR 11: FILE IS IN USE”) MSG(“ERROR 12: NO MORE RESOURCES AVAILABLE”) 3)每次寫文件的最大字節數必須進行限制,否則NC內存會溢出,利用參數MD11420進行設置。 4)寫文件時需處理文件名稱,用時間級聯文件名稱形成最終的文件輸出名稱: LOG_DATE 1=”/_N_W K S_DIR/_N__TABLE_WPD/_N_RECORD_VALUE” LOG_DATE 1=LOG_DATE1<<”_”<<_YEAR<<”_”<<_MONTH<<”_”<< _DAY ;The Last File Name 5)按照寫入R參數的方法,也可將G U D參數寫入文件中,只需要將R參數名稱更換為GUD(全局變量)名稱即可。 WRITE進行R參數的寫入如圖9所示;自動生成的RECORD_VALUE_2018_02_24程序目錄如圖10所示。 (3)利用寫文件功能記錄加工時間 利用寫文件功能可以記錄加工的詳細節拍,進行加工節拍的優化,并詳細輸出每把刀具的加工時間。 WRITE_TOOLTIME主要使用了西門子系統計時器功能,$AC_TIMER[1]和$AC_TIMER[2]。程序執行一開始對計時器變量$AC_TIMER[1]、$AC_TIMER[2]進行外部清零,其中$AC_TIMER[1]、$AC_TIMER[2]、TIME_COMPLETE存放的是以秒為單位的計時整型數據。 對于單獨一把刀具的加工,其加工時間一般<1m i n,所以將$AC_TIMER[2]直接賦值給當前刀具的加工時間,$T C_T P2存放刀具名,為字符串類型,$TC_TP2[$TC_MPP6[9998,1]]存放當前主軸上的刀具名稱,例如T08,代表加工的第8把刀具的名稱,之后會把第8把刀的加工時間進行記錄和串聯。 第8把刀記錄完成后,會把計時器2清零,$AC_TIMER[2]=0,之后開始下一把刀具加工時間的記錄,$AC_TIMER[1]記錄總的加工時間。但是在寫文件進行輸出時,會將TIME_COMPLETE記錄的秒轉換為分鐘進行顯示和輸出,其中TIME_COMPLETE_H E L P1存儲的是分鐘,T I M E_COMPLETE_HELP2存儲的是秒。西門子數控編程指令中,TRUNC是指去除小數點之后的位數,進行數據的取整。WRITE_TOOLTIME詳細程序如下: TIME_COMPLETE=$AC_TIMER[1] TIME_ COMPLETE_HELP 1=TIME_COMPLETE/60 TIME_COMPLETE_HELP2=TIME_COMPLETE/60 圖9 WRITE進行R參數的寫入 圖10 自動生成的RECORD_VALUE程序目錄 TIME_COMPLETE_HELP1=TRUNC(TIME_COMPLETE/60) TIME_COMPLETE_HELP2=TIME_COMPLETE_HELP2-TIME_COMPLETE_HELP1 TIME_COMPLETE_HELP2=TRUNC(TIME_COMPLETE_HELP2*60) WRITE(ERROR1,LOG_FILE, “ / ” < < $TC_TP2[$TC_MPP6[9998,1]]<< TIME_COMPLETE_HELP 2<<”S” <<_YEAR<<_MONTH<<_DAY<<_HOU R<<_MINUTE<<_SECOND) 總之,通過主加工程序與WRITE_TOOLTIME程序塊的配合,可以輸出每把刀具的詳細加工節拍和總的加工時間,這樣可以更方便地進行N C程序的優化和刀具的優化,節拍的提升和優化將變得更加便捷。寫文件的長度設置如圖11所示,WRITE_TOOLTIME記錄的加工時間顯示如圖12所示,WRITE_TOOLTIME與主加工程序的組合使用如圖13所示。 圖11 參數MD11420設置 圖12 WRITE_TOOLTIME 記錄的加工時間顯示 圖13 WRITE_TOOLTIME與主加工程序的組合使用 本文通過對西門子840Dsl寫文件功能的研究及現場應用,實現了利用NC程序生成NC程序的方案,高效解決了程序邊執行邊計算的弊端;同時系統和機床的一些補償參數如R參數、全局G U D變量等,也利用寫文件的方式可輸出為MPF或SPF文件格式,很方便地實現了補償數據的輸出,利用輸出的補償數據的一致性和統計性,可快速分析機床各項特性,更好地解決工件的加工質量問題和位置補償問題;最后通過寫文件功能與西門子計時器功能相結合,可精確地獲得加工的節拍信息,同時獲得每把刀具的加工時間,這樣對每一個加工工位的TIME文件進行分析,就可看出哪把刀具是瓶頸刀具,進而對該把刀具進行更細化的節拍優化和提升,提升加工效率。 總之,西門子WRITE功能的這三個重要應用,在實際使用中具有重要意義,當發生問題后,利用這些程序模塊可有效發現機床、夾具、刀具或探針測量的問題,為問題解決提供數據文件支撐,進而高效解決現場發動機零件的加工問題。


3. 結語


