想要了解FGROUP 和 FGREF的用法,首先要搞清楚几个概念:
1, 直线轴(Linear axis): X, Y, Z
2, 回转轴(Rotary axis): A,B,C
3, 轨迹轴(Path axis): 参与进给运算的轴,正常加工状态,仅有直线轴(X,Y,Z)为轨迹轴
4, 同步轴(synchronized axis): 从动轴,不参与进给运算,仅根据编程轨迹随动。
默认状态下,直线轴为轨迹轴。 回转轴为同步轴!
FGROUP的用法:
简单来讲,FGROUP的作用是定义轨迹轴及同步轴,它既可以把回转轴转化为轨迹轴,也可以将直线轴转化为同步轴。
以下示例解释将回转轴转化为轨迹轴:
默认未启用FGREF指令(即计算进给速度时认为A轴的1°=1mm)
1, N10 G0 X0Y0Z0A0
N20 FGROUP(X,Y,Z,A)
N30 G91 G1 X10 Y10 Z10 A100 F100
此程序段中,FGROUP的作用是把A轴转化为轨迹轴。
对F的影响:
无 FGROUP(X,Y,Z,A)时,N30中各轴的实际进给速度计算如下:
实际运动时间(min)=运动轨迹总长/进给=(10^2+10^2+10^2)^(1/2)/100=17.32/100=0.1732min=10.4s
各轴速度=距离/时间:
sX=10/0.1732=57.73 mm/min
sY=10/0.1732=57.73 mm/min
sZ=10/0.1732=57.73 mm/min
sA=100/0.1732=577.3 °/min
有 FGROUP(X,Y,Z,A)时,N30中各轴的实际进给速度计算如下:
实际运动时间(min)=运动轨迹总长/进给=(10^2+10^2+10^2+100^2)^(1/2)/100=101.5/100=1.015min=60.9s
各轴速度:
sX=9.85 mm/min
sY=9.85 mm/min
sZ=9.85 mm/min
sA=98.5 °/min
此例中可以看出,使用FGROUP可避免因回转轴距离过大,造成的回转速度过快
以下示例解释将直线轴转化为同步轴
2, N10 G0 X0Y0Z0
N20 FGROUP(X,Y)
N30 G91 G1 X10 Y10 Z100 F100
此程序段中,FGROUP的作用是把Z轴转化为同步轴。
对F的影响:
有 FGROUP(X,Y)时,N30中各轴的实际进给速度
实际运动时间(min)=运动轨迹总长/进给=(10^2+10^2)^(1/2)/100=14.14/100=0.1414min=8.48s
各轴速度:
sX=70.7 mm/min
sY=70.7 mm/min
sZ=707 mm/min
无 FGROUP(X,Y)时,N30中各轴的实际进给速度
实际运动时间(min)=运动轨迹总长/进给=(10^2+10^2+100^2)^(1/2)/100=101/100=1.01min=60.6s
各轴速度:
sX=9.9 mm/min
sY=9.9 mm/min
sZ=99 mm/min
FGREF的用法:
适用工况:仅适用于有回转轴参与运动的多轴联动情况。
作用:给回转轴设定参考半径,用于将回转轴角度转换为长度来计算各矢量进给。
举例:
1, N10 G0 X0Y0Z0A0
N20 FGROUP(X,Y,Z,A)
N30 G91 G1 X10 Y10 Z10 A100 F100
N40 FGREF[A]=10
N50 G91 G1 X10 Y10 Z10 A100 F100
N30各轴的实际进给为:
各轴速度:
sX=9.85 mm/min
sY=9.85 mm/min
sZ=9.85 mm/min
sA=98.5 °/min
N50各轴的实际进给为:
实际运动时间(min)=运动轨迹总长/进给=(10^2+10^2+10^2+(100*10*2PI/360)2)开根号/100=24.58/100=0.246min=14.75s
PS: 10*2PI/360意为10mm半径的圆每度的长度。
各轴速度:
sX=40.65 mm/min
sY=40.65 mm/min
sZ=40.65 mm/min
sA=406.5 °/min
不很确定我的理解有没有问题,欢迎各位大神指正!