原则上主程序和子程序之间并没有什么区别。用子程序编写经常重复进行的加工,例如图1-3所示,在一个工件上加工4个相同轮廓形状的凹槽。子程序位于主程序中适当的地方,在需要时进行调用、运行,可简化程序编制。
图1-3 在一个工件上四次调用子程序
加工循环是子程序的一种形式,它包含一般通用的加工工序,诸如钻削、攻螺纹、铣槽等。通过给规定的计算参数赋值就可以实现各种具体的加工。
子程序的结构与主程序的结构一样,在子程序中也是在最后一个程序段中用M02结束程序运行。子程序结束后返回主程序。
子程序结束除了用M02指令外,还可以用RET指令结束子程序。RET要求占用一个单独的程序段,不能和其他指令字写在同一行。用RET指令结束子程序、返回主程序时,不会中断G64连续路径运行方式;用M02指令结束子程序,则会中断G64运行方式,并进入停止状态。图1-4所示为两次调用子程序。
1.子程序程序名
为了方便地选择某一子程序,必须给子程序取一个程序名。程序名可以自由选取,但必须符合以下规定:
1)开始两个符号必须是字母。
2)其他符号为字母、数字和下划线。
3)最多8个字符。
4)没有分隔符。
其方法与主程序中程序名的选取方法一样。例如:LRAHMEN7。另外,在子程序中还可以使用地址字L,其后的值可以有7位(只能为整数)。
注意:地址字L之后的每个零均有意义,不可省略。
例如:L128并非L0128或L00128。
以上表示3个不同的子程序。
(www.xing528.com)
图1-4 两次调用子程序
2.子程序调用
在一个程序中(主程序或子程序)可以直接用程序名调用子程序。子程序调用要求占用一个独立的程序段。
例如:N10 L785 P3;调用子程序785
N20 LRAHMEN7;调用子程序LRAHMEN7
3.程序重复调用次数P
如果要求多次连续地执行某一子程序,则在编程时必须在所调用子程序的程序名后地址P下写入调用次数,最大次数可以为9999(P1~P9999)。
例如:N10 L785 P3;调用子程序785,运行3次
4.嵌套深度
子程序不仅可以从主程序中调用,也可以从其他子程序中调用,这个过程称为子程序的嵌套。子程序的嵌套深度可以为八层,也就是九级程序界面(包括主程序界面),如图1-5所示。
在使用加工循环进行加工时,要注意加工循环程序也同样属于九级程序界面中的一级。
图1-5 九级程序界面运行过程
说明:在子程序中可以改变模态有效的G功能,比如G90到G91的交换。在返回调用程序时,请注意检查一下所有模态有效的功能指令,并按照要求进行调整。
对于R参数也需同样注意,不要无意识地用上级程序界面中所使用的计算参数来修改下级程序界面的计算参数。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。