浅谈宏程序在实际生产中的应用
摘要:在职业学校的数控专业教学中,软件自动编程越来越普遍。部分学生认为自动编程很方便,手工编程麻烦,因此忽视了手工编程的学习。但在企业生产中,手工编程作为基础,宏程序编程作为手工编程的高级形式,特别是在某些零件的加工方面还是起到不可替代的用。本文叙述了宏程序编程的特点及宏程序在实际生产中的应用。
关键词: 数控编程 宏程序 变量 孔系加工 孔铣削
一、引言
随着现代制造技术的发展,产品的形状越来越复杂,对产品的精度要求越来越高,数控机床已经得到广泛应用。要发挥先进生产设备高精度、高效率和高柔性的特点,就要求我们拥有优秀的编程人员。在我们的数控编程工作中,现在主要有两种编程方式:手工编程和软件自动编程。自动编程,对于形状复杂、带有不规则曲面的零件的加工,可大大减轻劳动者劳动强度、提高工作效率,解决许多手工编程无法解决的难题。因此,自动编程软件的使用越来越广泛,特别是在模具加工行业中绝大部分情况下都已经采用计算机软件来编程。
但自动编程也有不足之处。比如,自动编程一定要有软件作为支撑,编程人员要经过专业的培训才能进行编程。操作者来不仅要熟练操作设备,还要另外学习使用软件,企业还要给操作者提供自动编程的工作环境。对中小企业来说,一定程度上增加企业运行的成本。
对于加工面比较规则的工件来说,如果也采用软件来进行自动编程的话,从造型、确定刀具,到生成程序这一套工作做下来,操作者利用手工编程说不定已经加工结束,尽管软件计算刀路非常快。而如果某些参数发生变化,软件就要重新计算加工轨迹,工作量比较大。
虽然软件编程应用范围越来越广,但手工编程从来都是不可或缺的一种编程手段,手工编程是基础。而宏程序编程是手工编程的高级形式,通过编制用户宏程序,可极大提高编程序的效率,降低企业的运行成本。因此,在我们的数控教学及训练过程中,应该把编制用户宏程序作为数控教学的重要内容之一。
二、宏程序编程在实际生产中的应用
在实际生产中,宏程序编程是自动编程的有效补充。宏程序具有灵活性、通用性和智能性等特点。下面举几个可说明宏程序编程能有效提高工作效率的实例。
1、我们在实际生产中经常要加工孔系零件,孔的数量很多。如下图所示。

如果我们采用自动编程,我们首先要用软件绘制出孔的中心坐标,确定加工刀具、设置加工参数等,生成的加工程序也很长,工作效率不一定高。而如果采用一般的手工编程,由于孔的数量非常多,靠手工输入孔的中心坐标容易出错,程序也比较长,工作效率也低。这种情况,我们采用宏程序编程非常方便,只要设置相关参数就可以进行加工了,而且程序的通用性很强。程序如下:
%
O0007
G54G90G0X0Y0
G0Z50S1000M03
#100=10(初始孔X坐标)
#101=10(初始孔Y坐标)
#102=10(X方向间距)
#103=10(Y方向间距)
#104=10(X方向行数)
#105=8(Y方向列数)
#26=-5(孔深)
#9=100 (进给速度)
#108=1(X方向记数)
#109=1(Y方向记数)
#106=#100(X赋值)
#107=#101(Y赋值)
N10
N20G0X#106Y#107(定位孔位置)
G99G81Z#26R2F#9(固定循环加工孔)
#106=#100+#102*#108(计算X坐标)
#108=#108+1(X方向记数)
IF[#108LE#104]GOTO20 (如果孔数小于等于设定值转移到N20)
#107=#107+#103(计算Y坐标)
#106=#100(X坐标初始化)
#109=#109+1(Y方向记数)
#108=1(X方向记数初始化)
IF[#109LE#105]GOTO10(如果列数小于等于设定值转移到N10)
G80
G0Z60
M30
%
2、在实际生产中,经常要用铣刀加工不同直径大小的孔。如下图所示:

如果我们采用宏程序来进行编程,通过给主程序中相关变量赋值,即可调用宏程序实现不同直径孔的加工,该宏程序具有通用性、实用性和灵活性的特点。程序如下:
O9013
#3=60(定义孔的直径)
#7=25(定义刀具直径)
#9=2000(定义刀具进给速度)
#17=0.7;(代表孔的上平面绝对坐标)
#18=-1(代表每层切削深度)
#24=40(定义孔的中心X绝对坐标)
#25=35 (定义孔的中心Y绝对坐标)
#26=-21.7(定义孔的底面绝对坐标)
#500=[#5043-#5083]
#31=ABS[FIX[[#26-#18]/#17]]
#32=ABS[#26-#18]-#31*#17
#33=[#3-#7]/2
#34=#33/2
#35=#33+#24
IF[#33LE0.5]THEN#3000=133(TOOL ERROR) (如刀具螺旋直径小于0.5就停止并报警)
G90G00X#24Y#25
G90Z[#18+#17]
G03X#35R#34F#9
WHILE[#18GT#26]DO3
IF[[#18-#32]EQ#26]GOTO1
G03I-#33Z#18F#9
#18=#18-#17
END3
N1IF[#32NE0.]GOTO2
IF[#32EQ0.]GOTO3
N2G03I-#33Z#26
N3G03I-#33
G03X#24R#34
G90G00Z#500
M99
首先,使用程序号O9013,是为了让程序处于隐藏状态防止误删。把系统参数3202#4设置为1为隐藏,0为显示。然后在参数6053的位置输入一个数字如-13,那么就可以用G13模态调用此宏程序了。如果输入的是正数就不是模态的。在主程序中用程序段G13 X__ Y__ C__ D__ Z__ R__ Q__ F__调用。
英文26个字母在宏程序中有特定的含义。A,B,C分别代表#1,#2,#3,;D,E,F代表#7,#8,#9;H代表#11;I,J,K代表#4,#5,#6,M代表#13,Q到Z则是#17到#26.所以G13代码的格式就是G13 X__ Y__ C__ D__ Z__ R__ Q__ F__;
程序O9013中#500之前的代码数值必须全部删除。否则的话G13指令指定的数值均无效。#5043则是Z轴的绝对坐标,#5083则是长度补偿的数值;接下来就是进行逻辑运算为加工做准备,接着就是对运算之后的结果做一个判断IF[#33LE0.5]THEN#3000=133(TOOL ERROR),即如果刀具螺旋直径小于0.5就停止并报警。之后就是机床动作进行加工操作。
这个程序不会在孔的底部产生过切或残料,加工过程中采用圆弧进退刀,使加工更流畅,加工的全程为顺铣,中间不提刀没有停顿。如果自带的圆弧半径过小可自动报警,可以解决除直径太小孔外所有孔的粗精加工。
三、结束语
通过上述实例,我们可以看到在实际生产中,为了减轻操作者的劳动强度,提高生产效率和产品质量,结合零件的具体情况,灵活的运用宏程序,可有效提高编程效率,提高机床程序利用率,降低企业运行成本。