论文部分内容阅读
【摘 要】随着制造工业的发展,数控技术的应用也越来越广泛,更多公司开始开发高效的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数控车床编程说明书;
【关键词】数控技术;宏程序;宏指令;椭圆
文章编号: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数控车床编程说明书;