跳转
允许的语法
G20 L K
 

命令参数值

L

跳转目标的表达式序号。

K

状态:跳转语句执行时,当变量 K 的值不为 0 (K <> 0)。如果K没有被特别指定,那么隐含的定义数值将会被使用。

示例

G-代码

N00 G36 D10          (Set counter to 10)
N10 G91              (Relative mode)
N20 G01 X10 Y10 F100 (Motion to the distance 10/10)
N30 G37 D-1          (Decrement counter)
N40 G20 L20          (Jump, if counter != 0)
 

这个示例展示连续执行十行代码的效果 - 通过相对方式,最终产生的结果是直线移动到 100/100。

示例

要注意,在进行译码时跳转过程被中断。因此,如果变量 X 通过某种方式位于应用程序中的逻辑部分,那么他将会被赋值为 FALSE,当 X-轴到达位置 15时,那么在第一个周期中他将会跳转到表达式 20 处。当前的 X 值为 TRUE 并且 X-位置为 10。在第二个周期内,你可能会认为,表达式 X=FALSE 的条件满足,那么在 20 这个表达式中将不会发生跳转,因为 X-坐标是 20。但实际上循环还是在不断的执行,因为在解码过程中,插补并没有启动,程序处理时是从缓冲区中读取数据。解码过程会导致循环的跳出,在这个过程中会创建许多对象,致使缓冲区变满并启动插补。这样跳转条件满足,就会跳出程序循环。

G-代码

N0 G92 X0 Y0
N10 G91              (Relative mode)
N20 G01 X10 Y10 F100 (Motion to the distance 10/10)
N30 G20 L20 K$x$     (Jump, if counter != 0 )
 

要记住,使用命令 G75 ( “时间同步插补”)。在这种情况下,译码的处理是伴随着插补同时进行的直到达到适当的位置。

G-代码

N0 G92 X0 Y0
N10 G91              (Relative mode)
N20 G01 X10 Y10 F100 (Motion to the distance 10/10)
N25 G75
N30 G20 L20 K$x$     (Jump, if counter != 0)