首页 理论教育 子程序编程方法详解

子程序编程方法详解

时间:2023-06-18 理论教育 版权反馈
【摘要】:子程序的编程形式和方法与定义子程序的格式有关。而子程序始终在下一个更低级别的程序级上运行。因此,程序级1是第一个子程序级。表5-1 查找子程序的路径目录子程序返回指令M17 返回指令M17或零件程序结束指令M30位于子程序的末尾。M17/M302)使用条件:子程序返回对连续路径运行的影响。和M17类似,RET使得程序执行返回到主调程序中、子程序调用指令之后的零件程序段上。通过带SAVE的子程序定义,G90在主程序中的子程序结束后再次生效。

子程序编程方法详解

子程序的编程形式和方法与定义子程序的格式有关。本书仅就常用的一些编程方法简单介绍如下:

(1)子程序的嵌套 一个主程序可以调用子程序,而该子程序又能继续调用另一个子程序,因此各个程序以相互嵌套的方式运行。此时,每个程序都在各自的程序级上运行。

主程序始终在最高的程序级上运行,即0级。而子程序始终在下一个更低级别的程序级上运行。因此,程序级1是第一个子程序级。如图5-1所示为程序级的划分。

1)程序级0:主程序级。

2)程序级1~15:子程序级1~15(SINUMERIK 828D BASIC子程序级为1~11级)。

978-7-111-59603-5-Chapter05-1.jpg

图5-1 程序级的划分

考虑到如果在中断程序的范围内调用了子程序,为了在最低的程序级上也能执行上述步骤,必须在构建零件程序时加以考虑。一般在编制程序时,零件程序处理程序级可以为12级。

(2)查找子程序的路径 在调用没有指定路径的子程序时,控制系统会按照规定的顺序查找以下目录,见表5-1。

5-1 查找子程序的路径目录

978-7-111-59603-5-Chapter05-2.jpg

(3)子程序返回指令M17 返回指令M17或零件程序结束指令M30位于子程序的末尾。它使得程序执行后返回到主程序中、子程序调用指令后的零件程序段上。M17和M30在NC语言中被视为同等的指令。

1)编程格式:

PROC<程序名称>

M17/M30

2)使用条件:子程序返回对连续路径运行的影响。如果M17或M30位于单独的零件程序段中,则通道中激活的连续路径运行被中断。

为避免此类中断,应在最后一个运行程序段中写入M17或M30。此外,还必须将以下机床数据设为0:MD20800 $MC_SPF_END_TO_VDI=0(没有M30/M17输出给NC/PLC接口)。

3)编程示例

①M17位于单独程序段中的子程序。

程序代码 注释

N10 G64 F2000 G91 X10 Y10

N20 X10 Z10

N30 M17 ;返回,中断连续路径运行。

②M17位于最后一个运行程序段中的子程序。

程序代码 注释

N10 G64 F2000 G91 X10 Y10 ;返回,不中断连续路径运行。

N20 X10 Z10 M17

(4)子程序返回指令RET 编程指令RET在子程序中可以代替M17。RET必须在一个单独的零件程序段中设定。和M17类似,RET使得程序执行返回到主调程序中、子程序调用指令之后的零件程序段上。如果不希望因为返回而中断G64连续路径运行(G641~G645),则必须使用RET指令。

1)编写格式:

PROC<程序名称>

RET(www.xing528.com)

2)使用条件:只能在未定义SAVE属性的子程序中使用RET指令。

3)编程示例

程序代码 注释

主程序

PROC MAIN_PROGRAM ;程序开始

N50 SUB_PROG ;调用子程序

N60…

N100 M30 ;程序结束

子程序

PROC SUB_PROG

N100 RET ;返回到主程序的程序段N60

(5)保存模态G功能(SAVE) 属性“SAVE”用于保存子程序调用前激活的模态G指令,在子程序结束后再次激活。

1)编程格式:

PROC<子程序名称>SAVE

2)指令参数说明:

SAVE:保存子程序调用前激活的模态G功能,并使功能在子程序结束后再次生效。

3)使用条件。如果在连续路径运行生效时调用了含有SAVE属性的子程序,则在使用RET指令的该子程序结束(返回)时,连续路径运行会中断。

4)编程示例。在子程序KONTUR中,模态G指令G91有效(增量尺寸)。在主程序中模态G指令G90有效(绝对尺寸)。通过带SAVE的子程序定义,G90在主程序中的子程序结束后再次生效。

程序代码 注释

子程序

PROC KONTUR(REAL WERT1) SAVE;带参数SAVE的子程序定义

N10 G91… ;模态G指令G91(增量尺寸)

N100 M17 ;子程序结束

主程序

N10 G0 X...Y...G90 ;模态G指令G90(绝对尺寸)

N20…

N50 KONTUR(12.4) ;调用子程序

N60 X...Y... ;模态G指令G90通过SAVE再次激活

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈