程礼勇
(四川鸿舰重型机械制造有限责任公司,四川 攀枝花 617000)
随着工业4.0的推广,我们国家的现代制造技术蓬勃发展,数控机床的应用得到了飞速的普及,从事数控加工的技术工人不断增加,数控加工技术得到了加工企业的极大重视。数控编程是数控加工的关键技术之一,是数控加工中不可或缺的重要工作内容,其编制效率直接影响数控加工的质量和生产效率。目前,数控编程主要有软件自动编程和手工编程[1],软件自动编程存在一些缺陷和弊病,所编制的程序可读性差、繁琐、灵活性不够好。为了解决这一弊病,就出现了宏程序编程。宏程序是手工编程的高级应用和精髓,也是软件自动编程所不能达到的高点。
生产加工中会遇到一些数量少、品种多、形状相似的工件,按照常规的编程加工方法加工此类工件,就必须对每一个工件进行编程,加工时操作者还需要对每一个工件的程序作调整,因此生产加工效率低。我们在编程过程中找到它们的共同点,利用宏程序变量运算和程序跳转特性进行程序编写,可以缩短整体编程时间,减少操作者对程序的调整时间,提高生产加工效率[2]。
用户宏程序是我们在编程中运用的一种类似高级语言的程序,程序中存有变量,它能把由一种指令实现的某种功能像子程序一样事先存入存储器中,用一个命令代表这些功能。程序中只要写出该代表命令,就能实现这些功能。用户宏程序是提高数控机床效能的一种高级应用,在类似工件的加工中巧用宏程序将起到事半功倍的效果。
把由一组指令实现的某种功能像子程序一样事先存入存储器中,用一个命令代表这些功能。程序中只要写出该程序命令,就能实现这些功能。把这一组命令称为用户宏程序本体,把代表命令称为“用户宏命令”。用户宏程序本体有时也简称宏程序。用户宏命令也称为宏程序调用(见图1所示)。
图1 宏程序调用
1.1.1 变量的表示
用变量符号R和后面的变量号指定,表达式也可以用于指定变量符号,但必须封闭在括号内。比如R1=1,R2=6,R3=R1+R2。
1.1.2 变量的类型
R0~R99—可自由使用;R100~R249—加工循环传递参数(如程序中没有使用加工循环,这部分参数可自由使用);R250~R299—加工循环内部计算参数(如程序中没有使用加工循环,这部分参数可自由使用)。
1.1.3 赋值方式
为程序的地址字赋值时,在地址字之后应使用“=”,N、G、L除外。
例:G00 X=R2
1.2.1 指令
主要有:IF 条件 GOTOF 标号 、IF 条件 GOTOB 标号[3]。
说明:IF—如果满足条件,跳转到标号处;如果不满足条件,执行下一条指令;GOTOF—向前跳转;GOTOB—向后跳转。
1.2.2 标号
目标程序段的标记符,必须要由2~8个字母或数字组成,其中开始两个符号必须是字母或下划线。标记符必须位于程序段首;如果程序段有顺序号字,标记符必须紧跟顺序号字;标记符后面必须为冒号。
1.2.3 条件
计算表达式,通常用比较运算表达式,比较运算符见表1。
表1 比较运算符
(1)普通的数控加工程序只允许使用常量,例如加工圆形轨迹只能用很多点来采用逐步逼近的方式,使得工件由不规则形状逐渐向圆形靠拢,对于精度高的工件就需要算出更多的点,让编程人员花费大量时间。宏程序只需要将变量和公式写入编程中,通过指令控制,自动进行计算加工。
(2)普通程序的常量不能进行相互计算,而宏程序变量可以计算,并且还有判断和跳转功能。
(3)对于自动编程的程序来说,经常一个简单的零件由软件自动编程出来的程序非常复杂,且不能跳转、循环等。
(4)宏程序的容量小,机床的反应速度快,加工效率高。由于宏程序多采用跳转、循环等功能指令,其程序较短。机床在执行宏程序时,数控系统的计算机可以直接进行插补运算,加上电机和数控机床的反应迅速,加工效率高。
在数控加工中,宏程序通过编辑子程序和使用全局变量来控制改变刀具路径和刀具位置;在编程时,不必要记住用户宏程序功能主体所含的具体指令,只要记住用户宏程序功能指令即可,同时在修改同类型的程序中,也只需要修改很少部分的变量即可。宏程序具有模块化的思想和条件,编程时只需要根据零件几何信息和不同的数学模型即可完成相应的模块化加工程序设计,应用时也只需要把零件信息、加工参数输入到相应的模块调用语句中,能使编程人员从繁琐的、重复的编程工作中解脱出来,使得编程效率和生产加工效率得到有效提高。
生产加工中经常遇到加工路径重复情况,以下是加工锥型件实例(见图2),其加工刀路见图3。
图2 锥型件
图3 加工刀路
程序:
R0=16;
刀半径
R1=5
刀尖圆弧半径
R2=0.5
单边余量
R17=-40;
当前Z
R3=-40;
起点Z
R4=1;
终点Z
R5=5;
深度步长
R6=43;
工件实际厚度
R7=22.5;
大端圆弧半径
R8=10;
大端倒角半径
R9=10;
锥度
R10=-10;
启刀点X
R11=110;
R12=R11-R7-SQRT(R7*R7-(R6/2-R8)*(R6/2-R8));
R13=ACOS((R6/2-R8)/(R7-R8));
R14=180-2R13;
R15=R0-R1+R*COS(R9);
工作刀半径
R16=R1*SIN(R9)-R1;
附加Z
T1D1;
G54G40G90G0Z50F100;
定点,启动主轴
M3S1000;
主轴正转,1000转/分
REPEAT
IFR17>R4;
R17=R4;
强制等于最后加工点的坐标
ENDIF;
R18=R7-(R17-R3)*TAN(R9);
当前大端圆弧半径
R19=R8-(R17-R3)*TAN(R9);
当前大端倒角半径
R20=R6/2-(R17-R3)*TAN(R9);
R30=R18+R15+R2;
R31=R19+R15+R2;
R32=R20+R15+R2;
G0X=R10Y-R32;
Z=R17+R16;
G1X=R12;
G 3RP=R31 AP=R13;
RP=R30 AP=R14;
RP=R31 AP=R13;
G1X=R10;
G0Z5;
STOPRE;
R17=R17+R5;
每次循环增加的加工量
UNTILR17==R4+R5;
条件满足结束循环
G0Z200;
M30
本程序在加工圆弧倒角时,刀具直径为32,刀尖圆弧为5的立铣刀。程序中把需要加工的尺寸、刀具大小、加工递增量的大小等用宏程序中的变量代替,使得在宏程序中只有变量之间的计算,让主要部分程序非常简洁明了。利用刀具中心位置理论与实际的偏差,通过走刀的角度和变量控制,让机床在走刀的时候能准确地走出加工轨迹;利用变量自增的循环刀路,简单明了的宏程序解决复杂的工件加工路线,并且加工精度是用宏程序变量控制,我们需要达到什么精度都只用改变一个变量就能解决,粗加工和精加工也只需要更换宏程序中控制刀具的圆弧半径和加工余量的一个变量即可,从而精确快速地完成加工任务。
在普通的程序编制中程序字为一常量,一个程序只能加工一个几何形状,比较缺乏灵活性和通用性。在一些实际情况中机床需要按照一定的规律动作,或者是加工法完全一样,只是加工位置在工件上有所不同,如在环形上加工孔,如果用普通程序编程,那么会相当复杂而且不通用。针对这种情况,用宏程序编程,在程序中使用变量,通过对变量进行赋值和一定的运算达到程序加工的功能。
我们国家的机械加工行业拥有大量的数控车间或数控机床,这些数控机床每天加工大量的工件,很多公司里都是采用人工手工编程,采用宏程序进行归类编程,会减少编程人员繁琐的编程时间,并且在实际生产过程中降低操作者的劳动强度,提高生产效率,增加企业的效益。所以宏程序在先进的制造业和数控加工编程的实践中具有重要意义。