程序嵌套编程技术

应用

编程技术可以相互组合。例如,可在程序块重复中调用另一个单独的NC数控程序或子程序。

嵌套深度定义程序块和子程序中可含其它子程序或程序块重复的次数等特性。

功能说明

以下所示的最大嵌套深度适用于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数控程序,操作如下:

  1. 执行NC数控程序UPGMS直到NC数控程序段11。
  2. 调用子程序UP1并执行到NC数控程序段31。
  3. 调用子程序2并执行到NC数控程序段51。子程序2结束,从调用处返回子程序。
  4. 调用子程序UP1并从NC数控程序段32开始执行到NC数控程序段41。子程序UP1结束并跳回到NC数控程序UPGMS。
  5. 执行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数控程序,操作如下:

  1. 执行NC数控程序REPS直到NC数控程序段31。
  2. 重复执行NC数控程序段31与NC数控程序段21间的程序块两次,也就是共执行三次。
  3. 执行NC数控程序REPS,从NC数控程序段32执行到NC数控程序段41。
  4. 重复执行NC数控程序段41与NC数控程序段11间的程序块一次,也就是共执行两次(含NC数控程序段21与NC数控程序段31间的程序块重复)。
  5. 执行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数控程序,操作如下:

  1. 执行NC数控程序UPGREP直到NC数控程序段12。
  2. 调用子程序2并执行到NC数控程序段31。
  3. 重复执行NC数控程序段13与NC数控程序段11(含子程序2)间的程序块两次,也就是共执行三次。
  4. 执行NC数控程序UPGREP,从NC数控程序段14执行到NC数控程序段21。程序结束并回跳到NC数控程序段1。