3.4.1 子程序编程指令
为了简化编程,当一组程序段在一个程序中多次出现,或者在几个程序中都要使用时,可将这组程序段编写为单独的程序,并通过程序调用的形式来执行,这样的程序称为子程序。
子程序具有以下几个特点。
(1) 子程序可以被任何主程序或其他子程序所调用,并且可以多次循环执行。
图3-55 子程序的嵌套
(2) 被主程序调用的子程序,还可以调用其他的子程序,称为子程序的嵌套,如图3-55所示。
(3) 子程序执行结束后,能自动返回到调用的程序中。
(4) 子程序一般都不可以作为独立加工程序使用,它只能通过调用来实现加工功能。
(5) 在数控铣床上,当一次装夹多个相同零件或一个零件有多个相同的加工内容时,可使用子程序。
1. 子程序的格式
子程序的形式和组成与主程序大体相同,也是由子程序名、子程序体和子程序结束指令组成。例如:
O××××; (子程序名,命名规则与主程序名相同)
……; (子程序体,编程指令和格式与主程序相同)
M99; (子程序结束)
程序结束字M99表示子程序结束,并返回到调用子程序的主程序中。
2. 子程序的调用格式
调用格式:M98 _ _ _ ××××
M98是主程序调用子程序的指令,指令中,_ _ _表示调用次数,FANUC系统允许重复调用的最多次数为999次,如果省略了重复次数,则为1次。后面四位数字××××表示被调用的子程序名。
如M98P3001表示调用子程序O3001一次,M98P23001表示调用子程序O3001两次。
由于子程序的调用目前尚没有完全统一,对于不同的数控系统,使用时必须参照有关系统的编程说明。
例:编制如图3-56所示零件的程序,零件四边已加工过,尺寸为180mm×110mm×40 mm,零件上4个方槽的尺寸、形状相同,槽深2mm,槽宽10mm,未注圆角半径为R5,设编程原点为零件左下角点,采用直径为φ10mm的立铣刀。
O3002; (主程序)
G54 G90 G17 G40 G49 G80; (程序初始化)
G00 Z30; (Z轴下刀到安全高度)
M03 S600; (主轴正转速度为600r/min)
G00 X30. Y15.; (刀具定位到第一个槽加工起始点处)
Z5; (刀具快速靠近工件上表面)
G91; (相对坐标)
M98 P3003; (调用子程序O3003一次,加工第一个槽)
G00 X70; (定位到第二个槽加工起始点处)
M98 P3003; (调用子程序O3003,加工第二个槽)
G00 X-70. Y50;
M98 P3003; (调用子程序,加工第三个槽)
G00 X70;
图3-56 子程序编程
M98 P3003; (调用子程序,加工第四个槽)
G90 G00 X0. Y0. Z200;
M05 M30;
O3003; (子程序)
G01 Z-7. F50; (下刀到切深2mm)
X50.0 F150; (逆时针加工槽)
Y30;
X-50;
Y-30;
G00 Z7; (抬刀到工件上表面2mm处)
M99; (子程序结束)
3.4.2 缩放编程指令
指令格式:G51 X Y Z P ;
M98 P ;
G50;
其中:G51——建立缩放;G50——取消缩放;X、Y、Z——缩放中心的坐标值;P——缩放倍数;M98 P ——调用子程序。
G51既可指定平面缩放也可指定空间缩放。在G51后运动指令的坐标值以X、Y、Z为缩放中心,按P规定的缩放比例进行计算。在有刀具补偿的情况下,先进行缩放,然后才进行刀具半径补偿和刀具长度补偿。G51、G50为模态指令,可相互注销,G50为默认值。
例:使用缩放功能编制如图3-57所示轮廓的加工程序。设刀具起点距工件上表面30 mm,切削深度为2mm。
O3004; (主程序)
图3-57 缩放编程指令
G54 G90 G17 G40 G49 G80; (程序初始化)
G00 Z30.0; (Z轴下刀到安全高度)
M03 S600; (主轴正转速度为600r/min)
G00 X0.0 Y0.0; (刀具定位加工起始点处)
Z5.0; (刀具快速靠近工件上表面)
G01 Z-2.0 F50.0; (刀具下刀到指定切深)
M98 P3005; (调用子程序O3005,加工缩放前的轮廓)
G51 X15.0 Y15.0 P3; (以(15,15)为缩放中心,轮廓放大3倍)
M98 P3005; (再次调用子程序,加工放大后的轮廓)
G50; (取消缩放指令)
G00 Z50.0;
M05 M30; (主轴停,程序结束)
O3005; (轮廓加工子程序)
G41 G00 X10.0 Y4.0 D01;
G01 Y30.0 F100.;
X20.0;
G03 X30.0 Y20.0 I10.0;
G01 Y10.0;
X5.0;
G40 G00 X0.0 Y0.0;
M99; (子程序结束)
3.4.3 镜像编程指令
当工件相对于某一轴具有对称形状时,可以利用镜像功能和子程序,只对工件的一部分进行编程,而能加工出工件的对称部分,这就是镜像功能。当某一轴的镜像有效时,该轴执行与编程方向相反的运动。
指令格式:G51 X Y I J ;
M98 P ;
G50;
其中:G51——建立镜像;G50——取消镜像;X、Y——镜像中心的坐标值;I、J分别为1、-1,以X方向为对称轴镜像;I、J分别为-1、1,以Y方向为对称轴镜像;I、J分别为-1、-1,以X、Y方向为对称轴镜像;M98 P ——调用子程序。
镜向功能可让图形按指定规律产生镜像变换。
例:使用缩放功能编制如图3-58所示轮廓的加工程序。设刀具起点距工件上表面30 mm,切削深度为2mm。
图3-58 镜像编程指令
程序如下:
……
G01 Z-2.0 F100.0; (下刀到指定切深)
M98 P3006; (调用轮廓加工子程序,加工右上角第一个轮廓)
G51 X60.0 Y50.0 I-1.0 J1.0;(Y=50为镜像轴镜像图形)
M98 P3006; (加工右下角轮廓)
G50; (取消镜像指令)
G51 X60.0 Y50.0 I-1.0 J-1.0; (以O1为镜像中心镜像图形)
M98 P3006; (加工左下角轮廓)
G50;
G51 X60.0 Y50.0 I1.0 J-1.0; (以X=60为镜像轴镜像图形)
M98 P3006; (加工左上角轮廓)
G50;
……
O3006; (轮廓加工子程序)
G42 G01 X60.0 Y60.0 D01;
X115.0;
Y80.0;
X110.0;
G02 X90.0 R10.0;
G03 X70.0 R10.0;
G01 Y50.0;
G40 G01 X60.0;
M99; (子程序结束)
3.4.4 旋转编程指令
旋转编程指令可使编程图形按照指定旋转中心及旋转方向旋转一定的角度,G68表示开始坐标系旋转,G69用于撤销旋转功能。
指令格式:G17 G68 X Y P ;
M98 P ;
G69;
其中:G68——建立旋转;G69——取消旋转;X、Y、Z——旋转中心的坐标值;P——旋转角度,单位是(°),0°≤P≤360°。
在有刀具补偿的情况下,先旋转后刀补(刀具半径补偿、长度补偿),在有缩放功能的情况下,先缩放后旋转。
例:使用旋转功能编制如图3-59所示轮廓的加工程序。设刀具起点距工件上表面50mm,切削深度为5mm。
图3-59 旋转变换功能示例
程序如下:
……
G01 Z-2.0 F100.0; (下刀到指定切深)
M98 P3007; (调用轮廓加工子程序,加工①)
G68 X0 Y0 P45; (旋转45°)
M98 P3007; (加工轮廓②)
G68 X0 Y0 P90; (旋转90°)
M98 P3007; (加工轮廓③)
G69; (取消旋转)
……
O3007; (子程序,①的加工程序)
G41 G01 X20 Y-5 D01 F100;
Y0;
G02 X40 I10;
X30 I-5;
G03 X20 I-5;
G00 Y-6;
G40 X0 Y0;
M99; (子程序结束)
子程序、镜像、旋转、缩放等指令只是简化编程的一种方法,对提高产品的加工质量、提高加工的效率没有帮助。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。