子程序在數控車(chē)編程的應用
子程序在數控車(chē)編程的應用【1】
【摘 要】 子程序常用于加工幾何形狀完全相同或相似的加工軌跡,是數控車(chē)床手工編程的常用方法之一。
正確使用子程序,可以有效簡(jiǎn)化手工編程工作量,減少程序所占內存,提高加工效率。
本文主要對子程序進(jìn)行簡(jiǎn)要介紹,并以具體實(shí)例加以說(shuō)明。
【關(guān)鍵詞】 數控車(chē)子程序 編程 應用
1 引言
在數控加工中,有時(shí)在一個(gè)零件上,有兩處或兩處以上形狀和大小都相同的加工部位,為簡(jiǎn)化程序的編制,可以用子程序來(lái)加工,或調用子程序實(shí)現循環(huán)加工,以減少編制程序時(shí)需要計算的基點(diǎn)的個(gè)數,簡(jiǎn)化編程。
2 子程序介紹
(1)子程序的定義。
某些被加工的零件中,常常會(huì )出現幾何形狀完全相同的加工軌跡,在編制加工程序時(shí),有一些固定順序和重復模式的程序段,通常在幾個(gè)程序中都會(huì )使用它。
這個(gè)典型的加工程序段可以做成固定程序,并單獨加以命名,這組程序段就稱(chēng)為子程序。
(2)子程序的作用。
使用子程序可以減少不必要的重復編程,從而達到簡(jiǎn)化編程的目的。
主程序可以調用子程序,一個(gè)子程序也可以調用下一級子程序。
子程序必須在主程序結束指令后建立,其作用相當于一個(gè)固定循環(huán)。
(3)子程序的格式。
子程序的格式與主程序相同,在子程序的開(kāi)頭編制子程序號,在子程序的結尾用M99指令結束子程序并返回主程序。
O××××
…
M99
(4)子程序的調用。
在主程序中,調用子程序的指令是一個(gè)程序段。
指令:M98
格式:M98 P×××× ×××× (前四位為調用次數,后四位為子程序號)
或M98 P×××× L××××(P后面為子程序號,L為調用次數)
說(shuō)明:省略循環(huán)次數時(shí),默認循環(huán)次數為一次。
(5)子程序的嵌套。
子程序調用另一個(gè)子程序,稱(chēng)為子程序的嵌套。
主程序調用同一子程序執行加工,最多可執行9999次,但是子程序的嵌套不是無(wú)限次的,在編程中使用較多的是二重嵌套(不同的系統其執行的次數及層次不同),其程序執行情況如圖1所示。
3 應用子程序編程實(shí)例
(1)等距槽可以利用循環(huán)或子程序進(jìn)行編程,但加工不等距槽時(shí),就體現出了利用子程序進(jìn)行編程的優(yōu)勢。
例如:圖2所示為車(chē)削不等距槽,已知02號刀為切槽刀,刀刃寬度為4mm,左刀尖對刀, 35mm外圓已加工好,試通過(guò)調用子程序的形式編寫(xiě)其加工程序。
1)主程序。
O0001
N10 G50 X100.0 Z100.0;設定工件坐標系。
N20 M03 S900;主軸正轉,轉速900r/min。
N30 T0202;換02號切槽刀。
N40 G00 X38.0;快速定位到38mm處。
N50 Z-20.0 M08;快速定位,準備切槽,開(kāi)冷卻液。
N60 M98 P31000;調用O1000的子程序3次。
N70 G00 X50.0 Z-138.0;快速定位。
N80 G01 X0 F30;切斷。
N90 M30;程序結束。
2)子程序。
O1000
N10 G00 W-4.0;Z軸負向移動(dòng)4mm至第一槽處。
N20 G01 U-13.0F30;切第一槽至指定尺寸。
N30 G04 X1.0;槽底停留1S。
N40 G01 U13.0;X方向退出。
N50 G00 W-14.0;快速定位第二槽處。
N60 G01 U-13.0;切第二槽至指定尺寸。
N70 G04 X1.0;槽底停留1S。
N80 G01 U13.0;X方向退出。
N90 G00 W-20.0;Z軸負向移動(dòng)20mm。
N100 M99;子程序結束,并返回主程序。
(2)如果加工等距槽,但是形狀較復雜時(shí),循環(huán)指令就失效了,這時(shí)應用子程序就可以大大提高編程的效率。
例如:圖3所示為車(chē)削等距復雜型槽,已知02號刀為切槽刀,刀刃寬度為3mm,左刀尖對刀,28mm外圓已加工好,試通過(guò)調用子程序的形式編寫(xiě)其加工程序。
1)主程序。
O0002
N10 G50 X100.0 Z100.0; 設定工件坐標系。
N20 M03 S600; 主軸正轉,轉速600r/min。
N30 T0101; 選擇1號外圓刀。
N40 G00 X30.0 Z2.0;定位至30mm,距端面正向2mm。
N50 G71 U1.0 R0.5; 采用復合循環(huán)粗加工半圓球、外圓、外圓錐面等,
N60 G71 P70 Q130 U0.5 W0 F100; X正方向留精加工余量0.5mm。
N70 G42 G01 X0 F50;
N80 Z0;
N90 G03 X20.0 W-10.0 R10.0;
N100 G01 Z-42.0;
N110 X25.0 Z-50.0;
N120 Z-55.0;
N130 G40 X30.0;
N140 M00 M05;主軸停,程序加工暫停,檢測工件。
N150 M03 S1200;主軸正轉,轉速 1200r/min。
N160 G70 P70 Q130;精加工半圓球、外圓、外圓錐面等。
N170 G00 X100.0 Z100.0;返回換刀點(diǎn),主軸停。
N180 M03 S800;主軸正轉,轉速 800r/min。
N190 T0202; 換02號切槽刀。
N200 G00 X22.0 Z-10.7M08;快速定位,準備切槽,開(kāi)冷卻液。
N210 M98 P32000;調用O2000的子程序3次,加工3處等距外溝槽。
N220 G00 X100.0 Z100.0; 返回換刀點(diǎn)。
N230 M30; 程序結束。
2)子程序。
O2000
N10 G00 W-8.6;刀具沿Z軸負方向平移8.6mm。
N20 G01 U-10.0 F20;沿徑向切槽至槽底。
N30 G04 X1.0;槽底停留1S。
N40 G00 U10.0 F500;快速退至22mm處。
N50 W1.3;沿Z軸正方向平移1.3mm。
N60 G01 U-2.0;沿徑向移動(dòng)至20mm處。
N70 U-8.0 W-1.3;刀具切溝槽右側面至槽底。
N80 G00 U10.0;快速退至22mm處。
N90 W-1.3; 沿Z軸正方向平移1.3mm。
N100 G01 U-2.0;沿徑向移動(dòng)至20mm處。
N110 U-8.0 W1.3;刀具切溝槽左側面至槽底。
N120 G00 U10.0;快速退至22mm處。
N130 M99;子程序結束,并返回主程序。
4 結語(yǔ)
編寫(xiě)子程序時(shí)注意應用增量坐標寫(xiě)出加工路線(xiàn),讓程序沿X向(或Z向)循環(huán)進(jìn)刀,設置好背吃刀量,計算出加工次數,在主程序中進(jìn)行調用。
這種方法可減少基點(diǎn)的計算個(gè)數,適用于各種形狀復雜的零件,使這類(lèi)零件在數控機床上的編程變得簡(jiǎn)便。
靈活的應用子程序,在很大程度上提高了零件的加工效率,并且在實(shí)際生產(chǎn)中收到了良好的效果。
參考文獻:
[1]謝曉紅.數控車(chē)削編程與加工技術(shù).北京:電子工業(yè)出版社,2008.7.
[2]黃康美.數控加工編程.上海交通大學(xué)出版社,2004.8.
[3]宋放之.數控工藝培訓教程.清華大學(xué)出版社,2003.8.
主程序調用子程序的編程方案在數控教學(xué)中的應用【2】
一、手工編程在教學(xué)和生產(chǎn)中的概況及意義
在制造業(yè)非常發(fā)達的華南(以珠三角地區為代表)和(以江浙地區為代表),各類(lèi)CAD\CAM軟件的應用由來(lái)已久,而且非常廣泛和成熟,即使在那些只有1~2部數控銑床或加工中心的“路邊加工店”里,也隨處可見(jiàn)Mastercam、 UG、 PRO\E、Cimatron、Powermill、Surfcam等世界知名CAD\CAM軟件的身影。
到目前為止,各類(lèi)CAD\CAM軟件應用日趨普及,特別是數控三維曲面加工,使手工編程幾乎已沒(méi)有用武之地。
但是必須強調的是,手工編程是根本,是基礎,各種疑難雜癥的解決往往還要利用手工編程;再者,學(xué)習手工編程有利于進(jìn)一步完善數控程序,所以在學(xué)校中教學(xué)手工編程有著(zhù)極其重要的意義,特別是“模塊式”課程教學(xué)手工程序。
另外,當一些中小型認為使用正版CAD\CAM軟件成本過(guò)高時(shí),手工編程(更高層次的變量編程,即宏程序的運用)就會(huì )顯示其使用價(jià)值。
因此手工編程在教學(xué)和生產(chǎn)中仍具有極其重要的地位。
筆者根據多年的數控生產(chǎn)實(shí)踐經(jīng)驗和教學(xué)實(shí)踐,提出采用主程序調用子程序的編程方案,編寫(xiě)結構化數控程序,有效地改善數控程序的可讀性與安全性,給教學(xué)和生產(chǎn)帶來(lái)了安全與便利。
二、用主程序調用子程序編程方案的優(yōu)點(diǎn)
GSL990M銑床數控系統中,在主程序中用M98指令調用子程序,而在子程序中用M99指令返回主程序。
采用主程序調用子程序進(jìn)行編程有兩大用途,一是把需要重復使用的邊界程序段編寫(xiě)成子程序,避免了程序編寫(xiě)重復,使程序簡(jiǎn)潔;二是把需要重復實(shí)現的功能用子程序來(lái)完成,使程序清晰易讀。
陣列孔加工程序采用子程序結構,充分說(shuō)明了以上第一用途;多工序加工中,系列輔助功能(如換刀、刀具長(cháng)度補償等)采用子程序結構,說(shuō)明了以上第二個(gè)用途。
三、兩個(gè)重要子程序
多工序加工中無(wú)原則經(jīng)常換刀,換刀后在刀具接近工件的過(guò)程中,又需建立刀具的長(cháng)度補償。
如果將這兩項功能編寫(xiě)成兩個(gè)子程序,將使主程序結構清晰、易變,而且不容易出錯。
下面介紹兩個(gè)子程序。
1.換刀子程序
O5555;
N0001 G80G40M09;撤消固定循環(huán)、撤消半徑補償、
關(guān)冷卻液
N0002 G91G28Z0M05;通過(guò)當前點(diǎn)返回參考點(diǎn)、主軸
停轉
N0003 G49;刀具長(cháng)度偏移注銷(xiāo)
N0004 M06;換刀準備,具體調用的刀具號由主程序
指定
N0005 M99;返回主程序
由此可見(jiàn),換刀子程序除實(shí)現換刀功能外,還撤銷(xiāo)了固定循環(huán)、刀具半徑補償、刀具長(cháng)度補償,實(shí)現關(guān)冷卻液、停止主軸旋轉功能,使系統基本復原到初始狀態(tài),起到防止誤操作的作用,提高了程序的安全性。
2.刀具接近子程序
O5554;
N0001 G90G00X0Y0;檢驗X、Y坐標原點(diǎn)是否正確
N0002 M03;主軸正轉,具體轉速由主程序指定
N0003 G43G00Z100;建立刀具長(cháng)度補償,并移動(dòng)到
Z=100mm的位置,具體補償參數 由主程序指定
N0004 M07;開(kāi)冷卻液
N0005 M99;返回主程序
刀具接近子程序建立了刀具的長(cháng)度補償,并且使刀具到坐標點(diǎn)(0,0,100)的位置,起到了檢查工件坐標系(WCS)原點(diǎn)是否正確的作用,提高了程序運行的安全性。
四、數控加工中工序概念的定義
為了說(shuō)明多工序加工數控編程,需對數控加工中的工序概念進(jìn)行重新定義。
傳統機械加工中的工序概念,以?xún)蓚(gè)方面區分工序,一是工序過(guò)程是否連續完成;二是工作場(chǎng)地是否發(fā)生變化。
顯然,這種傳統的工序定義在數控加工中已不適用,應對數控加工工序提出新的定義。
數控加工以是否更換加工程序來(lái)區分工序,更符合數控加工的實(shí)際情況。
進(jìn)一步說(shuō),數控加工工序是指工件的一次安裝中,使用同一把刀具、同一工藝參數和同一數控加工程序對工件進(jìn)行加工,所連續完成的那一部分工藝過(guò)程。
基于以上數控加工工序的定義,數控加工工藝過(guò)程卡包括:工序號、工序名稱(chēng)(應說(shuō)明加工部位、加工性質(zhì)、加工階段)、刀具、安裝方案和有關(guān)工藝裝備、工藝參數、數控程序號、加工區域簡(jiǎn)圖等內容。
反之,數控加工工序過(guò)程卡也正好明確了數控加工工序的概念。
五、多工序加工中采用的主程序結構
在建立數控加工工序概念的基礎上,通過(guò)調用兩個(gè)重要子程序,可以對多工序數控加工編寫(xiě)出結構性、可讀性好的主程序。
假如要完成兩道工序的數控加工,這兩道工序分別使用說(shuō)明01#、02#刀具,長(cháng)度補償值分別存放在H01、H02內存單元,轉速分別為1000r/min、1200r/min,加工子程序號為O1000、O2000。
以此說(shuō)明主程序編寫(xiě)結構。
O0001;
N0001 G54;建立工件坐標系
N0002 T01M98P5555;換01#刀具
N0003 S1000H01M98P5554;01#刀具定位到坐標點(diǎn) (0,0,100)
N0004 M98P1000;調用第一道工序的加工程序;
以上程序完成第一工序的加工
N0005 T02M98P5555;
N0006 S1200H02M98P5554;
N0007 M98P2000;調用第二道工序的加工程序;
以上程序完成第二道工序的加工
N0008 T02M98P5555;
N0009 M30
可見(jiàn),多道工序的數控加工程序可依次編寫(xiě)。
此主程序結構簡(jiǎn)單、編寫(xiě)容易、程序易讀,由于在每道工序加工中不必考慮刀具長(cháng)度補償的建立與撤消,程序運行的安全性好,而且編程人員可以集中編寫(xiě)每道工序的加工子程序。
對于每道工序的加工子程序,編寫(xiě)人員只要從坐標點(diǎn)(0,0,100)開(kāi)始編寫(xiě),不必考慮刀具長(cháng)度補償以及開(kāi)關(guān)指令(換刀、主軸啟動(dòng)/停止、冷卻液開(kāi)/關(guān))等,只要考慮快速移動(dòng)(G00)、切削加工(G01、G02)、指定進(jìn)給速度(F指令)、刀具半徑補償(G41、G42、G40)和固定循環(huán)等指令。
綜上所述,通過(guò)多年一線(xiàn)生產(chǎn)實(shí)踐和教學(xué)的經(jīng)驗,在多工序數控加工編程中,采用主程序調用子程序的編程方案,充分改善了程序的結構性、可讀性,并且大大提高了編程效率。
子程序在數控實(shí)訓中的應用【3】
在數控實(shí)訓中,程序的長(cháng)度會(huì )隨著(zhù)工件的復雜程度、所使用刀具的數量、編程方法和其他因素的變化而不同。
一般來(lái)說(shuō),程序越短,編程的時(shí)間就會(huì )越短,在系統中占用的空間也會(huì )越小,而且短程序容易檢查、修改和優(yōu)化,所以也能減小發(fā)生人為錯誤的可能性。
在很多數控系統中都會(huì )有一些縮短程序長(cháng)度的功能應用。
如:FANUC系統中的固定循環(huán)、復合循環(huán)、宏程序等都是具有縮短程序長(cháng)度的功能應用。
筆者介紹一種有效的縮短編程長(cháng)度的應用——子程序。
一、子程序的概念
數控程序都是由一系列不同的輔助功能(M、S、T、F)、準備功能(G代碼)和地址字(X_Y_Z_A_B_C_)組成,如果程序中包含兩個(gè)或兩個(gè)以上重復的程序段,就可以將程序結構從單一的長(cháng)程序拆分為兩個(gè)或多個(gè)獨立的程序,每個(gè)重復程序段只編寫(xiě)一次,在需要的時(shí)候進(jìn)行調用。
這種拆分后縮短的獨立程序就稱(chēng)為子程序。
數控系統中有專(zhuān)門(mén)的M代碼在一個(gè)程序中調用另一個(gè)程序,調用其他程序的第一個(gè)程序就稱(chēng)為主程序,所有其他被調用的程序稱(chēng)為子程序。
主程序不能被子程序調用,它位于所有程序的最頂層。
子程序之間可以相互調用,直到達到一定的嵌套數目(一般為四層)。
特別需要指出的是,在使用子程序進(jìn)行簡(jiǎn)化編程加工零件時(shí),選擇的加工程序一定是主程序,子程序不會(huì )被直接用于加工,它只能通過(guò)主程序的調用才能實(shí)現加工的目的。
二、子程序的優(yōu)點(diǎn)
1.可反復使用
零件圖上有兩處或兩處以上相同的輪廓軌跡。
在這種情況下只要編寫(xiě)一個(gè)子程序,然后用主程序調用該子程序就可實(shí)現簡(jiǎn)化編程的加工。
2.分層或分行加工
加工中反復出現相同軌跡的走刀路線(xiàn)。
如果被加工的零件需要刀具在某一區域內進(jìn)行反復的分層或分行走刀,走刀軌跡總是沿著(zhù)某一特定的形狀垂直或水平走刀,在這種情況下采用子程序就比較方便。
需要注意的是,在利用調用子程序進(jìn)行分行或分層加工時(shí)一般多采用相對值編程的方式。
3.程序內容具有獨立性
在加工比較復雜的零件時(shí),往往包含很多獨立的工序,有時(shí)候工序之間的先后順序會(huì )根據加工環(huán)境的不同而有所調整,把所有工序編成一段長(cháng)程序,修改工序位置的時(shí)候就會(huì )很復雜,出錯率也會(huì )提高。
但如果把每一個(gè)工序都編成一個(gè)獨立的子程序,讓程序自然分成若干個(gè)短程序,在需要的時(shí)候用主程序調用,修改的時(shí)候也只需要修改某一個(gè)子程序,這樣程序就會(huì )變得很簡(jiǎn)單,出錯率也會(huì )大大降低。
4.設備檢測及預熱
在新設備的調試階段,總有為了檢測某一部件某一重復運動(dòng)的可靠率而進(jìn)行的子程序編程,比如檢測加工中心的刀庫換刀功能是否正常。
在這種情況下,技術(shù)人員總是會(huì )讓刀庫不停地換刀幾小時(shí)甚至幾十小時(shí),以驗證刀庫的可靠性。
另一種情況是操作人員在使用設備的時(shí)候,每次開(kāi)機總會(huì )有一個(gè)預熱的過(guò)程(一般是回參考點(diǎn))。
這個(gè)預熱過(guò)程,每次開(kāi)機都是重復的,所以可以通過(guò)子程序編寫(xiě)獨立的程序,在每次開(kāi)機時(shí)通過(guò)主程序調用執行。
三、子程序在數控實(shí)訓中的應用實(shí)例
1.數控車(chē)床程序重復性開(kāi)頭的應用
在數控車(chē)床實(shí)訓中,輔助功能是很重要的程序,它主要包括主軸旋轉方式、轉速、刀具、進(jìn)給方式及各種參數的定義。
這些功能在很多零件加工中是重復性的,很有可能在一個(gè)學(xué)期的學(xué)習課程里,不同的輔助功能搭配就只有2~3種方式,而編寫(xiě)的程序一般都會(huì )有幾十條以上。
例1:如以下4個(gè)程序段“M03 S1000 G99 T101;G00 X30 Z2;G71 U2 R1;G71 P1 Q2 U1 F0.3”。
表示普通數控車(chē)床在加工直徑為30mm的圓棒料,具有單調性外輪廓的循環(huán)開(kāi)頭。
像這種程序開(kāi)頭,在很多程序中都是一樣的,我們可以通過(guò)單獨把這4段建立一個(gè)子程序,然后通過(guò)主程序調用,達到減少編程工作量的目的。
2.在螺紋加工中的應用
在數控實(shí)訓中加工常規螺紋一般可以通過(guò)G76復合循環(huán)或者G92固定循環(huán)達到簡(jiǎn)化編程、提高工作效率、減少出錯的目的。
但是有些非標或異形的螺紋,它所運行的軌跡在模塊化的循環(huán)功能指令范圍之外。
比如在圓上加工一段花瓣形螺紋,或者在光軸上加工變螺距螺紋。
在這些軌跡上就必須使用最基本的螺紋G代碼G32/G33/G34。
由于基本螺紋G代碼只能實(shí)現單段螺紋車(chē)削,每切削一刀螺紋都必須編寫(xiě)多條程序段,而且每一次切削都是分層且具有重復性的,所以為了提高工作效率,只能采用調用子程序功能。
3.加工中心回零點(diǎn)的應用
在銑床及加工中心實(shí)訓中,回零操作是很重要的一個(gè)步驟。
每次開(kāi)機都必須重復一次回零操作。
例2:如以下6個(gè)程序段“G20;G17 G40 G80;G91 G28 Z0 ;G28 X0 Y0;G28 B0;G90”。
表示臥式加工中心的回零操作。
像這種程序段在機床中的每個(gè)新程序中都必須重復編寫(xiě),而且每次都要重復相同的指令序列。
為了消除出錯的可能性,可以將這段程序單獨編為子程序,在運行程序時(shí)通過(guò)主程序調用。
【子程序在數控車(chē)編程的應用】相關(guān)文章:
數控編程心得體會(huì )10-13
數控編程職業(yè)生活規劃范文12-07
數控加工與編程實(shí)訓總結12-03
數控銑床的常用指令編程技巧和安全操作07-03
編程的心得10-17
編程培訓心得10-12
編程實(shí)習心得11-01
編程學(xué)習心得11-12