服務(wù)木業(yè) 盡心盡力 用戶至上 質(zhì)量優(yōu)先
13662969526
東莞市建鋒刀具有限公司
地址:廣東省東莞市厚街鎮(zhèn)雙崗家具大道133號
電話:13662969526
傳真:0769-88688872
E-mail:jianfengtools@163.com
聯(lián)系人:張建平(總經(jīng)理)
手機:15817774865/13926865203
QQ:2568541098
1. 問題舉例
假設(shè)NC程序中一共使用了5把刀具,但只需要對第4把刀具的壽命進行監(jiān)控。當(dāng)?shù)?把刀具的壽命到達時,系統(tǒng)出現(xiàn)6413號報警。
此時,如果再次啟動NC程序,程序運行到了第2把刀具,才出現(xiàn)22069號報警,原因是此時,系統(tǒng)預(yù)讀出4號刀具無效,程序才會終止,不能繼續(xù)運行。
如果用戶的需求是只要有相關(guān)刀具壽命到達后,程序就不能再次啟動,也就是說從第1把刀具開始就不能運行,怎么辦呢?
2. 解決方案
使用程序事件,在程序啟動時就開始判斷相關(guān)刀具的壽命。因為NC程序可能很長,在程序啟動時不能讀出后面要用到哪些刀具,所以判斷刀具壽命時只能把主軸上和刀庫里所有的刀具都檢查一遍,如果有刀具壽命到達,不管程序里是否用到了,程序都不能啟動。
3. 測試條件
硬件:828D PPU280.3 Milling
軟件:V4.7+SP2+HF1
4. 實現(xiàn)方法
(1) 設(shè)置機床數(shù)據(jù)MD20108 Bit0=1,開啟程序啟動時的程序事件。
(2) 在制造商循環(huán)里新建程序CYCPE_MA.SPF。
(3) 程序內(nèi)容如下:
PROC CYCPE_MA SBLOF DISPLOF
DEF INT LOCATION_QTY ;刀庫刀位數(shù)量
DEF INT LOCATION_NUM ;刀庫刀位號
DEF INT EDGE_QTY ;刀沿數(shù)量
DEF INT EDGE_NUM ;刀沿編號
DEF INT T_NUM ;刀具編號
DEF INT D_QTY ;刀沿數(shù)量
DEF INT D_NUM ;刀沿編號
IF $P_PROG_EVENT==1 ;start part program
LOCATION_QTY=$TC_MAP[7] ;刀庫刀位數(shù)量
LOCATION_NUM=1 ;從1號刀位開始檢測
D_NUM=1 ;從1號刀沿開始檢測
T_NUM=$TC_MPP6[9998,1] ;讀主軸上的刀具號
IF T_NUM >0 ;如果有刀
D_QTY=$P_TOOLND[T_NUM] ;讀刀具的刀沿數(shù)量
D_NUM=1 ;從1號刀沿開始檢測
LAB01:
IF (($TC_TP9[T_NUM] ==1) AND($TC_MOP11[T_NUM,D_NUM]>0) AND ($TC_MOP2[T_NUM,D_NUM]<=0)) GOTOF LAB04;判斷刀具壽命加工時間是否到
IF (($TC_TP9[T_NUM] ==2) AND ($TC_MOP13[T_NUM,D_NUM]>0)AND ($TC_MOP4[T_NUM,D_NUM]<=0)) GOTOF LAB04;判斷刀具壽命工件數(shù)量是否到
IF (($TC_TP9[T_NUM] ==4) AND($TC_MOP15[T_NUM,D_NUM]>0) AND ($TC_MOP6[T_NUM,D_NUM]<=0)) GOTOF LAB04;判斷刀具壽命磨損量是否到
D_NUM=D_NUM+1 ;刀沿號+1
IF D_NUM<=D_QTY GOTOB LAB01 ;如果不是最后一個刀沿號,循環(huán)繼續(xù)讀
ENDIF ;如果有刀
LAB02:
T_NUM=$TC_MPP6[1,LOCATION_NUM] ;讀每個刀位里的刀具編號
IF T_NUM >0 ;如果有刀
D_QTY=$P_TOOLND[T_NUM] ;讀刀具的刀沿數(shù)量
D_NUM=1 ;從1號刀沿開始檢測
LAB03:
IF (($TC_TP9[T_NUM] ==1) AND($TC_MOP11[T_NUM,D_NUM]>0) AND ($TC_MOP2[T_NUM,D_NUM]<=0)) GOTOF LAB04;判斷刀具壽命加工時間是否到
IF (($TC_TP9[T_NUM] ==2) AND($TC_MOP13[T_NUM,D_NUM]>0) AND ($TC_MOP4[T_NUM,D_NUM]<=0)) GOTOF LAB04;判斷刀具壽命工件數(shù)量是否到
IF (($TC_TP9[T_NUM] ==4) AND($TC_MOP15[T_NUM,D_NUM]>0) AND ($TC_MOP6[T_NUM,D_NUM]<=0)) GOTOF LAB04;判斷刀具壽命磨損量是否到
D_NUM=D_NUM+1 ;刀沿號+1
IF D_NUM<=D_QTY GOTOB LAB03 ;如果不是最后一個刀沿號,循環(huán)繼續(xù)讀
ENDIF ;如果有刀
LOCATION_NUM=LOCATION_NUM+1 ;刀位號+1
IF LOCATION_NUM<=LOCATION_QTY GOTOB LAB02 ;如果不是最后一個刀位號,循環(huán)繼續(xù)讀
ENDIF
IF $P_PROG_EVENT==2 ;end part program
ENDIF
IF $P_PROG_EVENT==3 ;reset
ENDIF
IF $P_PROG_EVENT==4 ;power up
ENDIF
IF $P_PROG_EVENT==5 ;block search
ENDIF
M17
LAB04:
MSG("T"<<T_NUM<<" D"<<D_NUM<<"刀具壽命已到,程序不能運行。請重設(shè)置刀具壽命!")
G4 F1
GOTOB LAB04 ;循環(huán)顯示報警
5. 測試結(jié)果
當(dāng)監(jiān)控主軸上T2刀具壽命時,D2的設(shè)定值是100個工件,當(dāng)前剩余為0,所以T2號刀被禁用。啟動程序時,會出現(xiàn)報警:T2 D2 刀具壽命已到。
6. 相關(guān)系統(tǒng)變量
刀庫中的刀位數(shù)量:$TC_MAP7[刀庫號]
刀位里的刀具號:$TC_MPP6[刀庫號,刀位號]
刀具的刀沿數(shù)量:$P_TOOLND[刀具號]
刀具壽命監(jiān)控方式:$TC_TP9[刀具號] (0:不監(jiān)控,1:加工時間,2:工件個數(shù),4:磨損量)
刀具壽命加工時間設(shè)定值:$TC_MOP11[刀具號,刀沿號]
刀具壽命加工時間剩余值:$TC_MOP2[刀具號,刀沿號]
刀具壽命工件數(shù)量設(shè)定值:$TC_MOP13[刀具號,刀沿號]
刀具壽命工件數(shù)量剩余值:$TC_MOP4[刀具號,刀沿號]
刀具壽命磨損量設(shè)定值:$TC_MOP15[刀具號,刀沿號]
刀具壽命磨損量剩余值:$TC_MOP6[刀具號,刀沿號]