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