论文部分内容阅读
【摘要】用户宏程序的编程思想基础是“批处理”的概念,它的最大特点是:使用变量,可以对变量进行运算,使程序应用更加灵活方便。但在理解、使用和教学中也是一个难点。本文通过宏程序和普通程序语句的对比以及实例的剖析,达到灵活应用宏程序,拓展机床使用性能,解决生产中普通指令难以解决的零件加工问题。
【关键词】宏程序;变量;批处理;非圆曲线
1.概述
在数控机床编程指令系统中,有一类功能非常强大,同时理解、掌握起来也比较困难的高级程序指令——用户宏程序指令。区别于普通的NC程序语句,下面的程序段为宏程序语句:
(1)包含控制语句(例如,GOTO,DO,END)的程序段
(2)包含算术或逻辑运算(=)的程序段
(3)包含宏程序调用指令的程序段
用户宏程序指令,与普通程序指令既有区别又有联系。它是提高数控机床性能,拓展机床加工范围的一种特殊功能。使用中通常把能完成某一功能的一系列指令象子程序一样存入存储器中,然后用一个总指令代表他们,使用时只需给出这个总指令就可执行其功能。
用户宏程序的编程思想基础是“批处理”的概念,它的最大特点是:使用变量,可以对变量进行运算,使程序应用更加灵活方便。虽然子程序对编制相同加工操作的程序有用,但用户宏程序由于允许使用变量算术和逻辑运算以及条件转移,使得编制相同加工操作的程序更方便、更容易,可将相同加工操作编为通用程序(如固定加工循环用户宏程序),使用时用一条简单指令调出就可以了。
正是因为用户宏程序具有上述特点,使它在理解、使用和教学中成为一个难点。同样,如果牢牢把握住这些特点,使用起来却是得心应手,使编程变得更加简洁,节省编程及输入程序的时间,提高生产效率,也减少了程序所占用的内存空间。在教学中,通过用户宏程序和普通程序的对比讲解,可使用户宏程序的教学内容变得简单明了,通俗易懂。
2.用户宏程序的特点
下面以FANUC Series oi Mate-TC数控车床为例对用户宏程序的特点分别予以阐述。
2.1 变量与运算
普通加工程序直接用数值指定G代码和移动距离:例如,G01 X100.0。使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用MDI面板上的操作改变。
如: #1=30; //将30赋值给#1
#1=#1+10; //将#1+10的计算结果再赋值给#1
G01 X#1 F0.2 //直线插补至#1的数值(40)
2.2 批处理
图1 外圆加工
注:R为快速走刀 F为直线插补
普通程序所解决的是某一个特定的具体的零件;而用户宏程序所要解决的是同一类型的所有的零件,也就是所谓的要“成批”解决。例如:在车床上加工一刀外圆需要如图1所示四个步骤。
所对应的程序段为:
G00 X(U)- Z(W)- //B点坐标
G01 X(U)- Z(W)- //C点坐标
G01 X(U)- Z(W)- //D点坐标
G00 X(U)- Z(W)- //A点坐标
这样,每加工一刀外圆需要四条指令语句,若要多刀加工,程序既冗长,编程又麻烦。利用宏程序,则可以把上述四条语句写成如下的固定程序,以后在主程序中仅需给出C点的增量坐标,将他调出即可。程序如下:
O7000
G00U#21
G01W#23
G01U-#21
G00W-#23
M99
其实,FANUC系列指令中的G90指令所实现的就是上述功能。在SIEMENS802S/C系统指令中,螺纹切削循环指令LCYC97的进刀方式是直进刀方式,在加工大螺距螺纹时生产效率低,易产生振动,难以保证加工质量。利用用户宏程序,用户可开发出斜进刀方式的螺纹加工循环指令,有效解决上述问题,提高机床的性能。
2.3 控制指令:跳轉和循环
具有控制指令跳转与循环的程序语句是宏程序的一种。这也是掌握宏程序的难点所在。同样,正是因为宏程序具有了这种特殊功能,使得宏程序在解决许多普通程序语句不能解决的问题上具有明显的优势。
控制语句包括跳转和循环。
(1)条件转移
编程格式:IF [条件表达式] GOTO n
说明:
1)如果条件表达式的条件得以满足,则转而执行程序中程序号为n的相应操作,程序段号n可由变量或表达式替代;
2)如果表达式中条件未满足,则顺序执行下一段程序;
3)如果程序作无条件转移,则条件部分可以被省略。
(2)循环语句(WHILE DO-END语句)
编程格式:WHILE [条件表达式] Do m (m=1,2,3)
……
END m
说明:
1)条件表达式满足时,程序段DO m至END m即重复执行;
2)条件表达式不满足时,程序转到END m后执行;
3)如果WHILE [条件表达式]部分被省略,程序段DO m至END之间的部分将一直重复执行,进入死循环;
4)WHILE DO m和END m必须成对使用;
5)DO语句允许有三层嵌套;
6)DO语句不允许交叉。 3.用户宏程序编程实例
在被加工的零件中,有一类零件利用普通程序指令是难以完成的,那就是如椭圆、双曲线、抛物线等非圆曲线,利用用户宏程序就可以解决。
如图2所示,该零件为一椭圆球零件,以此为例,分析其加工工艺及所使用的宏程序。
图2 椭圆手柄(毛坯:45钢 Ф35长棒料)
工艺分析:由于该零件所用毛坯为棒料,各部分余量不均匀,并且零件上带有内凹的部分(椭圆的左半部分和槽),所以为提高机床利用率,提高生产效率,对该零件的粗加工应分为两部分进行:以椭圆的竖中线为分界线,分为左右两部分分别加工。为避免加工出的零件上带有接刀的刀痕,精加工应一刀切削连续完成。现分述如下:
(1)椭圆右半部分粗加工
1)进刀方式:轴向进刀法
2)刀具:90度外圆车刀
3)设计走刀轨迹:如图3所示
图3 椭圆右半部分粗加工刀具轨迹
4)程序
N ……
G00 X35 Z1;
#1=30; //定义变量#1为X,直径值
#2=0; //定义变量#2为Z,
WHILE [#1 GE 0] DO 1; //宏程序粗加工椭圆右端
G00 X [#1]; //X向定位
G01 Z[#2-20] G99 F0.2; //Z 向进刀切台阶
G01 U1 W1; //退刀
G00 Z1; //Z向快速退刀
#1= #1-3; //背吃刀量
#2=20/30*SQRT[30*30-#1*#1]+0.3; //Z向精加工余量0.3毫米
END 1; //循环结束
N ……
(2)椭圆左半部分粗加工
1)進刀方式:径向进刀法
2)刀具:切断刀,刀宽3.2毫米(右刀尖补偿)
3)设计走刀轨迹:如图4所示
图4 椭圆左半部分粗加工刀具轨迹
4)程序
N ……
G00 X35 Z-36.918;
#1=16; //定义变量#1为X,直径值
#2=-16.918; //定义变量#2为Z,
WHILE [#2 LE 0] DO 1; //宏程序粗加工椭圆右端
G00 Z[#2-20] ; //Z向定位
G01 X[#1] G99 F0.2; //X向进刀切台阶
G01 U1 W-1; //退刀
G00 X36; //X向快速退刀
#2=#2+3; //背吃刀量
#1=30/20*SQRT[20*20-#2*#2]+0.3; //X向精加工余量0.3毫米
END 1; //循环结束
N ……
(3)椭圆部分精加工
1)进刀方式
在数控机床上,对非圆曲线的编程加工采用的是直线逼近的方式,可根据零件的精度和表面粗糙度的要求,选择合理的步距。本例选择的步距为0.1毫米。
2)刀具
35度外圆尖刀,刀尖圆弧半径0.5毫米。
3)程序
N ……
G00 X0 Z1;
G01 Z0
#1=0; //定义变量#1为X,直径值
#2=20; //定义变量#2为Z,
WHILE [#2 GE -16.918] DO 1; //宏程序精加工椭圆
G01 X[#1] Z[#2-20] G99 F0.1;
#2=#2-0.1;; //Z向步距为0.1毫米
#1=30/20*SQRT[20*20-#2*#2];
END 1; //循环结束
N ……
4.其他非圆曲线、椭圆的加工
对于其他类型的非圆曲线如双曲线、抛物线等的加工,可以按照上面椭圆加工的例子进行加工,所不同的仅仅是把数值和曲线的方程式改变即可。
在上例中,如果把具体的数值用变量替代,如椭圆的长、短轴等,将宏程序段写成一个类似子程序的程序,就可以解决所有椭圆加工的问题。
需要注意的是,利用宏程序编程时,变量的选取非常重要,宏程序加工起点的位置与变量的方向和数值紧密相关。
总之,宏程序指令适合椭圆、双曲线、抛物线等没有插补指令的非圆曲线的编程;适合图形一样,尺寸不同的系列零件的编程;适合工艺路径一样,只是位置数据不同的系列零件的编程。运用宏程序指令,可大大简化程序,提高手工编程的效率;拓展数控车床手工编程应用范围,提高机床的使用性能。
在使用宏程序是,注意把握宏程序和普通程序语句的异同。在生产中,妙用用户宏程序,可提高我们的生产效率,加工出普通机床、普通指令难以加工出的零件;在教学中,妙用用户宏程序,可增强学生的能力,加深数控教学内容的深度,取得更佳的教学效果。
参考文献
[1]谢晓红.数控车削编程与加工技术[M].北京:电子工业出版社,2005(7).
【关键词】宏程序;变量;批处理;非圆曲线
1.概述
在数控机床编程指令系统中,有一类功能非常强大,同时理解、掌握起来也比较困难的高级程序指令——用户宏程序指令。区别于普通的NC程序语句,下面的程序段为宏程序语句:
(1)包含控制语句(例如,GOTO,DO,END)的程序段
(2)包含算术或逻辑运算(=)的程序段
(3)包含宏程序调用指令的程序段
用户宏程序指令,与普通程序指令既有区别又有联系。它是提高数控机床性能,拓展机床加工范围的一种特殊功能。使用中通常把能完成某一功能的一系列指令象子程序一样存入存储器中,然后用一个总指令代表他们,使用时只需给出这个总指令就可执行其功能。
用户宏程序的编程思想基础是“批处理”的概念,它的最大特点是:使用变量,可以对变量进行运算,使程序应用更加灵活方便。虽然子程序对编制相同加工操作的程序有用,但用户宏程序由于允许使用变量算术和逻辑运算以及条件转移,使得编制相同加工操作的程序更方便、更容易,可将相同加工操作编为通用程序(如固定加工循环用户宏程序),使用时用一条简单指令调出就可以了。
正是因为用户宏程序具有上述特点,使它在理解、使用和教学中成为一个难点。同样,如果牢牢把握住这些特点,使用起来却是得心应手,使编程变得更加简洁,节省编程及输入程序的时间,提高生产效率,也减少了程序所占用的内存空间。在教学中,通过用户宏程序和普通程序的对比讲解,可使用户宏程序的教学内容变得简单明了,通俗易懂。
2.用户宏程序的特点
下面以FANUC Series oi Mate-TC数控车床为例对用户宏程序的特点分别予以阐述。
2.1 变量与运算
普通加工程序直接用数值指定G代码和移动距离:例如,G01 X100.0。使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用MDI面板上的操作改变。
如: #1=30; //将30赋值给#1
#1=#1+10; //将#1+10的计算结果再赋值给#1
G01 X#1 F0.2 //直线插补至#1的数值(40)
2.2 批处理
图1 外圆加工
注:R为快速走刀 F为直线插补
普通程序所解决的是某一个特定的具体的零件;而用户宏程序所要解决的是同一类型的所有的零件,也就是所谓的要“成批”解决。例如:在车床上加工一刀外圆需要如图1所示四个步骤。
所对应的程序段为:
G00 X(U)- Z(W)- //B点坐标
G01 X(U)- Z(W)- //C点坐标
G01 X(U)- Z(W)- //D点坐标
G00 X(U)- Z(W)- //A点坐标
这样,每加工一刀外圆需要四条指令语句,若要多刀加工,程序既冗长,编程又麻烦。利用宏程序,则可以把上述四条语句写成如下的固定程序,以后在主程序中仅需给出C点的增量坐标,将他调出即可。程序如下:
O7000
G00U#21
G01W#23
G01U-#21
G00W-#23
M99
其实,FANUC系列指令中的G90指令所实现的就是上述功能。在SIEMENS802S/C系统指令中,螺纹切削循环指令LCYC97的进刀方式是直进刀方式,在加工大螺距螺纹时生产效率低,易产生振动,难以保证加工质量。利用用户宏程序,用户可开发出斜进刀方式的螺纹加工循环指令,有效解决上述问题,提高机床的性能。
2.3 控制指令:跳轉和循环
具有控制指令跳转与循环的程序语句是宏程序的一种。这也是掌握宏程序的难点所在。同样,正是因为宏程序具有了这种特殊功能,使得宏程序在解决许多普通程序语句不能解决的问题上具有明显的优势。
控制语句包括跳转和循环。
(1)条件转移
编程格式:IF [条件表达式] GOTO n
说明:
1)如果条件表达式的条件得以满足,则转而执行程序中程序号为n的相应操作,程序段号n可由变量或表达式替代;
2)如果表达式中条件未满足,则顺序执行下一段程序;
3)如果程序作无条件转移,则条件部分可以被省略。
(2)循环语句(WHILE DO-END语句)
编程格式:WHILE [条件表达式] Do m (m=1,2,3)
……
END m
说明:
1)条件表达式满足时,程序段DO m至END m即重复执行;
2)条件表达式不满足时,程序转到END m后执行;
3)如果WHILE [条件表达式]部分被省略,程序段DO m至END之间的部分将一直重复执行,进入死循环;
4)WHILE DO m和END m必须成对使用;
5)DO语句允许有三层嵌套;
6)DO语句不允许交叉。 3.用户宏程序编程实例
在被加工的零件中,有一类零件利用普通程序指令是难以完成的,那就是如椭圆、双曲线、抛物线等非圆曲线,利用用户宏程序就可以解决。
如图2所示,该零件为一椭圆球零件,以此为例,分析其加工工艺及所使用的宏程序。
图2 椭圆手柄(毛坯:45钢 Ф35长棒料)
工艺分析:由于该零件所用毛坯为棒料,各部分余量不均匀,并且零件上带有内凹的部分(椭圆的左半部分和槽),所以为提高机床利用率,提高生产效率,对该零件的粗加工应分为两部分进行:以椭圆的竖中线为分界线,分为左右两部分分别加工。为避免加工出的零件上带有接刀的刀痕,精加工应一刀切削连续完成。现分述如下:
(1)椭圆右半部分粗加工
1)进刀方式:轴向进刀法
2)刀具:90度外圆车刀
3)设计走刀轨迹:如图3所示
图3 椭圆右半部分粗加工刀具轨迹
4)程序
N ……
G00 X35 Z1;
#1=30; //定义变量#1为X,直径值
#2=0; //定义变量#2为Z,
WHILE [#1 GE 0] DO 1; //宏程序粗加工椭圆右端
G00 X [#1]; //X向定位
G01 Z[#2-20] G99 F0.2; //Z 向进刀切台阶
G01 U1 W1; //退刀
G00 Z1; //Z向快速退刀
#1= #1-3; //背吃刀量
#2=20/30*SQRT[30*30-#1*#1]+0.3; //Z向精加工余量0.3毫米
END 1; //循环结束
N ……
(2)椭圆左半部分粗加工
1)進刀方式:径向进刀法
2)刀具:切断刀,刀宽3.2毫米(右刀尖补偿)
3)设计走刀轨迹:如图4所示
图4 椭圆左半部分粗加工刀具轨迹
4)程序
N ……
G00 X35 Z-36.918;
#1=16; //定义变量#1为X,直径值
#2=-16.918; //定义变量#2为Z,
WHILE [#2 LE 0] DO 1; //宏程序粗加工椭圆右端
G00 Z[#2-20] ; //Z向定位
G01 X[#1] G99 F0.2; //X向进刀切台阶
G01 U1 W-1; //退刀
G00 X36; //X向快速退刀
#2=#2+3; //背吃刀量
#1=30/20*SQRT[20*20-#2*#2]+0.3; //X向精加工余量0.3毫米
END 1; //循环结束
N ……
(3)椭圆部分精加工
1)进刀方式
在数控机床上,对非圆曲线的编程加工采用的是直线逼近的方式,可根据零件的精度和表面粗糙度的要求,选择合理的步距。本例选择的步距为0.1毫米。
2)刀具
35度外圆尖刀,刀尖圆弧半径0.5毫米。
3)程序
N ……
G00 X0 Z1;
G01 Z0
#1=0; //定义变量#1为X,直径值
#2=20; //定义变量#2为Z,
WHILE [#2 GE -16.918] DO 1; //宏程序精加工椭圆
G01 X[#1] Z[#2-20] G99 F0.1;
#2=#2-0.1;; //Z向步距为0.1毫米
#1=30/20*SQRT[20*20-#2*#2];
END 1; //循环结束
N ……
4.其他非圆曲线、椭圆的加工
对于其他类型的非圆曲线如双曲线、抛物线等的加工,可以按照上面椭圆加工的例子进行加工,所不同的仅仅是把数值和曲线的方程式改变即可。
在上例中,如果把具体的数值用变量替代,如椭圆的长、短轴等,将宏程序段写成一个类似子程序的程序,就可以解决所有椭圆加工的问题。
需要注意的是,利用宏程序编程时,变量的选取非常重要,宏程序加工起点的位置与变量的方向和数值紧密相关。
总之,宏程序指令适合椭圆、双曲线、抛物线等没有插补指令的非圆曲线的编程;适合图形一样,尺寸不同的系列零件的编程;适合工艺路径一样,只是位置数据不同的系列零件的编程。运用宏程序指令,可大大简化程序,提高手工编程的效率;拓展数控车床手工编程应用范围,提高机床的使用性能。
在使用宏程序是,注意把握宏程序和普通程序语句的异同。在生产中,妙用用户宏程序,可提高我们的生产效率,加工出普通机床、普通指令难以加工出的零件;在教学中,妙用用户宏程序,可增强学生的能力,加深数控教学内容的深度,取得更佳的教学效果。
参考文献
[1]谢晓红.数控车削编程与加工技术[M].北京:电子工业出版社,2005(7).