1、子程序的格式:

O____;

******;

******;

M99;

2、调用子程序的格式:

(1)M98  P_ _ _ _ _ _ _;   前3位为调用次数,后4位为子程序号。

(2)M98  P_ _ _ _  L_ _ _;   P后面是子程序号,L后面是调用次数。

一般就上面两种格式,不同的机床系统调用子程序的格式不一样。

3、子程序应用实例

如下图,在一个150*100的板上铣20个∅18的孔,孔深为-10,

用∅10的平底铣刀,X方向距离为30,Y方向距离为20。

子程序

设左上角第一个圆的圆心为编程原点。

O0000;  (主程序)

G54  G90  G00  G43  H1  Z100;

X-30  Y20  M03  S900;  (刀具定位到这里是为了方便子程序中刀具的移动)

Z30  M08;

M98  P0001  L4;  (调用第一个子程序,实现Y方向的4次移动)

G90  G00  Z100  M09;

M05;

M30;

 

O0001;  (第一个子程序,用于Y方向的移动)

G91  G00  Y-20;

M98  P0002  L5;  (调用第二个子程序,实现X方向的5次移动)

G91  G00  X-150;  (第二个子程序执行5次之后第一行孔加工完成,X方向需要移回原来位置,再继续移动Y方向,Y一共移动4次)

M99;

 

O0002;  (第二个子程序,用于X方向移动)

G91  G00  X30;

M98  P0003  L1;  (调用第三个子程序一次,完成一个孔的加工)

M99;

 

O0003;  (第三个子程序,开始加工∅18孔)

G91  G00  Z-27;  (用G91是相对移动,现在是距工件表面3)

G01  Z-2  F50;  (现在距离工件表面还有1毫米开始加工)

G01  X4;

M98  P0004  L11;  (调用第四个子程序,分11层加工,因为是在工件上方1毫米开始加工,11次刚好加工到-10)

G02  I-4  J0;  (补平底面)

G01  X-4;  (回到孔的圆心位置,因为下一个孔是相对移动30)

G90  G00  Z30;  (提刀后返回第2个子程序,继续X移动30)

M99;

 

O0004;  (第四个子程序,分层铣削子程序)

G91  G02  I-4  J0  Z-1  F30;

M99;

 

使用子程序的好处是可以避免重复编程,而且上面实例中无论要加工多少个孔,只要是按照固定的间距排列,只需要改动几个数值就可以了。