數(shù)控機(jī)床數(shù)控系統(tǒng)的原則上講主程序和子程序之間并沒有區(qū)別。用于程序編寫經(jīng)常重復(fù)進(jìn)行的加工,比如某一確定的輪廓形狀。子程序位于主程序中適當(dāng)?shù)牡胤?在需要時(shí)進(jìn)行調(diào)用、運(yùn)行,可簡化程序編制。
程序結(jié)束除了用M2指令外,還可以用RET指令結(jié)束子程序。RET要求占用一個(gè)單獨(dú)的程序段,不能和其他內(nèi)容寫在同一行。用RET指令結(jié)束子程序、返回主程序時(shí)不會中斷G64連續(xù)路徑運(yùn)行方式,用M2指令則會中斷G64運(yùn)行方式.并進(jìn)入停止?fàn)顟B(tài)。
2.子程序名
為了方便地調(diào)用某一子程序,必須給子程序取一個(gè)程序名。程序名可以自由選取,但必須符合以下規(guī)定:開始兩個(gè)符號必須是字母:其他符號為字母或數(shù)字;最多16個(gè)字符;沒有分隔符。其方法與主程序中程序名的選取方法一樣。例如:FRAME7。另外,在子程序中還可以使用地址字L-,其后的值可以有7位數(shù)字(只能為整數(shù))。
注意:地址字L之后的每個(gè)零均有意義,不可省略。例如:L16并非L016!這是兩個(gè)不同的子程序。
注釋:子程序名L6專門用于刀具更換。
3.子程序調(diào)用
在一個(gè)程序中(主程序或子程序)可以直接用程序名調(diào)用子程序。子程序調(diào)用要求占用一個(gè)獨(dú)立的程序段。
例如:
N20 L258:調(diào)用子程序L258
N30 LFRAME7:調(diào)用子程序LFRAM7
4.子程序重復(fù)調(diào)用次數(shù)p
如果要求多次連續(xù)地執(zhí)行某一子程序,則在編程時(shí)必須在所調(diào)用子程序的程序名后地址P下寫入調(diào)用次數(shù),址大次數(shù)可以為9999,即P1-P9999。
例如:
Nl0L258 P3:調(diào)用子程序L258,運(yùn)行3次
注意:西門子在調(diào)用子程序時(shí),格式正好與FANUC系統(tǒng)相反,在FANCU系統(tǒng)中.如果調(diào)用第258號子程序,運(yùn)行3次,則應(yīng)是N10 P258 L30。