论文部分内容阅读
摘要:在飞控系统各类阀套、阀芯等零件中,外圆、内孔的环槽型面占了零件特征很大一部分,在数控加工编程过程中,若全部用G代码或子程序来编写,不仅复杂、繁琐,而且检查校对费时,容易出错,更有复杂的环槽用子程序无法实现,所以开发实用性好、高效率的宏程序非常有意义,为此,本文总结了数控车削中轴类回转体零件各类环槽加工的宏程序编写方法和技巧。
关键词:环槽 宏程序 分层切削 结构 循环
中图分类号: 文献标识码:A 文章编号:1674-098X(2015)07(c)-0000-00
宏程序是在常规手工编程方式上附加的、更为高效的、更为通用的编程方式,它大量使用了各种变量、运算指令和控制指令,提供循环、判断、分支等的调用,从而大大精简了程序编制的容量。在数控车削加工中通过编辑宏程序能够完成常规的数控编程指令不能完成的特殊型面,如当加工的型面母线是椭圆、抛物线等时。另外当加工零件图形相似,尺寸不同或者工艺路径一样,位置不同的系列零件时,通过调用一个宏程序,反复执行某几句代码来达到减少编写代码的目的,从而极大地简化编程,使得程序逻辑严密,方便检查,不易出错。
1.典型环槽编程方法与技巧
1.1 多窄槽车削宏程序编程方法
窄槽车削,选择主切削刃宽度等于槽宽的切槽刀具,纵向走刀一次将槽切出。多窄槽车削时,从零件右侧切入─退出─Z方向左移一个槽间距…切入─退出…,如此反复完成多窄槽的加工
图 1. 多窄槽零件二维、三维图及主要尺寸
(1)参数化编程
参数化编程,也就是宏程序设计,即用参数语句编写程序,只要改变参数的值就可以加工不同尺寸的零件 。宏程序调用语法是:G65 P<程序号> L<重复次数><参数1>…<参数n>,程序号是已经存在的要被调用的程序号;重复次数是被调用程序连续执行的次数,默认为1;参数用于给宏程序中的变量传递指定的初始值。
在宏程序中对于零件的坐标值、切削用量等用宏变量来表示,宏变量是一个数学量,它能假设在其允许范围内的任何值,变量符号是#,后面紧跟着一个在允许范围内(这取决于控制系统版本)的数字(叫做变量号)。在多窄槽加工程序中设置两个关键变量分别表示环槽个数和第一个环槽轴向坐标值,通过该变量的累加和运算来控制切槽的数量和每一个环槽的轴向坐标。
(2)单个循环结构
循环,就是只要满足指定的条件,程序中的某些语句可以被反复执行。FANUC 系统宏循环采用的是while条件判断语句,while语句的格式为:
while[条件表达式] DO m;(m=1,2,3)
…<循环内程序段>
END m;
当条件表达式成立时,执行DO到END之间的语句,否则执行END后面的语句。
加工多个窄槽时,只需在宏程序里编制一个条件判断语句while即可,其宏程序流程如图2所示。
图2 多窄槽加工宏程序框图
1.2 宽环槽车削宏程序设计
1.2.1 单个深、宽环槽程序设计
在切削深、宽环槽时,不仅需要在Z方向上分次切削,另外X方向槽较深,考虑排屑困难及刀具强度等因素,必须实行分层多次切削,即:采用从凹槽右侧切入─退出─Z方向左移─切入… X方向向下移动切入─退出─Z方向左移动…,如此反复完成槽的加工。
图 3单个深、宽环槽零件二维、三维图及主要尺寸
(1)循环嵌套结构实现径向和轴向分层切削
一个循环结构内含有另一个循环,称为循环嵌套结构,又称多重循环。单一的循环语句用于当满足指定的条件,完成一些同样的操作,另一方面,在条件循环中,如果每个操作包含另外一套相同的操作就可以使用循环嵌套。在此深、宽环槽加工编程时,采用循环嵌套结构,由两个while statement语句组成,外层循环用来控制X向切深,内层循环用来控制Z向切宽,这种方法极大地化简了编程,精简了程序,并且逻辑非常严密,易读易改。
(2)针对不同刀宽的防错程序设置
在加工宽槽时,槽的宽度是切槽刀具的n倍,一般轴向至少要分n次切削,,但当n为非整数时,为了不将宽槽多切或少切需在程序中进行特殊的设置,例如,将WHILE语句中条件表达式设为: [#1 LT #2] ,条件表达式中#1为宽槽起点坐标,#2为宽槽终点坐标,中间的符号要用LT(小于),当每次循环执行完毕后再在#2处(槽的终点坐标处)切削一次。
(3) 倒角、倒圆、去毛刺
当环槽有倒角、倒圆或者去毛刺要求时,可在程序中设置宏变量,利用切刀单侧切削刃加工完成。
车削单个深、宽环槽的加工流程如图4所示。
图4 单个深、宽环槽的宏程序框图
1.2.2等距多宽槽程序设计
此类环槽槽较宽,且个数较多,需要在在Z方向上分次切削切完一个槽之后刀具轴向移动一个槽距再加工第二个宽槽,如此反复直到加工完全部槽。即:采用从凹槽右侧切入─退出─Z方向左移─切入─退出─平槽底…轴向移动一个槽距… 切入─退出─Z方向左移─切入─退出─平槽底…,如此反复完成槽的加工。
图 5 等距多宽槽零件二维、三维图及主要尺寸
(1)循环+分支结构
面对该类零件,最简洁的方法是采用一个WHILE循环语句+IF语句的结构来完成,比如循环语句控制槽宽,IF语句控制切槽的数量,主程序只需调用一次宏程序就能完成全部环槽加工。
(2 )算术运算指令自动计算各槽坐标点
宏程序中可以将变量进行算术运算,然后赋给该变量本身或者另一个变量。在等距多宽槽切削时,可以将宽槽的起始点设置成两个变量,这两个变量自身进行相应的算术运算,得出每个环槽的起始坐标,这样加工者不用去计算每个宽槽的起始点坐标。 (3)粗、精车保证槽底光洁度
在加工宽槽时,在分几次横向切完宽槽后,纵向走刀平槽底,保证槽底的光洁度要求。该程序中,我们可以将横向切削尺寸编写为小于实际尺寸0.02,在循环体外编写一个平槽底程序,这样每当执行完一次循环加工完一个宽槽后就会紧跟着精车槽底。
(4)尖边倒角、倒圆、去毛刺及防错设计
零件的尖边倒角、倒圆、去毛刺及防错设计与单个深、宽环槽程序设计相同。
等距多宽槽宏程序流程如图6所示。
图6 等距多宽槽的宏程序框图
1.3 非等距宽槽宏程序加工技巧
在许多零件中多宽环槽并非全部等距,而是呈等差递增(即槽宽一致,槽间距呈等差递增)如图7(a);多个阶梯等距递增(槽宽一致,槽间距相等,多个环槽槽径呈等差递增)如图7(b);或者多个阶梯等差递增(槽宽一致,槽间距与槽径均呈等差递增)如图7(c)等各种形式,
在编制以上这几类宏程序时,其编程思路与刀具路径规划与等距环槽相似,在编制等差递增宽槽宏程序时时增加一个变量,使环槽起点与终点Z向坐标值等差递增;编制多个阶梯递增宽槽宏程序时设置槽径自身累加,实现槽径等差递增;在编制多个阶梯等差递增槽宽宏程序时将以上二者相结合。通过宏变量的灵活运用来实现不同类型的多环槽加工,这是一般的程序和子程序不能实现的。
a)等差递增宽环槽 b)阶梯等距递增宽环槽 c) 阶梯等差递增宽环槽
图7非等距宽槽典型零件
2.等距宽环槽宏程序编程应用举例
以图5所示零件介绍如何编制多个等距宽环槽宏程序,零件材料为不锈钢。在切削这类形状相似、尺寸不同的环槽零件时,为提高宏程序的通用性,我们需将程序中尺寸坐标值、切削用量、倒角等全部用宏变量来代替,只需在主程序中通过参数给相应的变量指定初始值即可。其具体程序如下所示:
O0004 (主程序号)
M98 P1;
G97 S800 M13;
T15;
X12.;
Z2.;
G65 P0005 V5. A10. B17. Y11.H10.D8.Z2.; (调用0005号宏程序,并给
相应字母赋值,V 为环槽的个数,A为第一个环槽的起点Z向坐标, B为第一个环槽的终点
Z向坐标,Y 为俩个槽起点之间的轴向距,H为外圆直径,D为槽径)
M98 P1;
M30;
O0005; (宏程序号)
#18=0; (设置#18变量的初始值)
#4=0; (切槽的初始次数)
#5=#1; (#1变量的初始值赋给中间变量#5)
#6=#2; (#2变量的初始值赋给中间变量#6)
N1 #1=#1+#25*#18; (计算环槽起点Z向坐标值)
#2=#2+#25*#18; (计算环槽终点Z向坐标值)
#1=#1+#26; (Z向起点坐标增加一个刀宽)
#10=#1; (#1变量的值赋给#10)
WHILE[#1 LT #2] DO2; (如果#1 小于#2,则在WHILE[#1 LT #2] DO2
和 END2之间循环,否则调出循环)
G0 Z-#1; (快速到达切槽的起点轴向位置)
G1 G99 X#7 F.03; (X向切槽)
G00 X[#11+1]; (退刀)
#1=#1+#26; (每次移过一个刀宽)
END2;
G00 Z-#2; (为避免每个宽槽过切或少切在宽槽终点处单独切削一次,为 防止重复切削在上面的条件表达式中符号设为LT)
G1 G99 #7 F.03 ;
X#11 ;
G00 Z-#10;
G1 G99 #7 F.03;
Z-#2; (精加工槽底)
X#11;
#18=#18+1; (#18变量累加1)
#4=#4+1; (切槽的次数累加)
#1=#5; (中间变量#5的值重新赋给#1变量)
#2=#6; (中间变量#6的值重新赋给#2变量)
IF [#4 LT #22] GOTO1; (条件判断,如果#4 小于#22,则跳转到N1)
M99;
程序中字母地址和变量之间的对应关系如表1所示:
表1 字母地址与变量关系对应表
地址 变量号 地址 变量号 地址 变量号
A #1 B #2 C #3
D #7 E #8 F #9
H #11 I #4 J #5
K #6 M #13 R #18
V #22 Y #25 X #24
W #23 Z #26
3.结语
本文从多种结构并存,运用循环、循环嵌套及条件语句等进行分层多次切削,使用变量的运算及通过变量的灵活应用等总结了轴类零件多窄槽、单个深宽槽、等距多宽槽、各种非等距多宽槽的宏程序的编写方法和技巧。并举例说明了宏程序的编程步骤,该方法大大精简了程序的篇幅,使得程序短小精湛,逻辑严密。主程序只需调用一次宏程序即可完成全部加工内容。编程中的一些防错设置、粗精加工等确保了刀具的安全性和零件的精度,参数的变量化使得程序具有了通用性,充分发挥了宏程序在环槽车削中的优越性,同时为其他相似型面宏程序设计提供参考和借鉴。
参考文献
[1] 沈春根,徐晓翔,刘义.数控车宏程序编程实例精讲.机械工业出版社,2011.12.
[2]S.K.Sinha. 数控宏程序编程技术.科学出版社,2011.
[3] 吴长有.数控车床加工技术.机械工业出版社,2010.4
关键词:环槽 宏程序 分层切削 结构 循环
中图分类号: 文献标识码:A 文章编号:1674-098X(2015)07(c)-0000-00
宏程序是在常规手工编程方式上附加的、更为高效的、更为通用的编程方式,它大量使用了各种变量、运算指令和控制指令,提供循环、判断、分支等的调用,从而大大精简了程序编制的容量。在数控车削加工中通过编辑宏程序能够完成常规的数控编程指令不能完成的特殊型面,如当加工的型面母线是椭圆、抛物线等时。另外当加工零件图形相似,尺寸不同或者工艺路径一样,位置不同的系列零件时,通过调用一个宏程序,反复执行某几句代码来达到减少编写代码的目的,从而极大地简化编程,使得程序逻辑严密,方便检查,不易出错。
1.典型环槽编程方法与技巧
1.1 多窄槽车削宏程序编程方法
窄槽车削,选择主切削刃宽度等于槽宽的切槽刀具,纵向走刀一次将槽切出。多窄槽车削时,从零件右侧切入─退出─Z方向左移一个槽间距…切入─退出…,如此反复完成多窄槽的加工
图 1. 多窄槽零件二维、三维图及主要尺寸
(1)参数化编程
参数化编程,也就是宏程序设计,即用参数语句编写程序,只要改变参数的值就可以加工不同尺寸的零件 。宏程序调用语法是:G65 P<程序号> L<重复次数><参数1>…<参数n>,程序号是已经存在的要被调用的程序号;重复次数是被调用程序连续执行的次数,默认为1;参数用于给宏程序中的变量传递指定的初始值。
在宏程序中对于零件的坐标值、切削用量等用宏变量来表示,宏变量是一个数学量,它能假设在其允许范围内的任何值,变量符号是#,后面紧跟着一个在允许范围内(这取决于控制系统版本)的数字(叫做变量号)。在多窄槽加工程序中设置两个关键变量分别表示环槽个数和第一个环槽轴向坐标值,通过该变量的累加和运算来控制切槽的数量和每一个环槽的轴向坐标。
(2)单个循环结构
循环,就是只要满足指定的条件,程序中的某些语句可以被反复执行。FANUC 系统宏循环采用的是while条件判断语句,while语句的格式为:
while[条件表达式] DO m;(m=1,2,3)
…<循环内程序段>
END m;
当条件表达式成立时,执行DO到END之间的语句,否则执行END后面的语句。
加工多个窄槽时,只需在宏程序里编制一个条件判断语句while即可,其宏程序流程如图2所示。
图2 多窄槽加工宏程序框图
1.2 宽环槽车削宏程序设计
1.2.1 单个深、宽环槽程序设计
在切削深、宽环槽时,不仅需要在Z方向上分次切削,另外X方向槽较深,考虑排屑困难及刀具强度等因素,必须实行分层多次切削,即:采用从凹槽右侧切入─退出─Z方向左移─切入… X方向向下移动切入─退出─Z方向左移动…,如此反复完成槽的加工。
图 3单个深、宽环槽零件二维、三维图及主要尺寸
(1)循环嵌套结构实现径向和轴向分层切削
一个循环结构内含有另一个循环,称为循环嵌套结构,又称多重循环。单一的循环语句用于当满足指定的条件,完成一些同样的操作,另一方面,在条件循环中,如果每个操作包含另外一套相同的操作就可以使用循环嵌套。在此深、宽环槽加工编程时,采用循环嵌套结构,由两个while statement语句组成,外层循环用来控制X向切深,内层循环用来控制Z向切宽,这种方法极大地化简了编程,精简了程序,并且逻辑非常严密,易读易改。
(2)针对不同刀宽的防错程序设置
在加工宽槽时,槽的宽度是切槽刀具的n倍,一般轴向至少要分n次切削,,但当n为非整数时,为了不将宽槽多切或少切需在程序中进行特殊的设置,例如,将WHILE语句中条件表达式设为: [#1 LT #2] ,条件表达式中#1为宽槽起点坐标,#2为宽槽终点坐标,中间的符号要用LT(小于),当每次循环执行完毕后再在#2处(槽的终点坐标处)切削一次。
(3) 倒角、倒圆、去毛刺
当环槽有倒角、倒圆或者去毛刺要求时,可在程序中设置宏变量,利用切刀单侧切削刃加工完成。
车削单个深、宽环槽的加工流程如图4所示。
图4 单个深、宽环槽的宏程序框图
1.2.2等距多宽槽程序设计
此类环槽槽较宽,且个数较多,需要在在Z方向上分次切削切完一个槽之后刀具轴向移动一个槽距再加工第二个宽槽,如此反复直到加工完全部槽。即:采用从凹槽右侧切入─退出─Z方向左移─切入─退出─平槽底…轴向移动一个槽距… 切入─退出─Z方向左移─切入─退出─平槽底…,如此反复完成槽的加工。
图 5 等距多宽槽零件二维、三维图及主要尺寸
(1)循环+分支结构
面对该类零件,最简洁的方法是采用一个WHILE循环语句+IF语句的结构来完成,比如循环语句控制槽宽,IF语句控制切槽的数量,主程序只需调用一次宏程序就能完成全部环槽加工。
(2 )算术运算指令自动计算各槽坐标点
宏程序中可以将变量进行算术运算,然后赋给该变量本身或者另一个变量。在等距多宽槽切削时,可以将宽槽的起始点设置成两个变量,这两个变量自身进行相应的算术运算,得出每个环槽的起始坐标,这样加工者不用去计算每个宽槽的起始点坐标。 (3)粗、精车保证槽底光洁度
在加工宽槽时,在分几次横向切完宽槽后,纵向走刀平槽底,保证槽底的光洁度要求。该程序中,我们可以将横向切削尺寸编写为小于实际尺寸0.02,在循环体外编写一个平槽底程序,这样每当执行完一次循环加工完一个宽槽后就会紧跟着精车槽底。
(4)尖边倒角、倒圆、去毛刺及防错设计
零件的尖边倒角、倒圆、去毛刺及防错设计与单个深、宽环槽程序设计相同。
等距多宽槽宏程序流程如图6所示。
图6 等距多宽槽的宏程序框图
1.3 非等距宽槽宏程序加工技巧
在许多零件中多宽环槽并非全部等距,而是呈等差递增(即槽宽一致,槽间距呈等差递增)如图7(a);多个阶梯等距递增(槽宽一致,槽间距相等,多个环槽槽径呈等差递增)如图7(b);或者多个阶梯等差递增(槽宽一致,槽间距与槽径均呈等差递增)如图7(c)等各种形式,
在编制以上这几类宏程序时,其编程思路与刀具路径规划与等距环槽相似,在编制等差递增宽槽宏程序时时增加一个变量,使环槽起点与终点Z向坐标值等差递增;编制多个阶梯递增宽槽宏程序时设置槽径自身累加,实现槽径等差递增;在编制多个阶梯等差递增槽宽宏程序时将以上二者相结合。通过宏变量的灵活运用来实现不同类型的多环槽加工,这是一般的程序和子程序不能实现的。
a)等差递增宽环槽 b)阶梯等距递增宽环槽 c) 阶梯等差递增宽环槽
图7非等距宽槽典型零件
2.等距宽环槽宏程序编程应用举例
以图5所示零件介绍如何编制多个等距宽环槽宏程序,零件材料为不锈钢。在切削这类形状相似、尺寸不同的环槽零件时,为提高宏程序的通用性,我们需将程序中尺寸坐标值、切削用量、倒角等全部用宏变量来代替,只需在主程序中通过参数给相应的变量指定初始值即可。其具体程序如下所示:
O0004 (主程序号)
M98 P1;
G97 S800 M13;
T15;
X12.;
Z2.;
G65 P0005 V5. A10. B17. Y11.H10.D8.Z2.; (调用0005号宏程序,并给
相应字母赋值,V 为环槽的个数,A为第一个环槽的起点Z向坐标, B为第一个环槽的终点
Z向坐标,Y 为俩个槽起点之间的轴向距,H为外圆直径,D为槽径)
M98 P1;
M30;
O0005; (宏程序号)
#18=0; (设置#18变量的初始值)
#4=0; (切槽的初始次数)
#5=#1; (#1变量的初始值赋给中间变量#5)
#6=#2; (#2变量的初始值赋给中间变量#6)
N1 #1=#1+#25*#18; (计算环槽起点Z向坐标值)
#2=#2+#25*#18; (计算环槽终点Z向坐标值)
#1=#1+#26; (Z向起点坐标增加一个刀宽)
#10=#1; (#1变量的值赋给#10)
WHILE[#1 LT #2] DO2; (如果#1 小于#2,则在WHILE[#1 LT #2] DO2
和 END2之间循环,否则调出循环)
G0 Z-#1; (快速到达切槽的起点轴向位置)
G1 G99 X#7 F.03; (X向切槽)
G00 X[#11+1]; (退刀)
#1=#1+#26; (每次移过一个刀宽)
END2;
G00 Z-#2; (为避免每个宽槽过切或少切在宽槽终点处单独切削一次,为 防止重复切削在上面的条件表达式中符号设为LT)
G1 G99 #7 F.03 ;
X#11 ;
G00 Z-#10;
G1 G99 #7 F.03;
Z-#2; (精加工槽底)
X#11;
#18=#18+1; (#18变量累加1)
#4=#4+1; (切槽的次数累加)
#1=#5; (中间变量#5的值重新赋给#1变量)
#2=#6; (中间变量#6的值重新赋给#2变量)
IF [#4 LT #22] GOTO1; (条件判断,如果#4 小于#22,则跳转到N1)
M99;
程序中字母地址和变量之间的对应关系如表1所示:
表1 字母地址与变量关系对应表
地址 变量号 地址 变量号 地址 变量号
A #1 B #2 C #3
D #7 E #8 F #9
H #11 I #4 J #5
K #6 M #13 R #18
V #22 Y #25 X #24
W #23 Z #26
3.结语
本文从多种结构并存,运用循环、循环嵌套及条件语句等进行分层多次切削,使用变量的运算及通过变量的灵活应用等总结了轴类零件多窄槽、单个深宽槽、等距多宽槽、各种非等距多宽槽的宏程序的编写方法和技巧。并举例说明了宏程序的编程步骤,该方法大大精简了程序的篇幅,使得程序短小精湛,逻辑严密。主程序只需调用一次宏程序即可完成全部加工内容。编程中的一些防错设置、粗精加工等确保了刀具的安全性和零件的精度,参数的变量化使得程序具有了通用性,充分发挥了宏程序在环槽车削中的优越性,同时为其他相似型面宏程序设计提供参考和借鉴。
参考文献
[1] 沈春根,徐晓翔,刘义.数控车宏程序编程实例精讲.机械工业出版社,2011.12.
[2]S.K.Sinha. 数控宏程序编程技术.科学出版社,2011.
[3] 吴长有.数控车床加工技术.机械工业出版社,2010.4