杨娜
(兰州职业技术学院,甘肃兰州730000)
数控编程方法有自动编程方法和手动编程方法,在手动编程中,数控程序的编制有很多技巧,其中子程序简化编程就是一种。数控加工程序可分为子程序和主程序,当在加工一个程序中的若干位置上,有着连续的若干行程序在写法及格式上完全相同及相近时,为简化程序长度与编写工作,可将这些重复出现的程序段单独提出来,并按照一定的格式编写,这样的程序称为子程序。在执行程序时只需要不断地调用此子程序来完成规定的任务。子程序的编写格式与主程序完全相同,子程序在数控编程中属于高级功能,正确合理地使用子程序可以使某些程序的编制变得简单、明了、简洁,而且方便程序的修改,给某些零件的批量生产带来很大的方便,也为编写和修改加工程序带来方便,能大大提高工作效率。
子程序编写技术几乎被所有的教材介绍,它们都在讲述子程序编程技术运用的方法与好处,以下是关于子程序编程知识的部分描述。
在本示例中有三个槽的切削加工,比较有特点的是三个槽的宽度均为5mm,此为相同的轮廓形状,在程序编辑时有相同的程序段出现,此时利用子程序较为简单。
铣削图示工件上表面。所给的刀具为直径10mm的立铣刀。经分析,铣削长60mm、宽40mm的矩形上表面,使用直径为10mm的立铣刀,在程序编制上会有很多重复,可把程序中重复的内容编写成子程序,每次调用使用,大大减少了程序段的重复出现,从而简化了程序。
被加工工件的深度较大不能一次进给切削,此时需要刀具在某一区域内分层进行多次反复走刀,走刀轨迹总是出现某一特定的形状,采用子程序比较方便,此时深度一定要以增量方式给定,否则刀具只会在同一深度处重复加工。
通常情况下,数控机床按主程序的指令进行工作,但当主程序执行过程中执行到某个地方需要子程序时,可通过一定格式随时调用,控制信息就按子程序执行。当子程序中遇到返回主程序的指令时,控制信息就返回主程序,继续按主程序执行。子程序可以被主程序调用,为了进一步简化加工程序,可以允许子程序再调用另一个子程序,这一功能称为子程序的嵌套,子程序可以多次重复调用,即所谓“多层嵌套调用”,从而大大简化编程工作,缩短程序长度,节约程序存储器的容量。子程序的嵌套层数是有限制的,限制层数根据不同机床的使用说明书确定。
使用子程序的一个好处是,当对未使用子程序编写的加工程序进行修改时,需要保证对涉及修改的每一个地方都要进行修改到,否则会出现差错,导致出现废品。而当使用子程序编程技术后,则可以一次完成,不必顾虑会有遗漏问题。
大多数教材仅对子程序的应用加以强调,并没有对子程序的编辑进行更深入的辨析,没有指出加工子程序在编辑、查找使用中存在的“查看不方便”和开始加工时界面操作不方便等缺点,也没有指出在调用子程序时,FANUC系统可能出现的只运行子程序、SIEMENS系统可以由主程序调用主程序等情况。
由于子程序同主程序一样,需要以一个单独的文件形式保存在数控系统存储器制定的路径下,当需要编辑修改主程序与子程序的语句,或查对主程序、子程序调用关系时,必须打开这两个文件并反复在屏幕上切换界面。当确定执行该加工程序时,必须在主程序界面上执行。既然是数控系统的规定操作方法,大家也都默认了。
在当代的经济型数控系统中,查看子程序的方法得到了改进。一些数控系统(如SINUMERIK 802Dsl系统)的分屏显示技术可以让操作者在屏幕上同时看到多个程序文本内容,改善了原来的主、子程序查看文本内容时要反复切换屏幕,必须返回到主程序界面再次运行程序的规则,提高了查看子程序的操作效率。
另外,人们所说的狭义上的宏程序的编程方式中,地址字可以使用表达式形式表述,变量编程技术和逻辑操作及条件分支控制指令的使用,也解决了编写加工程序长度与刀具路径流向控制的问题,可以大大减少对子程序编写技术的依赖。不把程序中相同指令或相同路径的程序块拿出去重组建一个子程序,使阅读程序比较方便。一些数控系统(如SIEMENS系统)允许使用区域内程序段重复执行指令(REPEAT),也可以改变程序流向和重复次数的控制问题。
在FANUC系统中,子程序还有一个独特的调用方法,即不通过主程序调用,直接运行子程序。因为一般规定在子程序的尾部使用M99指令(不使用M30指令)返回主程序指定位置,如子程序运行完后找不到主程序,则返回子程序头继续运行。如果不进行人为终止操作,子程序会一直运行下去,这种情况虽然使用较少,但作为一种特殊的功能可使用在对机床导轨润滑、新机床的验收及烤机等循环运行中。
在SIEMENS系统中,主程序不仅可以调用子程序,还可以调用另一个主程序,此时,作为被调用的主程序结尾的M30指令仅作为M17指令使用,而不能像普通人们所认识的是一个“总开关”指令来结束机床运行,会中断调用主程序的运行。
合理利用子程序编程可以简化程序,提高加工效率。在对子程序的编辑及查看操作进一步分析后,以上两种子程序调用编程的使用情况作为对子程序使用的认识,还是很有帮助的。
[1]胡如祥.数控加工编程与操作[M].大连:大连理工大学出版社,2006.
[2]李娜.子程序在数控铣床编程中的应用[J].机械工程师,2012,(2).