使用 G 代码调整圆周运动命令中的进给率
之前,本专栏讨论了一个与在以恒定轮廓速度为目标时进行圆周运动所需的进给率相关的问题 - 具体而言,当去除的材料围绕正在加工的轮廓(精铣和近净-形状,例如)。铣刀的中心线轨迹与工作面轨迹的尺寸差异,需要提高外圆运动的直线进给速度,减小内圆运动的直线进给速度,以达到恒定的轮廓速度。
上个月,我演示了一种确定圆周运动所需的修正进给速率的方法。但是手动进行相关计算是乏味的,尤其是在定期使用此技术或用于各种工作表面半径尺寸时。只要使用刀具半径补偿,只要编程坐标反映工件表面路径,操作者就可以在刀具半径补偿偏移寄存器中输入铣刀的半径大小。
使用右手铣刀时,刀具半径补偿状态(G41 左刀,G42 刀右)有助于确定给定的圆弧指令是加工内半径还是外半径。当刀具位于加工表面的左侧(G41)时,任何 G02(顺时针圆弧)都是外圆弧。任何 G03(逆时针)都是内圆弧。当刀具位于加工表面的右侧 (G42) 时,情况正好相反。使用 FANUC 自定义宏,程序可以从其偏置寄存器中访问刀具半径值,并访问刀具半径补偿的当前状态(G41 或 G42)。
我创建了两个用户定义的 G 代码自定义宏,它们以调整后的进给速率进行圆周运动,将它们命名为 G102(顺时针)和 G103(逆时针)。我以与 G02 和 G03 相同的方式对它们进行编程(尽管它们不是模态的)。每个都将工作表面半径(由 G102 或 G103 命令中的 R 字指定)与刀具的中心线路径半径(使用来自偏移寄存器的刀具半径和工作表面半径计算)进行比较。然后他们将根据前面所示的方法计算修改后的进给率,并使用修改后的进给率使用 G02 和 G03 发出圆弧指令。
用户自定义的G代码程序有哪些?
下面是两个用户自定义的G代码程序:
- O9010(G102,顺时针圆弧程序)
- #1=#4109(保留当前的 F 字)
- IF[#9NE#0]THEN#1=#9(测试是否有新的进给速度)
- IF[#9EQ#0]THEN #9=#1(如果没有新的进给率,则保持当前的进给率)
- #2=[#_OFSDG[#4107]](访问偏移值)
- IF[#4007EQ41]GOTO5(G41 条件,外圆弧)
- IF[#4007EQ42]GOTO10(G42 条件,内圆弧)
- #3000=100(必须使用 CRC COMP)
- N5(外部)
- #3=#9*[#18+#2]/#18(外部进给速度)
- GOTO75
- N10(内部)
- #3=#9*[#18-#2]/#18(内部进给速度)
- N75G02X#24Y#25R#18F#3
- F#1
- M99
- O9011(G103,逆时针圆弧程序)
- #1=#4109(保留当前的 F 字)
- IF[#9NE#0]THEN#1=#9
- IF[#9EQ#0]THEN #9=#1
- #2=[#_OFSDG[#4107]]
- 如果[#4007EQ41]GOTO5
- 如果[#4007EQ42]GOTO10
- #3000=100(必须使用 CRC COMP)
- N5(内弧)
- #3=#9*[#18-#2]/#18(外部进给速度)
- GOTO75
- N10(外圆弧)
- #3=#9*[#2+#18]/#18(内部进给速度)
- N75G03X#24Y#25R#18F#3
- F#1
- M99
要使这些程序作为用户定义的 G 代码工作,请更改两个 FANUC 参数(对于当前的 FANUC CNC,在我们的示例中它们是参数 6051 和 6052)。将参数6051设置为102、6052设置为103后,CNC看到G102就执行程序O9010,看到G103就执行程序O9011。
这是一个可用于测试目的的示例程序。它也是一个自定义的宏程序,因此可以轻松修改相关变量。在运行此程序之前,还必须将刀具半径补偿几何偏移(本例中为偏移 1 的 D 寄存器)中的值设置为铣刀半径。
顺便说一下,如果刀具半径补偿偏移寄存器值设置为零,则机床将使用工作表面路径。然后,循环时间将与在偏移中输入刀具半径值时几乎相同。距离与运动长度有关的唯一时间是在刀具半径补偿指令下。这证实了恒定的轮廓速度正在正常工作。
- O0041
- (G41 / G102,外圆弧)
- #100=0.25(拐角半径)
- #101=10.0(进给速度)
- #102=1.5(X 长度)
- #103=1.5(Y 长度)
- T01M06
- G40G00X-1.5Y-.5
- G43H01Z-0.5
- G01G41D01X0F10.0
- G01Y[#103-#100]F#101
- G102X#100Y#103R#100
- G01X[#102-#100]
- G102X#102Y[#103-#100]R#100
- G01Y#100
- G102X[#102-#100]Y0R#100
- G01X#100
- G102X0Y#100R#100
- G00G40X-1.5Y-0.8
- M30
请注意,G102 的编程与 G02 一样:使用 X、Y 和 R。局部变量 #24 (X)、#25 (Y) 和 #18 (R) 将相应设置。它调用程序 O9010,它将:
- 将局部变量 #1 设置为当前有效的进给速率(以便在循环移动后可以重置)
- 如果在 G102 指令中指定进给速度,则相应设置#1
- 确保保持进给速度(如果包含在 G102 中)
- 将当前刀具半径补偿偏置值存储在局部变量#2中
- 如果存在 G41 条件(外圆弧),则从第 N5 行执行
- 如果存在 G42 条件(内部圆弧),则从 N10 行执行
- 如果当前未设置刀具半径补偿,则生成警报
- 计算外圆弧的进给率(如果适用)
- 计算内弧的进给率(如果适用)
- 使用 G02 制作圆弧指令
- 将进给速率重置为圆周运动之前的水平
程序 O9011 使用了几乎相同的技术。
工业设备
- 带有 PIR 运动传感器的 Raspberry Pi GPIO:最佳教程
- 将 HC-SR501 PIR 运动传感器与 Raspberry Pi 连接
- 英力士苯领与 Polystyvert 合作推进 PS 的循环经济
- 具有用于汽车内饰的回收成分的 TPE
- 用光敏电阻检测心率
- 带有 Arduino AT 命令的 SIM800L GPRS 模块
- 带有 Arduino/MCU 的 Android 运动检测相机
- IMU (6 DOF) 运动传感器入门
- 比萨自动售货品牌 Basil Street 与 Arcus Servo Motion 合作
- 车床具有用于重切削的高进给率
- 直线运动技术
- 进给速度与切削速度:了解差异