内容正文:
第五节 子程序
一、子程序的概念
1.子程序的定义
在编制加工程序中,有时会遇到一组程序段在一个程序中多次出现,或者在几个程序中都要使用它。这个典型的加工程序可以做成固定程序,并单独加以命名,这组程序段就称为子程序。
子程序一般都不可以作为独立的加工程序使用,它只能通过主程序进行调用,实现加工中的局部动作。子程序执行结束后,能自动返回到调用它的主程序中。
2.子程序的嵌套
为了进一步简化加工程序,可以允许其子程序再调用另一个子程序,这一功能称为子程序的嵌套。
当主程序调用子程序时,该子程序被认为是一级子程序,FANUC 0系统中的子程序允许4级嵌套。
子程序的嵌套
a)主程序 b)一级嵌套 c)二级嵌套 d)三级嵌套 e)四级嵌套
二、子程序的调用
O0401;
G01 U-1.0 W0;
……
G28 U0 W0;
M99;
对于子程序结束指令M99,不一定要单独书写一行,如上面子程序中最后两段可写成“G28 U0 W0 M99”。
1.子程序的格式
主程序用M02或M30表示其结束,而子程序在FANUC系统中则用M99表示子程序结束,并实现自动返回主程序功能。
2.子程序在FANUC系统中的调用
常用的子程序调用格式有两种:
格式一 M98 P×××× L××××;
例1 M98 P100 L5;
例2 M 98 P100;
其中,地址符P后面的四位数字为子程序号,地址L的数字表示重复调用的次数,子程序号及调用次数前的0可省略不写。如果只调用子程序一次,则地址L及其后的数字可省略。如上例1表示调用O100子程序5次,而例2表示调用子程序1次。
格式二 M98 P××××××××;
例3 M98 P50010;
例4 M98 P510;
地址P后面的八位数字中,前四位表示调用次数,后四位表示子程序号,采用这种调用格式时,调用次数前的0可以省略不写,但子程序号前的0不可省略。如例3表示调用O10子程序5次,而例4则表示调用O510子程序1次。
O0402; 子程序:
N10 ……; O0100;
N20 M98 P0100; ……
N30 ……; M99;
…… O0200;
N60 M98 P0200 L2; ……
…… M99;
N100 M30;
子程序的执行过程如下:
3.子程序调用的特殊用法
(1)子程序返回到主程序中的某一程序段
如果在子程序的返回指令中加上Pn指令,则子程序在返回主程序时,将返回到主程序中有程序段段号为n的那个程序段,而不直接返回主程序。其程序格式如下:
M99 Pn;
M99 P100;(返回到N100程序段)
(2)自动返回到程序开始段
如果在主程序中执行M99,则程序将返回到主程序的开始程序段并继续执行主程序。也可以在主程序中插入M99 Pn;用于返回到指定的程序段。为了能够执行后面的程序,通常在该指令前加“/”,以便在不需要返回执行时,跳过该程序段。
(3)强制改变子程序重复执行的次数
用M99 L××指令可强制改变子程序重复执行的次数,其中L××表示子程序调用的次数。例如,如果主程序用M98 P××L99,而子程序采用M99 L2返回,则子程序重复执行的次数为2次。
三、子程序调用编程实例
例 用子程序方式编写如图所示软管接头工件右端楔槽的加工程序。
1.选择刀具
粗加工右端轮廓时,采用60°V形刀片右偏刀(图a)进行加工;加工右端