高级数控编程:子程序调用及编程举例
一次装夹加工多个形状相同或刀具运动轨迹相同的零件,即一个零件有重复加工部分的情况下,为了简化加工程序,把重复轨迹的程序段独立编成一程序进行反复调用, 这重复轨迹的程序称为子程序,而调用子程序的程序称主程序。
子程序的调用
子程序的`调用方法如图1-2所示。需要注意的是,子程序还可以调用另外的子程序。从主程序中被调用出的子程序称一重子程序,共可调用四重子程序,如图1-3所示。
在子程序中调用子程序与在主程序中调用子程序方法一致。
格式:M98 P L
说明:P:子程序名
L:重复调用次数,省略重复次数,则认为重复调用次数为1次
例:M98 P123 L3
表示程序号为123的子程序被连续调用3次,如图1-4所示。
子程序中必须用M99指令结束子程序并返回主程序。
应用举例:
加工如图1-5所示轮廓,以知刀具起始位置为(0,0,100),切深为10mm,试编制程序。
图1-6
相关知识点:
●在使用子程序编程时,应注意主、子程序使用不同的编程方式。一般主程序中使用G90指令,而子程序使用G91指令,避免刀具在同一位置加工。
●当子程序中使用M99指令指定顺序号时,子程序结束时并不返回到调用子程序程序段的下一程序段,而是返回到M99指令指定的顺序号的程序段,并执行该程序段。
编程举例:如图1-6所示。
子程序执行完以后,执行主程序顺序号为18的程序段。
华兴数控子程序调用:G20 子程序调用指令;
G22 子程序定义;
G24 子程序结束返回。
编程实例:假设子程序为 N99
P00(主程序名)
T0101 M8
M3 S800
G0 X100 Z200
G20 N99.** (调用程序库里子程序N99,小数点后面的数字表示调用次数,不编表示只调用一次。子程序结束后进入下一段)
G0 X100 Z200
M5 M9
M2
N99(子程序名)
G22 N99(定义此段程序为子程序N99)
G0 X50 Z0
G1 X0 F100
G0 X50 W1
G24 (子程序结束)
例:在一块平板上加工6个边长为10mm的等边三角形,每边的槽深为-2mm,工件上表面为Z向零点。其程序的编制就可以采用调用子程序的方式来实现(编程时不考虑刀具补偿)。设置G54:X=-400,Y=-100,Z=-50。
主程序:
O10
N 10 G54 G90 G01 Z40 F2000 //进入工件加工坐标系
N20 M03 S800//主轴启动
N30 G00 Z3 //快进到工件表面上方
N40 G01 X 0 Y8.66 //到1#三角形上顶点
N50 M98 P20 //调20号切削子程序切削三角形
N60 G90 G01 X30 Y8.66 //到2#三角形上顶点
N70 M98 P20 //调20号切削子程序切削三角形
N80 G90 G01 X60 Y8.66 //到3#三角形上顶点
N90 M98 P20 //调20号切削子程序切削三角形
N100 G90 G01 X 0 Y -21.34 //到4#三角形上顶点
N110 M98 P20//调20号切削子程序切削三角形
N120 G90 G01 X30 Y -21.34 //到5#三角形上顶点
N130 M98 P20//调20号切削子程序切削三角形
N140 G90 G01 X60 Y -21.34 //到6#三角形上顶点
N150 M98 P20//调20号切削子程序切削三角形
N160 G90 G01 Z40 F2000 //抬刀
N170 M05//主轴停
N180 M30//程序结束
子程序:
O20
N10 G91 G01 Z -2 F100 //在三角形上顶点切入(深)2mm
N20 G01 X -5 Y-8.66 //切削三角形
N30 G01 X 10 Y 0 //切削三角形
N40 G01 X 5 Y 8.66//切削三角形
N50 G01 Z 5 F2000 //抬刀
N60 M99 //子程序结束
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)