子程序的调用——M98
编程时,为了简化程序的编制,当一个工件上有相同的加工内容时,常用调用子程序的方法进行编程。调用子程序的程序叫主程序。在本系统中,一个子程序可以调用另一个子程序,嵌套深度为2级或2级以上,一个调用指令可以重复调用一个子程序达999次。子程序的编写与一般程序基本相同,只是程序结束符为M99,表示子程序结束并返同到调用子程序的主程序中。
(一)调用子程序
编程格式:M98 P_ L_
式中,P后面的数字为子程序号;L后面的数字为调用次数。当调用次数为1时,可省略L地址符。
例3.3 如图3-42所示。刀具:T02为φ20mm的立铣刀,长度补偿号为H12,半径补偿号为D22。说明:两个φ30mm的孔用来装夹工件。
O0070
N0010 G17 G21 G49 G40 G54 G90;
N0020 M06 T02;
N0030 M03 S800;
N0040 G43 G00 Z5.0 H12;
N0050 G00 X-50.0 Y-50.0;
N0060 G01 Z-20.0 F300;
N0070 M98 P1010;
N0080 G01 Z-43.0 F300;
N0090 M98 P1010;
N0100 G49 G00 Z300.0;
N0110 G28 Z300.0;
N0120 M30;
O1010
N0010 G42 G01 X-30.0 Y0.0 F300 D22 M08;
N0020 X100.0;
N0030 G02 X300.0 Y0.0 R100.0;
N0040 G01 X400.0;
N0050 Y300.0;
N0060 G03 X0.0 Y300.0 R200.0;
N0070 G01 Y-30.0;
N0080 G40 G01 X-50.0 Y-50.0;
N0090 M09;
N0100 M99;
例3.4 零件如图3-43所示,刀具T01为φ8mm的键槽铣刀,长度补偿号为H01,半径补偿号为D01,每次Z轴吃刀为2.5mm。
程序编写如下:
O0100
N0010 G54 G90 G17 G21 G49 T01;
N0020 M06:
N0030 M03 S800;
N0040 G90 G00 X-4.5 Y-10.0 M08;
N0050 G43 G01 Z0 H01;
N0060 M98 P110 14;
N0070 G49 G90 G00 Z300.0 M05;
N0090 X0 Y0 M09;
N0100 M30;
O110
N0010 G91 G01 Z-2.5 F80;
N0020 M98 P120 14;
N0030 G00 X-76.0 M99;
O120
N0010 G91 G00 X19.0;
N0020 G41 G01 X4.5 D01 F80;
N0030 Y75.0;
N0050 X-9.0;
N0060 Y-75.0;
N0070 G40 G01 X4.5 M99;
图3-42
图3-43
(二)子程序的特殊使用方法
1.子程序中用P指令返回的地址
如果在子程序的返主指令程序段中加入Pn(即格式变成M99 Pn;n为主程序中的顺序号),则子程序在返回时将返回到主程序中顺序号为n的那个程序段,但这种情况只用于存储器工作方式而不能用于纸带方式。
2.自动返到程序头
如果在主程序(或子程序)中执行M99,则程序将返回到程序开头的位置并继续执行程序。为了让程序能够停止或继续执行后面的程序,这种情况下通常是写成/M99,以便在不需要重复执行时,跳过这程序段。也可以在主程序(或子程序)中插入/M99 Pn,其执行过程如前述。还可以在使用M99的程序段前面写入/M02或/M30,以结束程序的调用。
3.用M99 Lα;强制改变子程序重复执行的次数
地址L中用α表示该子程序被调用的次数,它将强制改变主程序中对该子程序的调用次数。如主程序中用M98 P 199;执行该子程序时遇到/M99 10,此时若任选程序段开关位于“OFF”的位置,则重复执行次数将变成0次。
例3.5 如图3-44所示。已知工件材料:40Cr;刀具:T03为φ20mm的立铣刀,长度补偿号为H33。程序编写如下:
O80
N0010 G17 G21 G49 G40 G90 G54 T03
N0020 M06;
N0030 M03 S800;
N0040 G43 G00 Z15.0 H33;
N0050 G00 X-30.0 Y0.0;
N0060 G01 Z0.0 F300;
N0070 G91 G01 Z-5.0 M08;
N0080 G01 Y10.0;
N0090 G01 X470.0;
N0100 G00 Z45.0;
N0110 X-470.0;
N0115 Z-45.0;
N0120 M99 P0080 119;
N0130 G00 Y-200.0;
N0140 M99 P0070 17;
N0150 G49 G90 G00 Z300.0;
N0160 G28 Z300.0 M09;
N0170 M05;
N0180 M30
图3-44
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。