韩成国顾曙光李树勇(青岛市技师学院山东青岛266229)
在编程工作中,我们经常把能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来代表它们,使用时只需给出这个总指令就能执行其功能。所存入的这一系列指令称作用户宏程序本体,简称宏程序。这个总指令称作用户宏程序调用指令。在编程时,编程员只要记住宏指令而不必记住宏程序。
用户宏程序与普通程序的区别在于:在用户宏程序本体中,能使用变量,可以给变量赋值,变量间可以运算,程序可以跳转;而普通程序中,只能指定常量,常量之间不能运算,程序只能顺序执行,不能跳转,因此功能是固定的,不能变化。用户宏功能是用户提高数控机床性能的一种特殊功能,在相类似工件的加工中巧用宏程序将起到事半功倍的效果。
宏程序本体既可以由机床生产厂提供,也可以由机床用户自己编制。使用时,先将用户宏主体像子程序一样存入到内存里,然后用子程序调用指令调用。
一、用户宏程序本体的编写格式
用户宏程序本体的编写格式与子程序的格式相同。在用户宏程序本体中,可以使用普通的NC指令,采用变量的NC指令、运算指令和控制指令。
格式如下:
Oxxxx;
#26=#4+#18*Cos[#1];
G90GOOX#26;
……
IF[#22GE#9〕GOTO9;
……
N9M99
变量可以用于宏程序本体,可以指定运算和控制指令,用宏程序调用命令赋予变量实际值。
二、应用实例
圆角加工宏程序应用如图1所示的是某产品上部圆角的加工,如果以圆柱铣刀或球头刀采用直线拟合的方式进行加工时,采用CAM软件编制此圆角曲面的数控程序,其程序以直线拟合的方式进行加工,程序代码的容量是传统数控机床所无法容纳的,若采用DNC加工,则存在数据丢失的风险。如果以手工编程方式采用宏程序,采用圆柱立铣刀的刀尖或球头刀进行该圆角曲面的圆弧插补加工,则程序变得简洁短小,其程序如图1b所示;而以CAM软件进行编程的直线拟合的加工程序代码如图1a所示。从图中可以看出,CAM编制的程序容量较宏程序的容量大得多。如采用相同的加工插补精度,宏程序只需调节#110用户变量来调节每层Z轴的加工深度,即可满足加工精度要求。而以直线拟合加工方式提高精度时,程序容量可能呈倍数增加,传统数控机床的容量更难以满足生产要求。同时该程序通过调节#110用户变量可满足粗加工、半精加工和精加工要求,程序的柔性比用CAM软件编制出的数控程序适应性更好。
图1、用户宏程序循环加工示意图
(a)直线拟合加工程序代码
O8001;
N102G0G17G49G80G90
N104T1M6;
N106G0X-48.46Y-48.4S5000M3;
N108G43H1Z50.;
N112G1Z39.8F100;
N114X-46.395Y-50.391F1200;
N116X-44.203Y-52.325;
N118X-41.893Y-54.191;
……
N7160Z29.7F100;
N7162X-40.641Y-44.141F1200;
N7164X-38.72Y-45.835;
N7166X-36.697Y-47.47;
……
N7490Z50.;
N7492G91G28Z0;
N7494G28X0Y0;
N7500M30;
(b)用户宏程序循环加工程序
O8005;
#101=75.5;最大外圆半径)
#102=10.5;圆角半径)
#105=8;刀具半径补偿)
G0G17G40G49G80G90;
T1M6;
G0G90X40.Y0.S2000M3;
G43H1Z50.;
#110=0.(Z轴步距);
WHILE#110LT#102;
#120=#102-#110;
#130=SQRT[#102*#102-#120*#120];
#140=#101-#130(固定层半径);
G01Z[-#110]F300;
G01G41D[#105]X[#140];
G02I[-#140];
G02I[-#140];
G00G40X40.;
#110=#110+0.2;
ENDW;
G00Z50.M5;
G91G28Z0.;
G28X0.Y0.;
M30;
在编制宏程序时,要牢记变量的种类及特性,不可乱用。因为局部变量、系统变量、公共变量的用途和性质各不相同,局部变量#1-#33是在宏程序中局部使用的变量,公共变量#100-#149和#500-#531是通过主程序及其调出的子程序通用的变量。公共变量的用途,在系统中没有规定,用户可以自由使用。系统变量是在系统中用途固定的变量,如#200—#2932为刀具补偿量,#3001、#3002为时钟等。
数控编程中使用宏程序,能够给手工编程带来极大的方便,解决一些手工编程几乎无法解决的问题。