调用子程序的次数可以通过以下几种方式指定:
直接指定次数
格式:`M98 P___L___`
其中,`P` 是子程序号,`L` 是子程序被调用的次数。例如,调用子程序 `O1234` 五次可以写成:`M98 P51234` 或 `M98 P051234`。
通过循环实现
可以使用循环结构(如 `FOR` 循环)来控制子程序的调用次数。例如,每 3 次调用一次子程序 `fun1()`,可以写成:
```
FOR i = 1 TO 100
IF i MOD 3 = 0 THEN fun1()
END FOR
```
使用计数器
通过计数器来控制子程序的调用次数,每次执行子程序时递增计数器,当计数器达到设定值时停止调用。例如,希望子程序循环执行 5 次,可以这样编写:
```
10 = 0
WHILE 10 LT 5
10 = 10 + 1
IF 10 LT 5 THEN GOTO 1
CALL sub_program
END WHILE
```
注意事项
子程序调用次数通常为 1 到 9999 次,具体数值可以根据实际需求设定。
子程序调用必须以 `M99` 指令结束。
嵌套调用子程序时,嵌套层数不能超过 4 级。
示例
```
O1000;
N10 G21 G17 G40 G49 G80 G90 T20 M6 G0 G90 G54 X-50. Y0.0 S1300;
N20 M98 P2000 L5; ; 调用子程序 O2000,并执行 5 次
N30 M30;
O2000;
N10 G00 X100 Y100;
N20 G01 Z-10 F100;
N30 G00 Z50;
N40 M99; ; 结束子程序调用
```
在这个示例中,主程序 `O1000` 使用 `M98` 指令调用子程序 `O2000`,并指定子程序执行 5 次。子程序结束后,程序返回到主程序的 `N30` 位置继续执行。