通过模态命令调用自定义宏
如果您使用自定义宏编程,您可能知道调用自定义宏程序的一种方法是使用 G65 指令。用户通常在主程序中输入此命令,指定自定义宏的程序编号(带有 P 字)和一系列字母地址参数(变量)以传递给自定义宏。
考虑以下调用圆形型腔加工自定义宏的命令:
- N050 G65 P1000 X5.0 Y5.0 Z0 D0.5 R0.75 F5.0
X 和 Y 指定型腔中心位置。 Z 表示机器将制作型腔的表面。 D 是深度,R 是凹槽半径。 F指定加工进给速度。
G65 不是模态的。要在不同位置加工另一个圆型腔,用户必须提供另一个完整的 G65 命令(当然要更改相关参数)。然而,FANUC CNC 有两个用于模态调用自定义宏的 G 代码:G66 和 G66.1。设置其中任何一个后,程序员必须使用G67取消它们。
G66
G66 自身不调用自定义宏;它只会分配与指定字母地址参数相对应的局部变量。考虑这些命令:
- 。
- N050 G66 P1000 Z0 D0.5 R0.75 T0.5 F5.0
- N055 G00 X5.0 Y5.0
- N060 X10.0
- N065 Y10.0
- N070 X5.0
- N075 G67
- 。
第 N050 行将局部变量 #26 设置为 Z 的值,将 #7 设置为 D 的值,将 #18 设置为 R,将 #20 设置为 T,将 #9 设置为 F。但是,同样,这一行 not 调用自定义宏 O1000。
在下 指令(N055),必须是运动指令(通常为 G00 或 G01),CNC 将移动到指令位置,然后调用自定义宏 O1000。在 G66 命令中分配的局部变量将可用于自定义宏,但在执行 G66 命令后无法更新它们。 CNC 将继续移动到位并在后续运动命令中调用自定义宏,直到到达 G67(N075)命令。
以下是使用 G66 时圆口袋自定义宏的示例:
- O1001(G66 调用的自定义宏)
- #32=#5001(达到当前 X 绝对位置)
- Z[#26+0.1](移动到接近位置)
- G01 Z[#26-#7] F[#9/2](插入口袋)
- G02 X[#32+#18-#20/2] R[[#18-#20/2]/2] F#9
- 我-[#18-#20/2]
- X#32 R[[##18-#20/2]/2]
- G00 Z[#26+0.1]
- M99
G66.1
与 G66 一样,G66.1 命令将指定自定义宏编号并将局部变量设置为字母地址参数的值。与 G66 一样,最终必须指定 G67 指令才能取消模态调用。但与 G66 不同的是,G66.1 会调用 自定义宏。考虑这些命令:
- 。
- N050 G66.1 P1001 X5.0 Y5.0 Z0 D0.5 R0.75 T0.5 F5.0
- N055 X10.0
- N060 Y10.0
- N065 X5.0
- N070 G67
- 。
现在,N050 线将加工第一个型腔。在每个 not 的后续命令中 一个运动命令,CNC 将重置局部变量并再次调用自定义宏。在 N055 行,局部变量#24 (X) 的值变为 10.0。假设程序员正确编写了自定义宏,自定义宏中的运动命令将在机器开始创建口袋之前将工具移动到该位置。
G66.1 优于 G66 的优点是任何字母地址参数都可以在用户调用自定义宏的任何时间更改。例如,如果口袋 N060 机器的口袋深度发生变化,程序员可以在 N060 行中包含字母地址 D。
使用 G66.1 创建自定义宏比 G66 更复杂。由于在结束自定义宏的M99命令时所有局部变量的值都恢复为空,因此用户必须将这些值存储在公共变量中,直到断电才会丢失。
考虑这个使用 G66.1 的自定义宏程序:
- O1001(G66.1 调用的自定义宏)
- (更改调用命令中包含的参数的值)
- IF [#24 NE #0] THEN #100 =#24
- IF [#25 NE #0] THEN #101 =#25
- IF [#26 NE #0] THEN #102 =#26
- IF [#7 NE #0] THEN #103 =#7
- IF [#18 NE #0] THEN #104 =#18
- IF [#20 NE #0] THEN #105 =#20
- IF [#9 NE #0] THEN #106 =#9
- G00 X#100 Y#101(移动到口袋中心)
- Z[#102+0.1](移动到接近位置)
- G01 Z[#102-#103] F[#106/2](插入口袋)
- G02 X[#100+#104-#105/2] R[[#104-#105/2]/2] F#106
- 我-[#104-#105/2]
- X#100 R[[#104-#105/2]/2]
- G00 Z[#102+0.1]
- M99
哪个自定义宏命令更好? G66 还是 G66.1?
虽然它需要更多的编程工作,但 G66.1 提供了比 G66 更大的灵活性。即程序员可以在G66.1 和G67 指令之间改变任意指令中的任意参数。在我们的示例中,这意味着型腔的 X/Y 位置、半径、深度、Z 表面位置或进给率。从这个意义上说,使用 G66.1 调用的自定义宏的行为几乎与任何孔加工固定循环一样,例如 G81。
另一方面,如果您确定在指定初始参数集后不需要更改任何内容,则使用 G66 可能更适合您的应用程序,因为 G66 更易于使用。
工业设备