更换损坏的工具后,自定义宏可以跳过孔
一些程序员回避使用自定义宏,因为他们觉得这些宏使得从复杂的加工操作中间重新启动程序变得更加困难。这种担忧通常可以通过一些计划来克服。事实上,自定义宏有时可以更轻松地重新启动程序并从切削刀具的加工操作中间运行。
本文中的技术受到威斯康星州考库纳市 Mid Valley Industries 的 Chad Kluth 的启发。我正在帮助他解决螺栓圆孔加工自定义宏中的另一个问题。我把它包括在这里,因为它与我们的讨论有关。
Kluth 的应用涉及加工采矿业使用的非常大且坚韧的 4140 钢部件。他需要在圆形面/法兰周围钻出多达 100 个孔,每个孔的直径为 2 英寸,深度为 6 英寸。可以想象,刀具磨损和刀具破损是大问题。即使是带有新刀片的钻头也可能无法在整个循环过程中不磨损——当它磨损时,钻头可能会在循环中钻 90 个孔。更糟糕的是,原材料中的硬夹杂物随时可能导致钻头断裂。
Kluth 使用通用螺栓圆自定义宏,能够执行多种孔加工操作,包括钻孔、标准攻丝、刚性攻丝、铰孔和锪孔。最初的问题与刚性攻丝有关。作为“通用”自定义宏,如果机器正在执行任何其他操作,M29 命令需要忽略刚性攻丝。为了解决这个问题,我们使用了“空”的局部变量。
至于跳过孔,调用命令中的参数指定要跳过的孔数。例如,如果钻头在 90 th 孔,用户需要将此参数设置为 89。我们在固定循环命令中使用了 K-word(旧 FANUC CNC 的 L-word)来指定机器是否应该跳过一个孔。如果 K 设置为零 (K0),则跳过该孔。如果 K 设置为一 (K1),则加工孔。
这是一个包含示例调用命令的示例程序:
- O0001
- N005 G90 S500 M03
- N010 G00 X0 Y0
- N015 G43 H01 Z0.1
- N020 G65 P9010 X0 Y0 Z0 C81.0 D6.0 R0.1 B12.0 A90.0 I100.0 F12.0 H89.0
- N025 G91 G28 Z0
- N030 M30
这些是必须在调用命令中的强制参数:
- (X =X 中心)
- (Y =Y 中心)
- (Z =Z 曲面)
- (D =孔深度)
- (C =要使用的循环 - G81、G82、G83、G73 或 G84)
- (R =Z 快速位置)
- (B =螺栓圆半径)
- (A =起始角度)
- (I =孔数)
- (F =进给速率)
这些是仅在特殊情况下才需要的参数:
- (T =G82 需要指定停留时间)
- (Q =G73 或 G83 需要指定啄孔深度)
- (M29.0 =刚性攻丝时需要)
- (Sxxxx.x =如果刚性攻丝指定主轴转速,则需要)
- (H =如果要跳过孔,则需要指定要跳过的孔数)
这是自定义宏:
- O9010(通用螺栓圆自定义宏)
- #101=1(初始化计数器)
- #102=#1(将当前角度初始化为 A)
- #103=360 / #4(孔之间的增量角距离)
- #104=#26 + 0.1(快速进场)
- #105=#26 - #7(孔的 Z 底部位置)
- #32=1(跳孔计数器 - 如果 H 包含在调用命令中,则使用)
- N1 IF[#101 GT #4] GOTO 99(测试是否完成加工孔)
- #110=#24 + COS[#102] * #2(当前孔的 X 位置)
- #111=#25 + SIN[#102] * #2(当前孔的 Y 位置)
- #33=1(K 字值,设置为 1 以防加工下一个孔)
- IF[#11EQ#0] GOTO5(测试调用命令中是否包含H)
- IF[#32GT#11] GOTO5(测试是否完成跳洞)
- #33=0(将跳过下一洞)
- N5 M#13 S#19 (如果#13 和#19 为空,则不执行)
- G#3 X#110 Y#111 R#104 Z#105 P#20 Q#17 F#9 K#33 (机器当前孔)
- G80(取消循环)
- #101=#101 + 1(计步器)
- #102=#102 + #103(步进当前角度)
- #32=#32+1(步数跳孔计数器)
- GOTO 1(返回测试)
- N99 M99(完)
这是粗体项目的指南 在自定义宏中:
- M#13 S#19 – 如果 CNC 字包含空的局部变量,CNC 将忽略该字。进行刚性攻丝时,调用命令必须包含 M29.0 和 Sxxxx.0 字样(S 指定刚性攻丝的转速)。如果执行其他操作,用户必须将 M 和 S 排除在调用命令之外。
- P#20 和 Q#17 – 如果用户使用沉孔 (G82),他们必须在调用命令中包含 T 以指定停留时间。深孔钻孔(G73 或 G83)时,用户必须包含 Q 以指定深孔深度。
- K#33 – FANUC 有两种固定循环的编程格式。对于较新的 FANUC CNC,K 指定要加工的孔数。较旧的 FANUC CNC 使用 L 用于相同目的。如果这个自定义宏不起作用(即使调用命令中包含H,机器也不跳孔),将这个命令中的K#33改为L#33。
工业设备