WFL 車銑複合機床(chuáng)除了有強大的(de)多軸加工功能,還能自動找正零件和在線測量零件。有了這些功能,車銑複合(hé)機床不僅能夠大大(dà)提高零件的加工精度,而(ér)且(qiě)能夠大大(dà)提(tí)高零件的加工效率。
WFL 車銑(xǐ)複合機床的功能比較強大、效率比較高,不僅(jǐn)有車、多軸銑和鏜孔,還(hái)有多種測量循環,因此編程就比較複雜。實際生(shēng)產中,雖然手工編程也(yě)能(néng)實現這些功能,但是手工編程也(yě)有一定局限(xiàn)性(xìng),因此實現車銑複合機床的電腦自動編程,是一件很(hěn)有意義的事情。
以下就以WFL 機床的一(yī)個簡(jiǎn)單的測量循環“PROBE”為例,敘述如何使用NX軟件編程,以及後置處理輸(shū)出WFL車銑複合機(jī)床測(cè)量循(xún)環的方法。
一、機床測量循環的代碼定義
要寫出能輸出(chū)“PROBE”的正確的後置處理程序,首先必須要理解WFL 車銑複合機床(chuáng)測量循環“PROBE”的含義———該測量循環的含義是在(zài)隨機軸上測量軌跡點(diǎn)。該測量循環的格式為(wéi):PROBE(AX,DIS,MP,NUM),各(gè)參數(shù)的含義如下。
◎AX:測量軸。測(cè)頭由AX 定義(yì)的運動(dòng)軸以很快的進給率(一(yī)般是以G0的速度) 接近工件,然後進行測(cè)量,在WFL車銑(xǐ)複合機床上有(yǒu)三個測量軸,X1、Y1和Z1,即機床的X、Y 和Z軸。
◎DIS:測頭移動的距離(lí)。測量軌跡點(即零件上(shàng)要測量的(de)點)到起(qǐ)始點(開始執行G1的點) 之間的距離必須在(zài)DIS定義的距離之內(nèi),即二者距離必須小於該值。如果測量(liàng)軌跡點與起始點之間的距離大於該值時,測頭是測量不到(dào)測量軌跡點的。DIS 值可以(yǐ)為(wéi)正也可以為負,分別表示測量軌跡的運動方向是(shì)沿著測量軸的正方向還是負方向。
◎NUM:在第一次測量軌跡點之後,測頭會沿測量軸稍回撤,然後以正常的測量進給率重複測軌跡點,重複的次數由(yóu)NUM指定,一般是測量3次。
◎MP:是指定(dìng)測量結果的存儲位置。測量結果輸出到機床的內存單元MC_P〔0〕中,同時被存儲到以MP為下標的機(jī)床內存中,變成測量點MC_POINT〔MP〕。
我們隻要在(zài)後置處理的(de)程序中正確定義了這4 個參數,並(bìng)實現其輸出,就可以輸出該測量(liàng)循環(huán)的正確機床代(dài)碼。以下的一段(duàn)機床代碼就是PROBE 應用的一個實際的例子,測量的零件和測量點如圖1所示。
…
N035 G54
N040 G0 X1=48 Y1=0 C1=0 Z1=10
N045 PROBE (“Z1”,-15,1,3)
N050 G0 X1=93
N055 G0 Z1=-50
N060 PROBE (“Z1”,-15,2,3)
在這段(duàn)機床代碼(mǎ)中,PROBE(“Z1”,-15,1,3) 的測量點為MP1,MP1的位(wèi)置由該代碼的上一句程序指定。該例中測量點MP1的位置為(48,0,0),測頭沿機床Z1軸的負方向進行測量,定(dìng)義的(de)測頭移動距離為15,測頭的測量起始點為Z1=10 的位置,測(cè)量軌跡點(diǎn)自Z1=0 的位置,測量軌跡點到測量(liàng)起始點之間的距離為10,小於測頭移動距離15,測(cè)量結果(guǒ)存儲在機(jī)床內存MC_P〔0〕和存儲單元MC_POINT〔1〕中,重複測量(liàng)3次。
PROBE(“Z1”,-15,2,3) 的測量點是MP2,MP2 的位置由該代碼的前(qián)兩句程序指定,該例中測量點MP2 的位(wèi)置為(93,0,0),測頭(tóu)沿機(jī)床Z1軸的負方向進行測量,定義的測頭移動距離為15,測頭的測(cè)量起(qǐ)始點為Z1=-50 的(de)位置,測量軌跡點(diǎn)自Z1=-60 的位(wèi)置(zhì),測量軌跡點到(dào)測量起始點之(zhī)間的距離為10,小於測頭移動距離15。測量結果存儲在機(jī)床內(nèi)存MC_P〔0〕和存儲單元MC_POINT〔2〕中(zhōng)。
此處需(xū)要注意(yì)的是:此處為堆棧存儲的方式,在完成第二次測量後,MC_P〔0〕內存儲的值自動移動(dòng)到MC_P〔1〕,最大能到MC_P〔3〕,該點重複測量3次。
二、如何用後置(zhì)處理器(qì)實現機床代碼的正確輸出
在NX 6.0 中編寫該測量循環(huán)的前置比較簡單,這種測量(liàng)循環在NX 6.0中用(yòng)操作“probe_point”就很容易(yì)寫出正確的前置,後(hòu)置處理的任務(wù)就是把前置程序翻譯成WFL 車銑複合機床能識別的機床代碼PROBE(AX,DIS,MP,NUM)。請注(zhù)意:後麵所提到程(chéng)序的執行程序皆為後置(zhì)處(chù)理時的執行順序。以下所述就是定義並如何輸出正確的機(jī)床代碼的方法和步驟(zhòu)。
1.輸出(chū)測量軸AX
實現這一輸出的後置處(chù)理程序如下(後置(zhì)處理的程序(xù)皆為(wéi)TCL語言編寫)。
global mom_probe_direction
global axis
global dis
global MP
if{$ mom_probe_direction = =“XAXIS”} {
set axis X1}
if{$ mom_probe_direction = =“YAXIS”} {
set axis Y1}
if{$ mom_probe_direction = =“ZAXIS”} {
set axis Z1}
MOM_output_literal“PROBE($axis,$dis,$MP,3)”
這段後置處理程序用來定義輸出的主程序。mom_probe_direction 為NX 的係統變(biàn)量, 和MP 均為用戶自定義變量。mom_probe_direction在係統裏(lǐ)有三個取值,分(fèn)別為“XAXIS”、“YAXIS”和“ZAXIS”。當NX 操作裏(lǐ)的測量方向為X 軸時,其取值為(wéi)“XAXIS”;當NX操作裏的(de)測量方向為(wéi)Y 軸時,其取值為“YAXIS”;當NX操作裏的測(cè)量方向為Z軸時,其取值(zhí)為“ZAXIS”。這樣(yàng),就可以利用這個係統變量作為條件,用if 判斷語句來進行判斷,對應輸出程序中的變量“ ”,也就是PROBE(AX,DIS,MP,NUM)中的 “AX”的值。程序的解釋為:當mom_probe_direction 為(wéi) “XAXIS”時,則將“X1”賦值給“axis”;當mom_probe_direction為“YAXIS”時,則將“Y1”賦值給“ ”;當mom_probe_direction 為“ZAXIS”時,則將(jiāng)“Z1”賦值給“ ”,最後(hòu)輸出。
程序當中的部分參數含義為:globe 表示全局變量;if表(biǎo)示判斷條件(jiàn);$為取值符;set 表示賦值給其後(hòu)麵的參數(具體的介(jiè)紹請參考TCL 語言的教材)。
2.輸出DIS
“DIS”的輸出要分為以下三(sān)個步驟:
(1)計算測量起始點的值。在進行(háng)每次測量循環(huán)操作前,運行下列程序,可以計(jì)算出(chū)起始點(diǎn)的X、Y 和Z坐標值(其值用參數為X1_bofore、Y1_bofore 和Z1_bofore 定義,皆為用戶自定義變量(liàng))。在下(xià)麵(miàn)的(de)TCL 程序中,mom_mcs_goto 為NX 的係統變量,其存儲方(fāng)式是一個(gè)數組,其中mom_mcs_goto
(0) 自(zì)動存儲當前加工坐標係X 的值,mom_mcs_goto
(1) 自動存儲當前加工(gōng)坐標係Y 的值,mom_mcs_goto
(2)自動存儲當(dāng)前加工坐標係Z的值,這些變量與CLSF 文(wén)件中的坐標值采用的坐標值一致。
global mom_mcs_goto
global X1_bofore
global Y1_bofore
global Z1_bofore
set X1_bofore$ mom_mcs_goto(0)
set Y1_bofore$ mom_mcs_goto(1)
set Z1_bofore$ mom_mcs_goto (2)
(2)計算測量軌(guǐ)跡點。在(zài)進行每(měi)次測量循環操作後,執行下列程序,可以計算出(chū)測量軌跡點的X、Y 和Z坐標值,其值分別用參數X1_when、Y1_ when和Z1_ when 定義(三者(zhě)皆為用戶自定義變量)。
global mom_mcs_goto
global X1_ when
global Y1_ when
global Z1_ when
set X1_ when $ mom_mcs_goto (0)
set Y1_ when $ mom_mcs_goto (1)
set Z1_ when $ mom_mcs_goto(2)
(3)計算DIS。在進行測(cè)量(liàng)循環操作最後,下列程序可以計算出“DIS”。“DIS”在後置處理的程序中是用用戶(hù)自定義的變量“dis”來(lái)表示。如果測量起始點減去(qù)測量軌跡點的值大(dà)於零,則說明測量軌跡是沿著(zhe)測量軸負向運動,此時(shí),用測量軌跡點的坐標值減去測量起(qǐ)始點的坐標值,再減去一個常量得到DIS,則可以(yǐ)保證測頭(tóu)的移(yí)動距離大於測量軌跡點到起始點之間的距離。如果測量起(qǐ)始點減去測量(liàng)軌跡(jì)點(diǎn)的值小於零,則說明測量軌跡是沿著測量軸的正向運動,此時,用測量軌跡點的坐(zuò)標值減去(qù)測量起始點的坐標值,再加上一個常量,即可得到DIS,則可以保證測頭的移動距離大於(yú)測量軌跡(jì)點到起始點之間(jiān)的(de)距離。NX後置處理程序如下。
if{$ X1_bofore-$ X1_ when>0} {
set dis [expr($ X1_ when-$ X1_bofore-10)]}
if{$ X1_bofore-$ X1_ when<0} {
set dis [expr($ X1_ when-$ X1_bofore+10)]}
if{$ Y1_bofore-$ Y1_ when>0} {
set dis [expr($ Y1_ when-$ Y1_bofore-10)]}
if{$ Y1_bofore-$ Y1_ when<0} {
set dis [expr($ Y1_ when-$ Y1_bofore+10)]}
if{$ Z1_bofore-$ Z1_ when>0} {
set dis [expr($ Z1_ when-$ Z1_bofore-10)]}
if{$ Z1_bofore-$ Z1_ when<0} {
set dis [expr($ Z1_ when-$ Z1_bofore+10)]}
3.輸出(chū)MP
在一個測量程序(xù)中,可能會測量很多個點,這就需要很多(duō)次(cì)PROBE 測(cè)量循環,每一個(gè)測量循環的結果都要占一個存儲內存,所以每一個“MP”都應該有不同的值,因此可以用下麵的程序分(fèn)兩個步驟來輸出“MP”。
(1)初始化MP為0。在第一次測量程序開始執行之前執行下列(liè)後置處理程序:
global MP
Set MP 0
該程序將MP初始化為0。
(2)每進行一次測量循環操作,執行一次下(xià)列程序,則可以實現參數“MP”的增加,因此可以保證(zhèng)每一個“MP”的值都不(bú)同,並且從“1”開始。每進行一次測量操作,就遞增一(yī)次。
global mom_probe_cycle_type
global MP
if { $ mom_probe_cycle_type!=0 } {
set MP[expr($MP+1)]}
其中,mom_probe_cycle_type 為係統變量,在執行數控程序的過程中,當有測量循環操作時,其賦值不等於0,當沒有進行測量操作時,其(qí)賦值就是0。從NX 的第一個操作開始就(jiù)進行掃描,每當mom_probe_cycle_type 不為零時,MP就自加一次。因此我們就可以利用這個變量作(zuò)為條件(jiàn),來完成“MP”的賦值和輸(shū)出。
4.輸出NUM
因(yīn)為一般情況(kuàng)下,重複(fù)測軌(guǐ)跡的次數為3 次,所以在輸出的主程序(xù)中,已經直接定義了(le)“NUM”為“3”,因此可以直接輸出(chū),不再(zài)需(xū)要對該(gāi)參數進行定義。
三、結束語
經驗證,用該方法寫出的後(hòu)置處理程序,可以(yǐ)輸出正確無誤的機床代碼PROBE(AX,DIS,MP,NUM),如果按(àn)照此方法將後置處理程序加以完善,就可以輸出完整(zhěng)、正確的WFL車銑複合機床其他測量循環的機床代碼,實現(xiàn)該機床的測量(liàng)循環的電腦(nǎo)編程,就可以充分發揮該機床的優點,大大提高加工效率和(hé)可靠性。
如果您(nín)有機床行業、企業相關新聞(wén)稿件發表,或(huò)進行(háng)資訊合(hé)作,歡迎聯係本網(wǎng)編輯部, 郵箱:skjcsc@vip.sina.com