冯大鹏
(佛山科学技术学院,广东佛山528000)
宏程序在复杂轴类零件加工中的应用越来越广泛。宏程序具有灵活、通用和智能的特点。宏程序编写体现出设计人员工艺设计水平和编程能力,要求设计者不但要具备基本机械工艺数控编程知识,还要有深厚的数学建模和计算机语言知识,这无疑增加宏程序编写难度。而在数控编程加工领域,具有上述综合知识和能力的一线工程技术人员并不多。为此,可以借助一定的方法来提高技术人员的宏程序编程设计能力,程序流程图就是其中的方法之一。无论采用哪一种数控系统软件,不论是富有经验的设计人员还是刚刚涉及宏程序的新手,都可以采用程序流程图作为设计和检查宏程序的依据。对于复杂零件的编程,流程图的指导作用更是必不可少。如果能对流程图的设计及其对宏指令编程的指导作用分析透切,将使设计者少走弯路,有助于编程人员顺利编出准确合理的宏程序。
流程图是程序设计者对解决零件加工工艺问题的方法、思路或算法的一种描述,和一般的程序流程图相比,数控加工流程图具有一般流程图的基本结构:顺序、选择、循环。其中,循环结构是较为复杂的一种结构,数控加工所有的程序都离不开循环。由于数控加工的特点,加工循环又呈现出多样性和复杂性。因此,在研究宏程序流程图设计方法时,可从分析循环结构入手,探讨数控加工流程图的构成及变化规律。
数控加工流程图设计的基本方法是根据加工工艺路线,提取出变量,根据变量变化规律,建立循环体并确定循环流出条件。
数控加工循环有单循环和多重嵌套循环模式。
不同的数控系统所定义的变量含义较广,从程序设计角度来看,变量不过是程序中数据的临时存放场所,是可以改变的数,需要通过赋值或代入方法来确定。在设计流程图时,变量的选择取决于加工工艺的需要,这就需要将零件加工路线列出来,分清楚哪些是程序编制过程中的变量,哪些是常量。一般来说,变量主要有以下几类:切削余量变量,一般以单向递减的形式出现,如果是复合循环指令内含宏程序,变量就会以指令所指定的切深递减的形式表现出来;数学函数上的自变量,也是以递减或递增的形式出现的。有一些变量并不以增量形式变化,仅用于传递参数,如当宏表达式复杂时,出现用于过渡的中间变量。另外一些变量是用于控制加工精度、调整工艺参数,如步距变量、切削速度、切深变量,这些变量的形成与加工工艺有密切关联。
单循环由以下要素构成:初始化;增量;条件表达式。初始化就是对循环控制变量赋初值;增量就是定义循环控制变量每循环一次后,按什么方式变化;条件表达式用于决定什么时候退出循环。在应用流程图设计宏程序时,循环结构可以用if 语句与条件表达式联合表示,也可以用while 语句与条件表达式联合表示,其含义与一般程序设计中的循环语句类似,设计者可根据需要来决定使用哪一种方式。
从单循环的结构可以看出,循环实质上是指变量以增量方式变化,达到设定条件后就退出循环。单循环主要用于一些特殊加工,如切槽和切断。
例如,切断直径为d的轴,采用间歇进刀方式,其切削速度与被加工直径成正比。这种切断模式有利于保持合理的切断速度,防止切断时出现的切削后角突然加大的现象。
采用单循环,其中变量d 反映了直径递减变化状态,变量f反映了切削速度随被加工直径减少而变小的规律。单循环基本模式见图1。
图1 单循环基本模式
1.3.1 两重嵌套循环的基本模式
一个循环语句的循环体内包含另一个完整的循环结构,称为循环嵌套。一个程序中宏循环嵌套最多三重,不过数控加工多采用两重嵌套循环,用于粗加工流程。
在两重循环中,外循环的变量一般为切削余量变量,由于大多数零件的廓形都可以通过建立数学模型,用基本函数的形式表示出来,因此,内循环一般为函数自变量增量变化,通过方程变换得出因变量,计算出刀具插补运动坐标,其轨迹符合加工路线要求。自变量的取值范围根据加工零件的尺寸来选定,在流程图上,用赋初值作为变量取值的开始,用条件判断语句结束循环。
在两重循环的基本模式(图2)中,外循环包含一个内循环。作为结束循环的测试,内循环和外循环各含有一个条件判断结构,以此确定变量的变化范围或取值条件。
图2 两重循环的基本模式
在工程实践上,由于加工工艺需要,两重循环还有多种变化形式。
1.3.2 嵌套循环中内循环的串联设计
一个外层循环体中可以包含多个内层循环结构,即为内循环串联。
图3所示零件分别由非圆曲线A和B组成,如果以单一方向作为自变量进行增量循环,无论对于曲线A或曲线B而言,自变量的变化幅度太大,导致零件表面粗糙度相差较大,加工质量不佳。为解决这一问题,在设计流程图时,曲线A以x为自变量,曲线B以z为自变量,在同一外循环中,自变量与因变量进行互换。因此,在这种自变量互换的内循环中,结束循环的判断条件分别是x 和z坐标,此时,流程图见图4。
图3 实例零件一
图4 内循环串联的基本模式一
加工图5所示指数型超声变幅杆时,AB段曲率变化较快,对放大性能影响较敏感,无论是粗加工还是精加工都需要较小步距和进给速度;而加工BC段时,为避免数控系统计算量加大,影响速度的提升和加工效率,需要采用较大的步距和进给速度。因此,在进行同一路线切削时,分段采用两种步距和进给速度,BC段采用较大的步距,而AB段采用较小的步距。点B坐标要预先根据曲线斜率变化及实验数据设置,其流程图见图6。
图5 实例零件二
图6 内循环串联的基本模式二
当内循环串联时,第一个内循环的流出应指向另一个内循环的起点,此时应注意防止刀位的突变,并与加工工艺相符。
1.3.3 复合循环指令中的内循环设计
这是嵌套循环的另一种表达方式。其中,宏程序作为一种内循环,而外循环由复合循环指令控制,如G71。通过对流程图的分析,这是一种特殊的两重嵌套循环,适合用于部分数控系统上,如华中数控系统,其中复合循环指令G71 承担了类似于外循环的功能,此时,内循环的运动不限于作平行于z轴的进给运动。循环开始赋值是开始段号,转跳条件是结束段号,见图7。
1.3.4 内循环的流出设计
一般来说,内循环到达曲线终点,插补完成,需要回到下一层继续加工。
在流程图设计中,必然会遇到控制循环次数的问题,否则循环程序将无法结束,即陷入“死循环”。通常采用条件控制办法,这种条件控制语句可能有一个,也可能有多个,并按一定顺序出现。其出现原因有以下几种:
(1)工艺参数的变换,包括步距、进给速度等。
(2)减少空刀,提高加工效率。
同时出现的多个条件控制语句在逻辑上存在着“或”的关系,即只要达到条件之一即可跳出内循环。因此,其出现顺序应符合编程人员的设计需要。
图7 复合循环指令中的内循环设计
例如,加工双曲线轮廓零件,其直径单调增加,材料毛坯为等径轴。
由于宏程序形成的刀路实际上是等距线,与毛坯形状相差大,为了避免空程走刀,循环中设置了提前转跳条件——循环控制直径,如果刀位超出该直径,则提前结束循环,转入下一层加工,其粗加工流程图见图8。
图8 内循环的流出设计示例
当需要运用到三重循环或以上时,可考虑运用子程序调用的方式来实现,这样可使流程图简化。即将最内层的循环做成一个子程序,通过上一层循环调用,这样可解决所在程序嵌套数量的限制问题,同时也可以提高所在层程序的简洁性。
在当前数控加工技术逐渐成熟的背景下,零件的数控加工工艺也趋于成熟和稳定,其程序流程图的设计也将遵循一定的模式,只要把握好流程图的设计规律,设计人员就不难设计出简洁合理的流程图,这将对编程人员应用宏指令编制复杂零件程序有较大的帮助,通过流程图,可以认识数据或变量的流动状态,确定循环的嵌套形式和转跳路线,在应对不同的数控系统和语言规范时,思路更清楚,程序表达更合理。
【1】郑英,刘让贤,王艳.基于流程图的加工中心模块化数控编程[J].组合机床与自动化加工技术,2007(1):97-99.
【2】朱显明,马洪波.华中数控车削系统抛物线宏程序编制解析[J].CAD/CAM与制造业信息化,2010(1):104-105.
【3】陈银清.宏程序编程在数控加工中的应用研究[J].机床与液压,2009,37(5):42-45.
【4】王宏.数控宏程序编程的三个关键步骤[J].机械制造与自动化,2007(5):48-50.
【5】王衍,王桂平,冯睿.程序设计方法及在线实践指导[M].杭州:浙江大学出版社,2010.