在數控實訓中,程序的長度會隨著工件的復雜程度、所使用刀具的數量、編程方法和其他因素的變化而不同。一般來說,程序越短,編程的時間就會越短,在系統中占用的空間也會越小,而且短程序容易檢查、修改和優化,所以也能減小發生人為錯誤的可能性。在很多數控系統中都會有一些縮短程序長度的功能應用。如:FANUC系統中的固定循環、復合循環、宏程序等都是具有縮短程序長度的功能應用。筆者介紹一種有效的縮短編程長度的應用——子程序。
一、子程序的概念
數控程序都是由一系列不同的輔助功能(M、S、T、F)、準備功能(G代碼)和地址字(X_Y_Z_A_B_C_)組成,如果程序中包含兩個或兩個以上重復的程序段,就可以將程序結構從單一的長程序拆分為兩個或多個獨立的程序,每個重復程序段只編寫一次,在需要的時候進行調用。這種拆分后縮短的獨立程序就稱為子程序。數控系統中有專門的M代碼在一個程序中調用另一個程序,調用其他程序的第一個程序就稱為主程序,所有其他被調用的程序稱為子程序。主程序不能被子程序調用,它位于所有程序的最頂層。子程序之間可以相互調用,直到達到一定的嵌套數目(一般為四層)。特別需要指出的是,在使用子程序進行簡化編程加工零件時,選擇的加工程序一定是主程序,子程序不會被直接用于加工,它只能通過主程序的調用才能實現加工的目的。
二、子程序的優點
1.可反復使用
零件圖上有兩處或兩處以上相同的輪廓軌跡。在這種情況下只要編寫一個子程序,然后用主程序調用該子程序就可實現簡化編程的加工。
2.分層或分行加工
加工中反復出現相同軌跡的走刀路線。如果被加工的零件需要刀具在某一區域內進行反復的分層或分行走刀,走刀軌跡總是沿著某一特定的形狀垂直或水平走刀,在這種情況下采用子程序就比較方便。需要注意的是,在利用調用子程序進行分行或分層加工時一般多采用相對值編程的方式。
3.程序內容具有獨立性
在加工比較復雜的零件時,往往包含很多獨立的工序,有時候工序之間的先后順序會根據加工環境的不同而有所調整,把所有工序編成一段長程序,修改工序位置的時候就會很復雜,出錯率也會提高。但如果把每一個工序都編成一個獨立的子程序,讓程序自然分成若干個短程序,在需要的時候用主程序調用,修改的時候也只需要修改某一個子程序,這樣程序就會變得很簡單,出錯率也會大大降低。
4.設備檢測及預熱
在新設備的調試階段,總有為了檢測某一部件某一重復運動的可靠率而進行的子程序編程,比如檢測加工中心的刀庫換刀功能是否正常。在這種情況下,技術人員總是會讓刀庫不停地換刀幾小時甚至幾十小時,以驗證刀庫的可靠性。另一種情況是操作人員在使用設備的時候,每次開機總會有一個預熱的過程(一般是回參考點)。這個預熱過程,每次開機都是重復的,所以可以通過子程序編寫獨立的程序,在每次開機時通過主程序調用執行。
三、子程序在數控實訓中的應用實例
1.數控車床程序重復性開頭的應用
在數控車床實訓中,輔助功能是很重要的程序,它主要包括主軸旋轉方式、轉速、刀具、進給方式及各種參數的定義。這些功能在很多零件加工中是重復性的,很有可能在一個學期的學習課程里,不同的輔助功能搭配就只有2~3種方式,而編寫的程序一般都會有幾十條以上。
例1:如以下4個程序段“M03 S1000 G99 T101;G00 X30 Z2;G71 U2 R1;G71 P1 Q2 U1 F0.3”。表示普通數控車床在加工直徑為30mm的圓棒料,具有單調性外輪廓的循環開頭。像這種程序開頭,在很多程序中都是一樣的,我們可以通過單獨把這4段建立一個子程序,然后通過主程序調用,達到減少編程工作量的目的。
2.在螺紋加工中的應用
在數控實訓中加工常規螺紋一般可以通過G76復合循環或者G92固定循環達到簡化編程、提高工作效率、減少出錯的目的。但是有些非標或異形的螺紋,它所運行的軌跡在模塊化的循環功能指令范圍之外。比如在圓上加工一段花瓣形螺紋,或者在光軸上加工變螺距螺紋。在這些軌跡上就必須使用最基本的螺紋G代碼G32/G33/G34。由于基本螺紋G代碼只能實現單段螺紋車削,每切削一刀螺紋都必須編寫多條程序段,而且每一次切削都是分層且具有重復性的,所以為了提高工作效率,只能采用調用子程序功能。
3.加工中心回零點的應用
在銑床及加工中心實訓中,回零操作是很重要的一個步驟。每次開機都必須重復一次回零操作。
例2:如以下6個程序段“G20;G17 G40 G80;G91 G28 Z0 ;G28 X0 Y0;G28 B0;G90”。表示臥式加工中心的回零操作。像這種程序段在機床中的每個新程序中都必須重復編寫,而且每次都要重復相同的指令序列。為了消除出錯的可能性,可以將這段程序單獨編為子程序,在運行程序時通過主程序調用。
(作者單位:衢州市工程技術學校)