07-五轴编程
7.1 刀轴定向
7.1.1 定向运动
定向功能描述的是刀具在空间内的定向,通过编程回转轴的偏移来实现。
刀具的定向运动可以通过直接编程旋转角度、刀轴矢量来实现
7.1.2 定向方式
如图7.1所示的刀轴定向。刀轴定向编程方式有以下两种:
♠ 物理角度编程A、B、C
♠ 刀轴矢量编程:TX、TY、TZ
编程:
G01 X…Y…Z…A…B…C… ; G01表示线性轴的插补方式,X/Y/Z表示线性轴位置;旋转的插补方式默认为线性,A/B/C表示旋转轴位置
G01 X…Y…Z…TX=…TY=…TZ=… ; G01表示线性轴的插补方式,X/Y/Z表示线性轴位置;旋转的插补方式默认为线性,TX/TY/TZ表示刀轴矢量
说明:
♠ 上述两种刀轴定向方式均为模态的,属于同组指令,可以用其中一种编程方式取消另一种编程方式。
♠ 刀轴定向的两种编程方式,在同一程序段中只能编程一种。
♠ 样条插补指令(AKIMA、NURBS、CUBIC)中不支持旋转轴编程。
♠ 线性轴的所有插补指令(样条除外)中都可以加入旋转轴的A/B/C编程格式。
直接编程A/B/C时,支持以下编程格式:
♠ A..B...C… ;只编程旋转轴
♠ G00 X...Y...Z... A...B...C... ;旋转轴同线性轴的插补指令同行,同时执行
♠ G01 X...Y...Z... A...B...C...
♠ G02/G03 X...Y...Z... I...J...K...A...B...C...
♠ CIPD X...Y...Z... IM=...JM=...KM=...A...B...C...
♠ POLY X...Y...Z... A...B...C...
♠ G22/G23 X...Y...Z... I...J...K...A...B...C...
支持以下编程格式:
♠ TX=...TY=...TZ=...
♠ G00 X...Y...Z... TX=...TY=...TZ=...
♠ G01 X...Y...Z... TX=...TY=...TZ=...
♠ G02/G03 X...Y...Z... I...J...K...TX=...TY=...TZ=...
♠ CIPD X...Y...Z... IM=...JM=...KM=...TX=...TY=...TZ=...
♠ G22/G23 X...Y...Z... I...J...K...TX=...TY=...TZ=...
刀轴矢量使用TX,TY,TZ进行编程,如图7.2所示。刀轴矢量从刀具中心点指向刀柄中心。矢量的长度在此没有意义。没有编程的矢量组成部分设置为零。
说明:
♠ TX、TY、TZ是非模态的,没有编程的矢量组成部分,系统默认为0。例如:N10 TX=1 TY=1 TZ=1; N20 TX=1,在N20行中刀轴矢量的位置是TX=1 TY=0 TZ=0。
♠ 线性轴的所有插补指令(多项式和样条除外)中都可以加入旋转轴的TX/TY/TZ编程格式。
♠ 当加工坐标系中含有旋转、比例、镜像等框架时或者A轴带有零偏时,应使用刀轴矢量编程方式。也就是说,这种情况下旋转轴不能用物理角度进行编程。
旋转轴编程支持格式总结:
哪些线性轴的编程指令支持旋转轴,且支持旋转轴的哪种编程格式见下表:
|
A/B/C |
TX/TY/TZ |
备注 |
G00 |
√ |
√ |
|
G01 |
√ |
√ |
|
G02/G03 |
√ |
√ |
支持所有圆弧指令 |
G22/G23 |
√ |
√ |
|
CIPD |
√ |
√ |
|
POLY |
√ |
╳ |
|
AKIMA |
╳ |
╳ |
|
NURBS |
╳ |
╳ |
|
CUBIC |
╳ |
╳ |
|
注:√--表示支持;╳--表示不支持
7.1.3 旋转轴的模态与非模态
旋转轴是以度数来编程的,可以将旋转轴分为两种编程方式:
♠ 旋转轴旋转一圈(360)后仍然回到0度,无软限位和工作区限制,简称模态360。
♠ 旋转轴像线性轴一样编程,有软限位和工作区限制,简称非模态。
通过系统参数设置将旋转轴定义为模态或非模态。
♠ 模态360的特点是:旋转轴在0到359.999度之间进行内部转换。软限位开关和工作区极限对模态360的旋转轴无效。
♠ 非模态特点:和模态360对比,如正方向旋转,非模态旋转轴的一圈后显示360度,两圈后显示720度。同系统中的线性轴一样,软限位开关和工作区极限有效。
在模态360中,系统内部把轴的位置映射到0到359.999度。例如:旋转轴C正方向上的绝对位置420度,通过旋转轴的模态转换,映射到360度内就是60度。如图7.3所示:
在模态360方式中,可以通过G90、AC、ACN、ACP、DC编程旋转轴位置,在一圈范围内到达编程的目标位置。模态360的编程方法有:
♠ 绝对编程(AC、ACP、ACN、G90):
◊ 编程格式:A/B/C=AC(...);A/B/C=ACP(...);A/B/C=ACN(...);G90 A/B/C...
◊ AC、ACP、ACN都是非模态指令。
◊ 在0到359.999度范围内编程旋转轴的目标位置。
◊ ACP(正向)和ACN(负向)明确定义了旋转轴的运行方向。
◊ 当用AC或G90编程时,运行方向根据旋转轴的实际位置确定。如果目标位置大于实际位置,则轴正向运行,否则负向运行。
◊ AC绝对编程功能等同于G90,只不过G90是模态指令,而AC是非模态指令。
◊ 举例:C轴的起始位置是0度,如图7.4所示:
C=ACP(100) ;C轴正向旋转到达100度位置
C=ACN(300) ;C轴负向旋转到达300度位置
C=ACP(240) ;C轴正向旋转到达240度位置
C=AC(0) ;C轴负向旋转到达0度位置
♠ 沿最短路径绝对编程(DC):
◊ 编程格式:A/B/C=DC(...)
◊ DC是非模态指令。
◊ 在0到355.999范围内编程旋转轴的目标位置。如果编程的目标点小于0或大于360度,则报警!
◊ DC是旋转轴在一圈范围内以最短路径接近编程的绝对位置。根据当前的实际位置,控制系统计算出旋转方向和剩余行程,如果剩余行程在两个方向上都相同(180度),首先选择正方向。
◊ 举例:C轴的起始位置是0度,如图7.5所示:
C=DC(100) ;C轴沿最短路径运行到100度位置
C=DC(300) ;C轴沿最短路径运行到300度位置
C=DC(240) ;C轴沿最短路径运行到240度位置
C=DC(60) ;C轴沿最短路径运行到60度位置,在两个方向上都是180度,优先选择正方向
♠ 增量编程:IC、G91
◊ 编程格式:A/B/C=IC(...);G91 A/B/C...
◊ IC是非模态指令;
◊ 编程的目标值可以是任意值。
◊ 编程值的符号表示旋转轴运行方向。
◊ IC相对编程功能等同于G91,只不过G91是模态指令,而IC是非模态指令。
◊ 举例:
C=IC(720) ;C轴正向增量运行720度
C=IC(-180) ;C轴负向增量运行180度
说明:
♠ 模态360人机显示:始终在0到359.999之间,在正向超过360度时开始从0递增显示。在负向超过0度时从360度递减显示。单位:度。
♠ 模态360下软限位和工作区极限无效,意味着操作范围是无限的,是持续旋转的旋转轴。
非模态支持的编程指令有:AC、G90、DC、IC、G91。
♠ 绝对编程(AC、G90):
◊ 编程格式:A/B/C=AC(±...);G90 A/B/C...
◊ AC是非模态指令;
◊ 编程的旋转轴目标位置值可以是任意值,但受软限位限制。
◊ 运行方向根据编程的目标值来确定。
◊ 在非模态下,编程ACN和ACP报警。
◊ AC的功能等同于G90,只不过G90是模态指令,而AC是非模态指令。
◊ 举例:C轴的起始位置是0度。
C=AC(-100) ;C轴负向运行到-100度位置
C=AC(1500) ;C轴正向运行到1500度位置
♠ 沿最短路径绝对编程(DC):
◊ 编程格式:A/B/C=DC(...)
◊ 非模态轴中的DC编程规则与模态轴中的DC相同。
举例:
C=AC(7200) ;旋转轴C运行到7200度位置,运行方向根据起始位置决定。
C=DC(300) ;C轴沿最短路径接近模态的位置300度,也就是说沿负向运行了60度,停在了绝对位置7140度处。
C=AC(7000) ;C轴运行到绝对位置7000度,也就是说,C轴沿负方向运行了140度。
♠ 增量编程(IC、G91):
◊ 编程格式:A/B/C=IC(±...);G91 A/B/C...
◊ 非模态旋转轴的增量编程与模态360的增量编程规则相同。只不过非模态旋转轴编程的目标位置应该在正负软限位范围内,超出则要报警。
◊ IC是非模态指令,功能同G91。只不过G91是模态指令,而IC是非模态指令。
说明:
♠ 非模态的人机显示:一圈后显示360,二圈后显示720,依次类推,原理同线性轴。
♠ 旋转轴在非模态方式下工作时,同线性轴,软限位和工作区极限有效。如果编程的目标值超出正负软限位范围要报警。
旋转轴的位置编程格式汇总:
指令格式 |
模态360下旋转轴的编程范围 |
非模态下旋转轴的编程范围 |
G90,AC |
0~359.999 注:超过编程范围报错 |
软限位范围,超出则报错 |
G91,IC |
可以是任意值 |
软限位范围,超出则报错 |
DC |
0~359.999 注:超过编程范围报错 |
同模态360 |
ACP |
0~359.999 注:超过编程范围报错 |
不支持此种编程方式 |
ACN |
0~359.999 注:超过编程范围报错 |
不支持此种编程方式 |
对于VMC0656e机床来说,只有C轴可以设为模态360方式。通过系统参数AXROTUNLIMITED和AXISROLLOVER进行模态360的设置,具体见参数手册。
7.2 RTCP补偿
7.2.1 RTCP功能介绍
在五轴加工时,对于不具备RTCP功能的五轴机床,由于刀具的摆动造成刀具中心点轨迹偏离编程点轨迹。如图7.6中的曲线1,刀具中心点是一段复杂的曲线而不是编程的直线。而具备RTCP功能的五轴机床,通过旋转中心的补偿运动,使得刀具中心点轨迹始终与编程轨迹保持一致,如图7.6中的曲线2。
RTCP功能使得CAM编程时,可以直接根据零件轮廓进行编程,而不需要考虑机床的结构和刀具长度。
7.2.2 RTCP指令格式
RTCPON ;开启RTCP功能
RTCPOFF ;关闭RTCP功能
注意:
♠ 系统上电后,默认为RTCPOFF。
♠ 在程序运行期间,遇到RTCPON,打开RTCP功能。程序一直运行到遇到RTCPOFF为止,关闭RTCP功能。如果程序运行结束也没有遇到RTCPOFF,则程序运行结束后一直保持RTCPON状态。
♠ 按“复位”键,RTCP功能关闭。
♠ 手动情况下,通过MDA手动输入RTCPON指令并执行,打开RTCP功能。
♠ 系统开启RTCP功能后,系统主界面上显示“RTCPON”字样;关闭RTCP功能后,系统主界面上显示“RTCPOF”信息。
♠ RTCPON时不允许编程刀偏(T、D)和零偏(G54~G59)指令。也就是说,应该先激活零偏和刀偏,再开启RTCP。
7.2.3 RTCP支持G0分段
打开RTCP就会对曲线进行分段,新版本增加了RTCP支持G0分段功能。
RTCPLINEERRORG0预分段长度,合成轴长度大于该参数,就会进行与分段处理,使分段后的长度不大于该数值。默认值:0.1,范围:0.0001-10.
RTCPCHORDERRORG0 分段弦高误差,在预分段之后两个端点的弦高误差小于该数值,则不再需要在进行分段,若大于该数值,则还需要进行弦高误差分段。默认值:0.005,范围:0.0001-1.
RTCPDMING0 最小分段长度,分段的最小长度。