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