【摘 要】随着制造工业的发展,数控技术的应用也越来越广泛,更多公司开始开发高效的cnc程序,虽然现在很多复杂的零件采用cad/cam软件自动编程,但是由于各种原因,它们没有也不能代替宏编程。宏程序对专门的需求常有专门的解决办法。本文针对椭圆在数控车床上的加工谈谈宏程序的编程方法。
【关键词】数控技术;宏程序;宏指令;椭圆
文章编号:issn1006—656x(2013)09 -0110-02
前言:我国目前被誉为“世界工厂”、“制造大国”,我国制造工业在发展的同时, 数控技术也得到了最广泛的应用,现在无论是硬件数控系统还是软件数控系统,其插补的基本原理是相同的,只是实现插补运算的方法有所区别。最常见的是直线插补和圆弧插补,没有椭圆、双曲线、抛物线等插补。为了解决这些编程问题,我们可以采用拟合计算,用宏程序方式进行编制。下面就数控车床加工椭圆来介绍a类和b类宏程序的编程方法:
一、宏程序概念介绍:
用户宏程序是以变量的组合,通过各种算术和逻辑运算、转移和循环等命令,而编制的一种可以灵活运用的程序,只要改变变量的值,即可完成不同的加工或操作。
用户宏功能主体是一系列指令,相当于子程序体。既可以由机床生产厂提供,也可以由机床用户自己编制。
宏指令是代表一系列指令的总指令,相当于子程序调用指令。最大特点是,可以对变量进行运算,使程序应用更加灵活、方便。用户宏功能有a、b两类。其中a类宏是以g65hxxp#xxq#xxr#xx的格式输入的,而b类宏程序则是以直接的公式和语言输入的和c语言很相似在0i系统中应用比较广。
a类宏程序:
(一)变量
在常规的主程序和子程序内,总是将一个具体的数值赋给一个地址。为了使程序更具通用性、更加灵活,在宏程序中设置了变量,即将变量赋给一个地址。
(二) 宏指令g65
包括算术运算、逻辑运算等处理功能。
一般形式: g65 hm p#i q#j r#k
式中:
m--宏程序功能,数值范围01~99;
#i--运算结果存放处的变量名;
#j--被操作的第一个变量,也可以是一个常数;
#k--被操作的第二个变量,也可以是一个常数。
(三)宏功能指令
1. 算术运算指令 包括加、减、乘、除等;
2. 逻辑运算指令 包括或、与、异或;
3. 三角函数指令 正弦、余弦、正切、反正切
4. 控制类指令 无条件转移、条件转移、产生ps报警
b类宏程序:
(四)宏程序的简单调用格式
宏程序的简单调用是指在主程序中,宏程序可以被单个程序段单次调用。
调用指令格式: g65 p(宏程序号) l(重复次数)(变量分配)
其中:g65――宏程序调用指令
p(宏程序号)――被调用的宏程序代号;
l(重复次数)――宏程序重复运行的次数,重复次数为1时,可省略不写;
(变量分配)――为宏程序中使用的变量赋值。
宏程序与子程序相同的一点是,一个宏程序可被另一个宏程序调用,最多可调用4重。
(五)宏程序的编写格式
宏程序的编写格式与子程序相同。其格式为:
0 ~(0001~8999为宏程序号) //程序名
n10 …… //指令
.
n~ m99 //宏程序结束
上述宏程序内容中,除通常使用的编程指令外,还可使用变量、算术运算指令及其它控制指令。变量值在宏程序调用指令中赋给。
(六)变量
(七)算术运算指令
(八)控制指令
(1)条件转移
编程格式:if [条件表达式] goto n
以上程序段含义为:
1)如果条件表达式的条件得以满足,则转而执行程序中程序号为n的相应操作,程序段号n可以由变量或表达式替代;
2)如果表达式中条件未满足,则顺序执行下一段程序;
3)如果程序作无条件转移,则条件部分可以被省略。
4)表达式可按如下书写:
#j eq #k 表示=
#j ne #k 表示≠
#j gt #k 表示>
#j lt #k 表示<
#j ge #k 表示≥
#j le #k 表示≤
(2)重复执行
编程格式:while [条件表达式] do m (m = 1,2,3)
.
.
.
end
m
上述“while…end m”程序含意为:
1)条件表达式满足时,程序段do m至 end m即重复执行;
2)条件表达式不满足时,程序转到end m后处执行;
3)如果while [条件表达式]部份被省略,则程序段do m至 end m之间的部份将一直重复执行;
二、宏程序编程实例应用:
已知椭圆z向长轴半径40,x向短轴半径20,毛坯材料为50棒料,加工右半椭圆,工件坐标系的原点如图所示,设置在工件的右端面中心位置。编写如(图1)所示椭圆a—b段的精加工程序:
(图1)
(一)以gsk980(当前版本是gsk980td)数控车系统为代表的a类宏程序应用: 编程分析:
由于椭圆是非圆曲线,用宏程序加工非圆曲线时,其原理是将曲线分成若干段后用直线进行拟合,具体分成段数的多少要根据零件加工精度来确定,精度越高,分段数越多。所以实际加工完成的非圆曲线是由很多极短的折线段构成。
主程序
o1000;
n10 g97g99g40; (指定进给方式和取消刀具半径补偿)
n20 m03s800t0101;(设置主轴转速选用1号刀和调用1号刀补)
n30 g00g41g00x0z2; (圆弧半径左补偿)
n40 g65p1001; (调用宏程序)
n50 g01x52f0.2; (退刀)
n60 g40g00x100z100;
n70 m05;
n80 m30;
椭圆加工宏程序
o1001;
n10 g65 h01 p#100 q40000; (#100=40mm)
n20 g65 h01 p#101 q20000; (#101=20mm)
n30 g65 h01 p#102 q40000; (#102=40mm)(初始值)
n40 g65 h28 p#103 q#100 p#102;
n50 g65 h05 p#104 q#103 p#100; (#104=#103/#100)
n60 g65 h04 p#105 q2000 r#104; (#105=2×#104)
n65 g65 h03 p#106 q#102 r40;
n70 g01 x#105 z#102 f100;
n80 g65 h03 p#102 q#102 r500; (确定z向步长为0.5 mm。)
n90 g65 h85 p40 q#102 r0; (条件判断:当变量#102≧0时,转移到n40程序段,如果#102﹤0时,继续向下执行。)
n100 m99
2. 以fanuc-0i数控车系统为代表的b类宏程序应用,编写如(图1)所示椭圆a—b段的粗加工程序:
o2000;
n10 g97g99;
n20 m03s800t0101;
n30 g00x52z2; (快速定位刀具)
n40 #101=50 (确定x向粗加工余量50mm)
n50 while[#101ge0.5]do1; (建立条件式1,当粗加工余量大于0.5mm时,执行1号程序循环do1--end1之间的程序)
n60 #101=#101-2; (指定粗加工时的背吃刀量为2mm)
n70 #2=40; (确定z向坐标初始值)
n80 while[#2ge0]do2; (建立条件式2,当z向坐标在运动到终点坐标前,执行2号程序循环do2--end2之间的程序)
n90 #1=40*sqrt[1-#2*#2/1600];(根据椭圆标准方程公式转换)
n100 g01x[#1+#101]z[#2-40]f0.2;(采用g01拟合加工,进给率为0.2mm/r)
n110 #2=#2-1; (指定z向坐标的变化步距)
n120 end2; (条件式2程序结束)
n130 g00x100z100;
n140 m05;
n150 m30;
宏指令编程像高级语言一样,可以使用变量进行算术运算逻辑运算和函数混合运算进行编程。在宏程序形式中,一般都提供循环判断分支和子程序调用的方法。可编制各种复杂的零件加工程序。熟练应用宏程序指令进行编程,可大大精简程序量,还可以增强机床的加工适应能力。比如可以将抛物线、椭圆等非圆曲线的算法标准化后做成内部宏程序,以后就可以像圆弧插补一样按标准格式编程调用,相当于增加了系统的插补功能。所以宏程序的编程方法显得越来越重要。
参考文献:
[1] 数控编程与加工技术,黄登红.中南大学出版社;
[2] 数控编程,中国劳动社会保障出版社
[3] 数控车床加工椭圆方法的研究,陈松;
[4] 广数980td数控车床编程说明书;
[5]fanuc-0i数控车床编程说明书;