浅谈子程序在数控编程中的应用
作者: 张敏卿 田洪利摘 要:在数控机床上加工工件时,通过一次装夹加工多个相同零件或同一个零件上有多个相同加工部分,在编写零件加工程序时,可使用子程序编程。采用子程序之后,可以缩短程序的长度及简化零件加工程序。
关键词:数控编程; 子程序; M98指令; M99指令
中图分类号:TG659 文献标识码:A 文章编号:1006-3315(2015)03-129-001
在编写零件的加工程序时,如果零件轮廓由许多相同的形状组成,并且该零件通过一次安装就能完成多个相同轮廓形状的加工,那么我们在编写零件的加工程序时只需要编写一个轮廓形状的加工程序,然后把编写好的这个加工程序作为子程序,再用主程序来调用子程序,从而实现该零件的加工。采用主程序调用子程序的方式进行编程,不仅可以实现简化编程,而且还可以减少重复性工作,从而提高零件的编程效率。
一、浅谈子程序的有关概念
数控机床的零件加工程序有主程序和子程序两种。主程序是一个完整的零件加工程序,或者理解为主程序是零件加工程序的主体部分,作为独立的加工程序使用。而子程序一般都不可以作为独立的加工程序进行使用,它只能通过子程序来进行调用,实现加工中的局部动作。所谓的子程序就是指在编制加工程序时,有时会遇到一组程序段在一个程序中多次出现,或者在几个不同程序中都要使用它,那么,这组程序段就称为子程序。
主程序和子程序在程序段和程序内容两个方面基本相同,而程序的结束标志有所不同。在主程序中用M02指令或M30指令来表示主程序结束;而子程序中则用M99指令表示子程序结束,并实现自动返回主程序的功能。另外,在编写零件加工程序时,为了进一步简化加工程序,可以允许一个子程序调用另一个子程序,这种编程功能称为子程序嵌套。根据数控系统不同,则子程序的嵌套次数是不一样的,在FANUC 0i数控系统当中,子程序一般可以嵌套4级。我们编写的子程序必须在主程序结束指令后来建立,其作用相当于一个固定循环。
二、浅谈子程序的应用
在数控加工编程中,子程序的应用非常广泛。比如,在同一平面内,通过工件的一次装夹来完成多个相同的轮廓形状的工件,我们在编写该零件的加工程序时就可以采用子程序的编程方式编写零件的加工程序。再比如,加工中要实现零件的分层切削,在编程时就可以先编写加工该轮廓的刀具轨迹子程序,然后通过子程序调用的方式来实现该零件的分层切削。另外,我们在数控车床上加工槽时,如果需要切削多个槽,并且每个槽的结构尺寸和形状完全相同,那么我们在编写该零件的加工程序时,就可以将某一个槽的加工程序作为子程序来进行编程,其它槽的加工通过子程序调用来实现,这样可以简化零件的加工程序,提高编程效率。
在FANUC系统中,子程序的调用可以通过辅助功能M98指令进行,并且在调用格式中将程序的程序号地址改为P。我们常用的子程序调用格式有两种:
1.M98 P×××× L××××
在程序段中,P后面的四位数字表示子程序号,L后面的数字表示调用的次数,子程序号和调用次数前的0可以省略不写。如果只调用一次,则L及后面的数字可以省略。例如:M98 P345 L8;表示调用子程序O0345,调用8次。
2.M98P××××××××
在程序段中,P后面的八位数字中,前四位表示调用的次数,后四位表示子程序名,调用次数前面的0可以省略不写,但是子程序号前面的0不可省略。例如:M98 P230026;表示调用子程序O0026,调用23次。
需要注意的是,如果是在同一数控系统中,则两种子程序调用格式不能混合使用。并且在每次调用子程序时,坐标系、刀具半径补偿值、坐标位置、切削用量等可根据具体情况进行改变。也可以对子程序进行镜像、缩放、旋转、拷贝等操作。
三、浅谈子程序应用时的注意事项
在编写子程序的过程中,最好采用增量坐标方式进行编程,这样可以减少编程的错误,提高编程效率。在编程过程中需注意以下几点:
1.注意主程序和子程序间绝对坐标G90和增量坐标G91代码的变换。
2.刀具半径补偿模式在主程序及子程序中不能被分支执行。在编程过程中,应尽量避免编写刀具半径补偿模式在主程序及子程序中被分支执行的程序。
3.如果编程时,在子程序的返回指令M99中加上Pn指令,则子程序在返回主程序时,将返回到主程序段中程序段段号为n的那个程序段,而不直接返回主程序。例如:M99 P30;则返回到程序段号为30的程序段开始执行。
4.M99指令也可以用于主程序最后程序段,执行程序时则程序将返回到主程序的开始程序段并继续执行主程序,所以此程序将一直重复执行,除非按下RESET键才能中断执行。
5.在子程序调用过程中,用M99 L××指令,可强制改变子程序重复执行的次数,其中L××表示子程序调用的次数。例如:如果主程序用M98P1234 L66,而子程序采用M99 L5返回,则子程序重复执行的次数为5次。
四、结束语
总之,采用子程序编程不仅可以简化零件的加工程序,而且还可以减少重复性工作,提高编程效率。我们在编写零件的加工程序时,需要正确合理的应用子程序功能。
参考文献:
[1]陈洪涛主编.数控加工工艺与编程,北京:高等教育出版社, 2003
[2]沈建峰主编. 数控机床编程与操作:FANUC系统车床分册,北京:中国劳动社会保障出版社,2008