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