程序嵌套编程技术
功能说明
以下所示的最大嵌套深度适用于NC数控程序:
- 子程序最大嵌套深度是: 19
- 外部NC数控程序的最大嵌套深度:19层,其中CYCL CALL用于调用外部程序
- 重复程序块的嵌套次数没有限制
举例
子程序内的子程序调用
0 BEGIN PGM UPGMS MM | |
* - ... | |
11 CALL LBL “UP1“ | ; 调用子程序LBL "UP1" |
* - ... | |
21 L Z+100 R0 FMAX M30 | ; 含M30主程序的最后一个程序段 |
22 LBL “UP1“ | ; 子程序"UP1"开始 |
* - ... | |
31 CALL LBL 2 | ; 调用子程序LBL 2 |
* - ... | |
41 LBL 0 | ; 子程序"UP1"结束 |
42 LBL 2 | ; 子程序LBL 2开始 |
* - ... | |
51 LBL 0 | ; 子程序LBL 2结束 |
52 END PGM UPGMS MM |
数控系统执行NC数控程序,操作如下:
- 执行NC数控程序UPGMS直到NC数控程序段11。
- 调用子程序UP1并执行到NC数控程序段31。
- 调用子程序2并执行到NC数控程序段51。子程序2结束,从调用处返回子程序。
- 调用子程序UP1并从NC数控程序段32开始执行到NC数控程序段41。子程序UP1结束并跳回到NC数控程序UPGMS。
- 执行NC数控程序UPGMS,从NC数控程序段12执行到NC数控程序段21。程序结束并回跳到NC数控程序段1。
在程序块重复内进行程序块重复
0 BEGIN PGM REPS MM | |
* - ... | |
11 LBL 1 | ; 子程序块1开始 |
* - ... | |
21 LBL 2 | ; 子程序块2开始 |
* - ... | |
31 CALL LBL 2 REP 2 | ; 调用程序块2并重复两次 |
* - ... | |
41 CALL LBL 1 REP 1 | ; 调用程序块1,含程序块2并重复一次 |
* - ... | |
51 END PGM REPS MM |
数控系统执行NC数控程序,操作如下:
- 执行NC数控程序REPS直到NC数控程序段31。
- 重复执行NC数控程序段31与NC数控程序段21间的程序块两次,也就是共执行三次。
- 执行NC数控程序REPS,从NC数控程序段32执行到NC数控程序段41。
- 重复执行NC数控程序段41与NC数控程序段11间的程序块一次,也就是共执行两次(含NC数控程序段21与NC数控程序段31间的程序块重复)。
- 执行NC数控程序REPS,从NC数控程序段42执行到NC数控程序段51。程序结束并回跳到NC数控程序段1。
程序块重复内的子程序调用
0 BEGIN PGM UPGREP MM | |
* - ... | |
11 LBL 1 | ; 子程序块1开始 |
12 CALL LBL 2 | ; 调用子程序2 |
13 CALL LBL 1 REP 2 | ; 调用程序块1并重复两次 |
* - ... | |
21 L Z+100 R0 FMAX M30 | ; 含M30主程序的最后一个NC数控程序段 |
22 LBL 2 | ; 子程序2开始 |
* - ... | |
31 LBL 0 | ; 子程序2结束 |
32 END PGM UPGREP MM |
数控系统执行NC数控程序,操作如下:
- 执行NC数控程序UPGREP直到NC数控程序段12。
- 调用子程序2并执行到NC数控程序段31。
- 重复执行NC数控程序段13与NC数控程序段11(含子程序2)间的程序块两次,也就是共执行三次。
- 执行NC数控程序UPGREP,从NC数控程序段14执行到NC数控程序段21。程序结束并回跳到NC数控程序段1。