阳 涛
(达州职业技术学院 机电工程系,达州 635001)
在零件的数控加工过程中,常常会出现一些几何形状完全相同的加工轨迹,在编制的程序中,也出现固定顺序和重复模式的程序段。为了简化程序,常把这些在程序执行时重复使用的程序段写成独立程序,在适当的时候利用指令直接调用,这样的程序就是子程序。子程序编程是计算机程序设计的基本功能,现代CNC系统一般都提供调用子程序功能,这一功能为用户编制相似或相近加工工艺带来了极大的方便。下面以华中数控系统为例,说明子程序在数控车削中的应用。
子程序的格式与主程序相似。子程序的开始是O地址指定的子程序号,子程序的结尾用M99指令结束子程序的调用,返回主程序。具体指令如下:
O××××(子程序号)
┇
┇
M99 (子程序结束)
子程序是由主程序或上层子程序调用并执行的,调用子程序的指令为一程序段,华中数控系统调用子程序指令如下:
M98 P×××× L××××
其中,M98为调用子程序指令字;P后接的4位数字表示调用的子程序号;L后接的4位数字表示调用次数,省略时为调用一次,不足4位时其他位用零代替或不写。
某零件的外形尺寸如图1所示,对其进行切断编程,切断刀宽度4mm。每个零件车削完成后,一般都要求切断,如果用切断刀直接切到工件的中心,则很容易将刀具夹断,因此一般情况下采用多次往复切深的方式切断。可以采用每次切深3mm(半径值)之后退刀回原位,然后-Z方向进给3mm(进给量小于刀具宽度),再切深3mm之后退刀,最后+Z方向进给3mm,退回到原位,以此类推,经过多次循环切削,将工件切断。
如果采用常规方式编程,则编程量太大,故采用子程序编程。而采用绝对坐标编程,则不管调用多少次子程序都只能切深3mm,不可能切断工件,所以采用增量坐标编程。为了使每次切深相同,可以选择切断起始位置的X坐标比工件的直径大2mm,则第一次切深及退刀的增量坐标(直径值)为3×2+2=8,第二次切深后的退刀量为2mm(保证刀具的刀位点比刚切的工件直径大2mm)。由于总共切深是30mm(半径值),每次切深3mm,则子程序调用次数为30÷3=10次。子程序切削示意图如图2所示。
图1 待切断的零件
图2 子程序切削示意图
子程序切削的编程如下(省略外圆车削程序段):
O1111
┇
┇
T0202
M03S250
G00X62Z-89M08
M98P0002L10
G00X100M09
Z100
M05
M30
O0002
G01U-8F30
U8
W-3
U-8
U2
W3
M99
某零件总共有6个槽,如图3所示,对其进行加工,切断刀宽度4mm。如果按照常规方法编程,工作量太大。考虑到相邻两槽之间的间隔都为14mm,只需要编制切第一个槽的子程序,注意子程序要用增量坐标编程,调用6次就可以完成切槽加工。
图3 切槽加工
编程如下:
O0001
T0202
M03S200
G00X32Z0M08
M98P0002L6
G00X100Z100M09
M05
M30
O0002
G01W-14F100
U-12F30
G04P2
G00U12
M99
某手柄零件的外形尺寸如图4所示,对其进行粗精加工,毛坯为直径55mm的圆钢棒料,切点坐标分别为 A(17.143,-4.849)、B(25.163,-79.699)、C(23.111,-128.779)。
这个零件可以采用内外径粗车复合循环指令G71和精车循环指令加工,但换一种思路,用子程序的方法也可以加工,只是每次走刀路线都是与精加工轮廓相似的轨迹,空行程较多。从棒料加工成手柄需要多次切削,为了保证每一次切深都切到工件并用到同一个子程序,X方向必须采用增量坐标U,Z方向仍然采用绝对坐标Z。为了保证加工精度,粗车和精车采用不同的子程序,粗车车刀采用T0101,精车车刀采用T0202。循环起点为P(55,5),粗车时主轴转速600r/min,进给速度150mm/min,背吃刀量3mm(直径值),精车时主轴转速1000r/min,进给速度80mm/min,背吃刀量1mm(直径值)。因此,粗车子程序调用次数为棒料直径减去精车余量之差再除以粗车的背吃刀量,即(55-1)÷3=18次。
图4 手柄零件粗精加工
编程如下:
O1111(主程序)
T0101
M03 S600
G00 X55 Z5 M08
M98 P2222 L18
G00 X100 Z100
T0202S1000
G00X1Z5
Z0F100
M98P3333
G00X100Z100M09
M05
M30
O2222(粗车子程序)
G01 U-3 F150
Z0
G03 U17.143 Z-4.849 R20
G03 U8.020 Z-79.699 R80
G02 U-2.052 Z-128.779 R50
G03 U16.889 Z-140
G01 Z-160.0;
U10
Z-170
U5
G00 Z5
U-55
M99
O3333(精车子程序)
G01 U-1 F80
Z0
G03 U17.143 Z-4.849 R20
G03 U8.020 Z-79.699 R80
G02 U-2.052 Z-128.779 R50
G03 U16.889 Z-140
G01 Z-160.0;
U10
Z-170
U5
G00 Z5
U-55
M99
以上数控车削中子程序的应用,使编程人员的劳动强度大大降低,因此数控车削加工时,人们应尽量采用子程序编程。值得注意的是,为了能够在子程序循环中不断地吃刀,子程序一定要采用增量坐标编程,否则就会出错。