我们常见的加工中心一般配置斗笠刀库、圆盘刀库、链式刀库等,但在雕铣机、小型加工中心,木工机床等场合,也经常使用直线刀库实现自动换刀。之所以叫直线刀库,是因为刀具呈直线排列,换刀时,数控系统控制主轴依次实现还刀和取刀动作。
直线刀库通常带有刀库伸缩功能,但也有一些是直接固定在机床上,需要轴(通常是Y轴)移动实现还刀,出刀动作。
直排刀库-伸缩式
直排刀库-固定式
T指令的产生
想要了解刀库换刀逻辑,首先要知道T指令是如何产生,经过哪些处理,然后控制刀库动作。通常刀库换刀,需要宏程序和PLC配合完成,由宏程序控制换刀过程中的进给轴移动,在不同的阶段发送信息给PLC,最后由PLC把已换好的刀号发给NC显示,两者配合完成换刀过程。
地址
解释
备注
#4119
程序输入的换刀T指令
只读
F5
NC换刀指令输出
NC输出给PLC
G25
换刀后的刀具号
换刀完成后告知NC当前刀号
换刀控制
了解了T指令,再回到直线刀库。直线刀库换刀需要经过定位-还主轴刀-移动-再定位-取指令刀五个过程。由于直线刀库安装要求不高,有时候刀位间距有误差,刀套的平行度也会有误差,编写程序时需要考虑到这些因素,以便实现一种通用的换刀程序,可以忽略上述误差。
下面以K2000Ci(或K2000Fi)系统的宏B程序为例,说明直线刀库的换刀过程。这里有个地方需要特别关注:
X
#[915+3*[#1512-1]]
一般宏程序是变量值在不同的变量号之间传递,但此处,是将变量号也作为变量和其它变量的值一起计算后作为变量号执行,这大大节省了循环计算的步骤。
本换刀程序如果采用无此功能的宏A编写,此程序将超过200行。
变量声明
变量号
解释
值
#903
换刀时Z轴抬高值
100mm,相对于换刀点
#904
XY轴移动速度
8000mm/min
#905
Z轴移动速度
5000mm/min
#906
Y轴还刀和出刀速度
2000mm/min
#907
刀库推出功能
1:有,0:无
#908
换刀预停止位置
160mm,相对于换刀点
#915
1号刀X轴坐标
根据刀库设置
#916
1号刀Y轴坐标
根据刀库设置
#917
1号刀Z轴坐标
根据刀库设置
…..
n号刀(XYZ)轴坐标
....
#948
12号刀X轴坐标
根据刀库设置
#949
12号刀Y轴坐标
根据刀库设置
#950
12号刀Z轴坐标
根据刀库设置
#1512
NC保存刀具号
D23,上次换刀完成的刀号
#1513
NC换刀命令刀具号
D24,本次换刀命令刀号
换刀程序
程序
注释
O9006 ;
G90 G49 G15 ;
M05 ;
主轴暂停
M19 ;
主轴定向
N10 IF[#1015==1] GOTO 260 ;
如果还刀指令和当前刀一致,结束程序
N60 IF[#1512==0] GOTO 260 ;
如果保存的上次刀号为0,结束程序
N61 IF[#907==1] GOTO 75 ;
刀库有推出功能,跳转至75
N70 G53 G01 X
#[915+3*[#1512-1]] Y[
#[916+3*[#1512-1]]+
#908] F#904 ;
计算当前刀还刀XY坐标
N71 IF[#907==0] GOTO 80 ;
如果刀库无推出功能,跳转至80
N75 G53 G01 X
#[915+3*[#1512-1]] F#904 ;
有推出功能时,X定位
N80 G53 G01 Z#[917+3*[
#1512-1]] F#905;
执行Z轴还刀定位
N81 IF[#907==1] GOTO 86 ;
刀库有推出功能,跳转至86
N85 G53 G01 Y
#[916+3*[#1512-1]] F#906;
刀库无推出功能,Y轴移动到还刀位置
N86 IF[#907==0] GOTO 100 ;
刀库有推出功能,跳转至100
N90 M52 ;
刀库推出
G4 X0.5 ;
N100 M50 ;
松刀
G4 X0.5 ;
N105 M69 ;
主轴无刀置位
N106 G91 G01 Z#903 ;
主轴抬起
N200 IF[#907==0] GOTO 2000 ;
刀库无推出功能,跳转至2000
N2001 G90 G01 G53 X
#[915+3*[#1513-1]] F#904 ;
X轴移动到取刀位置
N2002 IF[#907==1] GOTO 201 ;
刀库有推出功能,跳转至201
N2000 G90 G01 G53 X
#[915+3*[#1513-1]]
Y
#[916+3*[#1513-1]] F#904 ;
XY轴移动到取刀位置
N201 G53 G01 Z
#[917+3*[#1513-1]] F