使用DIN 66025中的命令 G20 可是实现一个代码的跳转。要实现此功能必须输入跳转目标(L)的表达式的序号以及用于跳转的条件的 (K) 。如果没有指定跳转条件,隐含的跳转代码将会被使用。当跳转条件不为 0 的时候跳转总会执行。
图形编辑器中不支持使用 G36/G37 命令中隐含变量的使用。
示例
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)