呼刚义,关雄飞
(西安理工大学高等技术学院,西安 710048)
数控机床是一种程序控制的自动加工机床,其加工表面形成运动和辅助动作不需要人的直接参与而是完全按编写的程序指令进行的。根据零件形状和工艺需要,编写适合其加工路径的数控程序,是进行数控加工的关键。
常见的数控机床所能实现的加工轨迹曲线是直线和圆弧两种,即机床具有直线插补和圆弧插补功能。随着科技的不断进步和工业产品日益多样化,加工零件中越来越多出现如椭圆、抛物线、双曲线和渐开线等特殊轮廓。直接利用直线插补和圆弧插补指令来编写特殊轮廓加工程序,需要提前计算出所走轨迹的大量中间点,再通过这些中间点形成接近特殊轮廓的逼近线,费时、费力、程序过长、精度没法保证,甚至难以完成。而针对特殊轮廓曲面构建实现插补算法的数学模型,并利用宏程序来编程,不但容易而且零件的加工质量容易保证。
宏程序编程最大的特点就是在编程中引入变量和算术、逻辑运算,以及循环和条件转移等功能,使得特殊轮廓加工编程更容易、更方便。不同的数控系统其宏程序语言有所不同,例如西门子SINUMERIK系统采用的是R参数编程,而FANUC系统提供了A类和B类两类宏程序,其中A类宏程序可读性差,编写起来比较费时费力,B类宏程序类似于C语言的编程,编写起来很方便。不论是何种数控系统的宏程序,它们运行的效果都是一样的。本文以华中数控世纪星系统其为用户配备了强有力的类似于高级语言的宏程序椭圆面加工为例,来说明宏程序在特殊轮廓零件数控编程中的应用。
数控编程中数值,既可直接指定,也可利用用户宏程序中的变量指定。当用变量时,变量值可用程序或通过MDI面板上的操作进行赋值。
变量表达格式是用变量符号(#)和后面的变量号指定,例如:#1。华中系统提供给编程人员所用的变量范围为:#0~#599,而#599以上的变量仅供系统程序编辑人员使用。其中#0~#49为当前局部变量;#50~#199为全局变量;#200~#249为0层局部变量;#250~#299为1层局部变量;#300~#349为2层局部变量;#350~#399为3层局部变量;#400~#449为4层局部变量;#450~#499为5层局部变量;#500~#549为6层局部变量;#550~#599为7层局部变量。需要说明的是华中世纪星子程序嵌套调用的深度最多可以有八层,每一层子程序都有自己独立的局部变量(变量个数为50)。比如当前层局部变量为#0~#49,紧跟层局部变量为#200~#249,依此类推。
1.2.1 变量的运算
在数控宏程序中,变量既可以用来进行算术运算,也可作逻辑运算。例如:#2 =175/SQRT[2]*COS[55 * PI/180 ],其中SQRT[2]即求2平方根、 PI为圆周率符号。
1.2.2 条件循环控制语句
1)条件判别语句
格式 (i) IF (条件表达式)
语句1;//只有当条件表达式为真命题时,语句1才会被执行。
ELSE
语句2;//只有当条件表达式为假命题时,语句2才会被执行。
ENDIF
格式(ii) IF 条件表达式
语句;//只有当条件表达式为真命题时,语句才会被执行。
ENDIF
2) 循环语句
格式 WIIILE (条件表达式)
语句;//只有当条件表达式为真命题时,
语句会重复的被执行。
ENDW
图1 实际加工轨迹逼近理论轮廓
图2 特殊轮廓“插补”流程图
数控机床在切削加工运动中,系统随时通过当前所处的点位置和要求所走轨迹的指令类型如直线或圆弧指令,按照系统内部算法,通过当前机床所处的节点位置插补计算及运动控制走到下一个要到达的节点位置,不断的重复计算和运动,直至运动到终点位置结束。可见实际的加工轨迹是和理论轮廓线相似的、误差在允许范围内的逼近线,如图1所示。在理想轮廓线上的已知点之间,进行数据点密化,确定一些中间点的方法,这就是插补。作为常见的数控系统只具备直线插补和圆弧插补算法,因而对于直线和圆弧两种轨迹外的特殊轮廓的加工编程,必须在编程前根据容差要求采用拟合法用直线或圆弧对特殊轮廓进行分段逼近并给出相应节点坐标或编写的程序中具有特殊轮廓“插补”算法。后者可以避免拟合法所带来的复杂计算问题,并便于控制形状与尺寸误差,而且通过宏程序就能很方便地实现。具体做法是:首先,研究特殊轮廓方程,找出一个与曲线有内在联系的自变量,其在曲线轨迹的起点和终点有两个一一对应的数值比如m和n,构建一个数学模型即特殊轮廓“插补”算法。让自变量在m和n之间按一定的步长递增或递减,并将其代入数学模型可求得特殊轮廓轨迹从起点到终点之间的若干个不超过一定间距的特殊轮廓上的顺序点位置,即节点。这种数据点密化过程,就是特殊轮廓“插补”,流程如图2所示;其次,通过灵活多变的宏程序语言编写成机床能认识的程序。
零件如图3所示。毛坯为35mm×60mm×80mm长方体板料,材料为45#钢,需要在其上加工出长半轴30mm × 短半轴20mm、高为5mm的椭圆柱面。
图3 示例零件
根据零件粗糙度要求和XY面上最大加工余量,选用Φ30硬质合金立铣刀进行两次加工,如图3建立工件坐标系。第一次调用加工程序,刀具刀偏半径D1设置为15.5mm,Z向切深为5mm,切削完成单边留0.5mm余量;第二次再调用加工程序,刀具刀偏半径D1设置为15mm,切削至尺寸。
根据宏程序编程思想和椭圆的特点,如图4所示选夹角θ为自变量,作为循环求取轨迹中间点的变量。曲线上任一点坐标(x,y)的计算公式为:
其中夹角θ变化范围为0~360°变化。
图4 椭圆的坐标系
O0001-------------------------程序名
G54 G90 G94 G40----------建立工件坐标系
M03 S2500
G00 X30 Y60 Z100
Z5
G01 Z-5 F200
G41 G01 X30 Y0 D01-----建立刀具左补偿
#1=30-------------------------椭圆长半轴变量
#2=20-------------------------椭圆长半轴变量
#3=0--------------------------与X轴夹角的自变量
WHILE #3 GE [-360]----循环开始及条件判别
#4= #1*COS[#3*PI/180]
#5= #2*SIN[#3*PI/180]
G01 X[#4] Y[#5]
#3= #3-0.1-------------------夹角θ变量的步距长0.1mm
ENDW------------------------循环结束
G40 G00 X30 Y60 Z200----取消刀补并退刀
M05
M30
从上面编制的零件程序可以看出,轨迹加工时每一个中间节点位置的计算是由数控系统来完成,相邻节点的间距是由自变量#3的值控制并且是可重新修改的;采用宏程序编写的特殊轮廓加工程序简洁、简短且不易出错,易于保证零件加工精度。采用数控加工仿真软件仿真表明该零件加工程序正确无误。
数控系统所提供的圆弧插补和直线插补指令只适用于专门曲线,对于诸如抛物线、渐开线、
椭圆等曲线构成的特殊零件轮廓,直接利用直线插补和圆弧插补指令编写程序时计算量大、程序长且加工精度难以保证。宏程序具有灵活性、通用性和智能性等特点,采用宏程序编写特殊轮廓加工程序可以有效克服上述诸多不足,所编写的加工程序简洁易读、逻辑严密、通用性强、加工精度易于控制,并且对于相似特殊轮廓该程序还具有移植性。因此灵活的应用宏程序对于提升数控编程效率具有重要现实意义。
[1] 关雄飞.数控加工工艺与编程[M].机械工业出版社,2011.
[2] 华中数控系统编程说明书,机床编程说明书[Z].