N10 PROC L6 ;SBLOF DISPLOF SAVE 定义L6宏子程序
N20 DEF INT _ACT,_NWT ; Integer Active Tool Data 定义变量 _ACT, _NWT
N30 STOPRE 停止预读
N40 GETSELT(_NWT) ; Order Tool Number 将预读的系统刀号,赋值在_NWT中
N50 _ACT=$TC_MPP6[9998,1] ; Current Tool Number 将主轴刀号,赋值在_ACT中
;N60 IF($P_SEARCH2<>0) GOTOF END2 若搜索(不带计算)功能激活,则跳转到END2程序段
;若取消,使用不带计算搜索时,将不执行换刀动作。
N70 IF(($P_SIM==1) OR ($P_ISTEST==1)) GOTOF END1 如果是sinutrain模拟或者测试测试激活,则跳转到END1
N80 IF ((_NWT==_ACT) AND (_NWT>0) AND (_ACT>0)) GOTOF INFO1 如果预备系统刀号==主轴系统刀号,且预备系统刀号>0,主轴系统刀号>0 跳转到INFO1
N90 IF ((_NWT==_ACT) AND (_NWT==0) AND (_ACT==0)) GOTOF INFO2 如果预备系统刀号==主轴系统刀号,且预备系统刀号==0,主轴系统刀号==0 跳转到INFO2
N100 STOPRE 停止预读
N105 D0 取消刀具补偿
N110 SPOS=$MN_USER_DATA_FLOAT[1] 主轴定位
N120 G153 G0 G90 Z=$MN_USER_DATA_FLOAT[0] Z值提到换刀点
N130 STOPRE 停止预读
;判断大刀、固定刀具
IF (_ACT<>0) and (_NWT<>0) 如果预备系统刀号≠0,主轴系统刀号≠0
if ($tc_tp3[_ACT]>1) or ($tc_tp8[_ACT] B_AND 'B1000000')) 如果是大刀 或者 是固定刀杯位
T0 换刀到T0
M206
stopre 停止预读
T=$TC_TP2[_NWT] T=预备刀具
ENDIF
endif
N140 END1:
N150 M206 ; Tool Change Order 换预备刀具
N160 END2:
N170 STOPRE
N180 M17 主轴定向
N190 INFO1:MSG("**** 预选刀具=主轴刀具****")
N200 G04F3
N210 MSG("")
N220 M17
N230 INFO2:MSG("****主轴无刀****")
N240 G04F3
N250 MSG("")
N260 M17
换刀程序举例.xlsx
精通840D以及SIMOTION系统,欢迎指教,QQ:316303936