數(shù)控系統(tǒng)的數(shù)據(jù)處理是指NC程序送入零件緩沖區(qū)之后、插補之前的準(zhǔn)備工作,主要包括譯碼、運動軌跡計算、進(jìn)給速度計算三部分。選用合理的數(shù)據(jù)處理方法將大幅提高編程的正確性和工作效率,且便于數(shù)據(jù)校對,尤其適合批量零件和有規(guī)律零件程序加工。數(shù)據(jù)處理方法是否合理主要取決于其連續(xù)性、時間效率和資源占用情況。目前,對傳統(tǒng)數(shù)據(jù)處理方法改進(jìn)的數(shù)據(jù)處理方法主要有:資源重疊流水處理的解釋方法、目標(biāo)碼編譯方法、解釋一編譯方法。它們各有優(yōu)點和不足,如在不同的環(huán)節(jié)加快了處理速度,減少了等待時間,但就整體的連續(xù)性和時間效率而言,還不夠完善。為了進(jìn)一步提高加工連續(xù)性和加工效率,本文針對各算法的優(yōu)缺點提出了一種新的數(shù)據(jù)處理方法,更加適用于制碼系統(tǒng)的加工處理。
1數(shù)控制碼系統(tǒng)
制碼系統(tǒng)由三個步進(jìn)電機(jī)驅(qū)動,在圓形小零件上制碼。零件圓面上需以環(huán)形刻兩組對稱的、由字母和數(shù)字組成的標(biāo)記碼。規(guī)定每個零件上的標(biāo)記碼字符個數(shù)相同(取6位字符為例),即每個零件加工時編譯的目標(biāo)碼大小一樣,所占內(nèi)存空間相同。標(biāo)記碼主要有兩部分:整批零件的代號(相同)和每個零件單獨的標(biāo)記碼(不同)。刀具上固定需要用到的字母刀和數(shù)字刀,根據(jù)轉(zhuǎn)動刀架和轉(zhuǎn)動零件對準(zhǔn)零件上需要刻碼的位置。所以這三個步進(jìn)電機(jī)分別用來控制刀架的轉(zhuǎn)動、零件的位置和刀架的深淺。其數(shù)據(jù)處理就是對固定位數(shù)的標(biāo)記碼進(jìn)行譯碼,主要特點是:每個零件的標(biāo)記碼可作為一個代碼段來處理;可以針對標(biāo)記碼中整批零件代號相同和各零件代碼不同的特點進(jìn)行相應(yīng)的處理;零件上刻的是兩組完全相同的標(biāo)記碼,即處理的數(shù)據(jù)相同,只是改變了位置;每個零件加工的銜接速度很快,數(shù)據(jù)處理需要有很好的連續(xù)性。針對制碼系統(tǒng)中數(shù)據(jù)處理的特點,結(jié)合各數(shù)據(jù)處理方法,研究出一種建立在已有數(shù)據(jù)處理方法基礎(chǔ)之上、更適用于制碼系統(tǒng)數(shù)據(jù)處理的方法。
2傳統(tǒng)的數(shù)據(jù)處理方法
傳統(tǒng)的數(shù)據(jù)處理方法有解釋方法和編譯方法兩種。
(1)解釋方法
解釋方法是將加工程序整理成某種形式,在加工時由主控程序順序取出,分析判斷后,進(jìn)行譯碼處理,并對零件加工程序逐條進(jìn)行解釋、插補和控制。這種方法占用內(nèi)存少、操作簡單,但存在難以克服的缺點:各模塊問的控制是順序的,如果對一個程序的解釋過程較慢而使機(jī)床具有一定的等待時間,則加工出來的工件就會出現(xiàn)明顯的粗糙度;不易處理各程序間的轉(zhuǎn)接,易形成停頓與過切。
(2)編譯方法
編譯方法是先對加工程序全部編譯,將結(jié)果放到緩沖區(qū)中,當(dāng)開始加工時,直接啟動插補中斷程序。從緩沖區(qū)中取出編譯好的數(shù)據(jù),進(jìn)行計算并控制加工。這種加工方法的優(yōu)點是加工速度快、效率高;缺點是編譯與加工之間存在時間間隔。
3改進(jìn)的數(shù)據(jù)處理方法
3.1 資源重疊漉水處理的解釋方法
針對傳統(tǒng)方法的缺點,對傳統(tǒng)的解釋控制進(jìn)行改進(jìn),即資源重疊流水處理的解釋控制方法。時間重疊是流水處理的關(guān)鍵。它不僅是CNC裝置處在NC工作方式時,程序輸入、譯碼、插補和位控加工四個處理過程的時間資源重疊,而且譯碼過程所包含的各子過程,即程序裝入、語法檢查、解釋和刀具補償四個子過程之間也運用了時間資源重疊。
在NC工作方式下。若用t1、t2、t3、t4分別表示程序輸入、譯碼、插補和位控加工四個子過程的處理時間,則加工一個零件程序段的數(shù)據(jù)轉(zhuǎn)換時間將是t=tl+t2+t3+t4;在數(shù)據(jù)處理的譯碼過程中,tl、t2、t3、t4分別表示程序裝入、語法檢查、解釋和刀具補償四個子過程的處理時間,則數(shù)據(jù)處理的總時間將是t=t1+t2+t3+t4。如果以傳統(tǒng)的解釋方式順序處理,即第一個數(shù)據(jù)處理完后再處理第二個數(shù)據(jù),則在兩個程序段的輸出之間將有一個時間長度t的時間間隔,其時空關(guān)系如圖1(a)所示。這種時間間隔反映在電機(jī)上就是電機(jī)時轉(zhuǎn)時停,反映在刀具上就是刀具時走時停。不管這種時間間隔多么小,時走時停在數(shù)控加工中都是不允許的。
采用重疊流水處理技術(shù)可以消除這種間隔,重疊流水處理后的時間空間關(guān)系如圖1(b)所示。其關(guān)鍵是時間重疊,即在一段時間間隔內(nèi)不是處理一個過程,而是處理兩個或更多的子過程。經(jīng)過時間重疊流水處理后,每個零件程序段的輸出之間、每個數(shù)據(jù)處理之間不再有間隔,從而保證電機(jī)轉(zhuǎn)動和刀具移動的連續(xù)性,加快數(shù)控加工的速度。
該方法節(jié)約了系統(tǒng)資源,有效防止了內(nèi)存碎片的形成,適應(yīng)大程序譯碼和復(fù)雜數(shù)據(jù)處理。
3。2目標(biāo)碼編譯方法
目標(biāo)碼編譯是執(zhí)行一個零件的加工程序,只需在開機(jī)后首次運行時進(jìn)行編譯,然后將得到的目標(biāo)碼存放在RAM中,下次加工同樣的零件時,無需再次對原零件程序進(jìn)行編譯,直接執(zhí)行目標(biāo)碼即可,從而減少了每次重新編譯所占用的時間。
3。3解釋一編譯方法
單純使用傳統(tǒng)的解釋方法或編譯方法都有不可避免的缺點,解釋一編譯方法是將兩種方法相結(jié)合進(jìn)行數(shù)據(jù)處理的方法。在開始加工前先開辟一段內(nèi)存作為緩沖區(qū)(根據(jù)具體情況分配),接著一次性編譯若干程序段,直到緩沖區(qū)滿。然后,從緩沖區(qū)中取出已編譯好的程序段進(jìn)行加工處理。這里必須給加工處理完的程序置一標(biāo)志,例如,定義一標(biāo)志位bufflag,初始為False,程序加工處理完后置為True,則當(dāng)所有程序的標(biāo)志位都為True時清空緩沖區(qū),繼續(xù)裝入下一批編譯的程序段。譯碼緩沖區(qū)在譯碼進(jìn)程初始化時被開辟,在譯碼進(jìn)程被殺死時釋放。在譯碼緩沖區(qū)的生命期間,數(shù)據(jù)被不斷地寫入、修改、讀出與清除。對于某一個緩沖區(qū),它不斷地接收新的零件程序段,不斷地被各子進(jìn)程輪流處理。這種將大量加工程序分成若干程序段進(jìn)行編譯加工的方法,可有效減少編譯等待時間,增加加工效率。
4適用于制碼系統(tǒng)數(shù)據(jù)處理的新方法
上述幾種數(shù)據(jù)處理方法都有其不足,如資源重疊流水處理解釋方法只是縮短了進(jìn)程間的等待時間,其解釋階段不如目標(biāo)碼編譯方法效率高,整個譯碼處理效率不如解釋一編譯方法;目標(biāo)碼編譯方法只是優(yōu)化了編譯階段的數(shù)據(jù)處理;解釋一編譯方法結(jié)合解釋方法和編譯方法,提高了整體數(shù)據(jù)處理效率,但數(shù)據(jù)解釋送緩沖區(qū)階段不如資源重疊流水處理解釋方法效率高,緩沖區(qū)編譯階段又不如目標(biāo)碼編譯方法效率高。
綜合分析上述各方法的優(yōu)缺點,為制碼系統(tǒng)研究出一種更優(yōu)的數(shù)據(jù)處理方法。主要思想是:總體運用解釋一編譯方法,開辟一段內(nèi)存作為緩沖區(qū),先一次性編譯若干代碼段存入緩沖區(qū),直到緩沖區(qū)滿。然后,從緩沖區(qū)中取出已編譯好的代碼段進(jìn)行加工處理。而在一次性編譯若干代碼段中各條代碼時,采用資源重疊流水處理的解釋方法進(jìn)行編譯處理。并且在編譯處理時綜合采用目標(biāo)碼編譯方法,先判斷各標(biāo)志位,如具有相同代碼段,就將該段相同代碼編譯后的目標(biāo)碼存入RAM中,下次處理相同數(shù)據(jù)時直接調(diào)用RAM中的目標(biāo)碼即可。其數(shù)據(jù)處理過程如下:
(1)定義緩沖區(qū)數(shù)據(jù)格式
根據(jù)零件標(biāo)記碼的固定長度分配一定內(nèi)存空間作為緩沖區(qū),需兩個一樣大小的緩沖區(qū),一個用來存放若干程序殷(一個零件的6個標(biāo)記碼);另一個用來存放譯碼結(jié)果。緩沖區(qū)的數(shù)據(jù)結(jié)構(gòu)定義如下:
每個緩沖區(qū)設(shè)置6小塊緩沖區(qū)BUF0~BUF5,用來存放每個零件的6位標(biāo)記碼,并置相應(yīng)的bufflag為1;6塊緩沖區(qū)滿后,再依次進(jìn)行數(shù)據(jù)譯碼處理,處理結(jié)果放入另一緩沖區(qū),同時置相應(yīng)的bufflag為2;當(dāng)6塊緩沖區(qū)全部準(zhǔn)備好(bufflag為2),則進(jìn)行加工,加工完的標(biāo)記碼所對應(yīng)的緩沖區(qū)就置bufflag為O,繼續(xù)存放下一個零件標(biāo)記碼。
(2)采用資源重疊流水處理的解釋方法進(jìn)行譯碼
?、購牡谝粋€緩沖區(qū)取出第一個零件標(biāo)記碼進(jìn)行編譯并將結(jié)果放入第二個緩沖區(qū)中,同時輸入第二個零件的標(biāo)記碼。
?、趶牡诙€緩沖區(qū)中取出第一個零件的編譯結(jié)果對第一個零件進(jìn)行加工,這時編譯第二個零件的標(biāo)記碼放入已空的第二個緩沖區(qū)中,同時輸入第三個零件的標(biāo)記碼。
?、鄣谝粋€零件加工完畢,繼續(xù)加工第二個零件,并編譯第三個零件的標(biāo)記碼,同時輸入第四個零件的標(biāo)記碼。
采用重疊流水?dāng)?shù)據(jù)譯碼處理,直到加工完成整批零件。數(shù)據(jù)譯碼處理過程如圖2。
(3)編譯緩沖區(qū)的數(shù)據(jù)
數(shù)據(jù)編譯階段,即從第一個緩沖區(qū)取出數(shù)據(jù)進(jìn)行編譯的階段,編譯結(jié)果存入第二個緩沖區(qū),采用目標(biāo)碼編譯方法對數(shù)據(jù)進(jìn)行編譯。由于零件上標(biāo)記碼是兩組對稱的相同代碼且整批零件的代號相同,為了避免重復(fù)編譯相同代碼,在緩沖區(qū)格式中定義了兩個標(biāo)志位accessorynuml和accessorynum2。accessorynuml是某個零件單獨標(biāo)記碼編譯后的目標(biāo)碼標(biāo)志位,為0表示該碼還未編譯或已重復(fù)使用一次;為1表示已編譯存儲,且還未重復(fù)使用。accessorynum2是整批零件代號編譯后的目標(biāo)碼標(biāo)志位,為0表示還未編譯或已重復(fù)使用n次;為n表示第一次編譯存儲,且未重復(fù)使用;為i表示已重復(fù)使用了n-i次(n為整批零件數(shù),i為1~n間的整數(shù))。當(dāng)acccssorynum1為1時說明該零件單獨標(biāo)記碼還要被使用,應(yīng)先保存,下次使用時可以直接加工而無需再去編譯;由于加工零件是對稱的。所以第二次加工就無需重新編譯而直接加工即可。當(dāng)accessorynum2的值大于O小于n時,說明該代碼需保存。由于整批零件的代號相同,因此加工每個零件時都可以直接調(diào)用第一次編譯好的代號數(shù)據(jù)直接加工。通過accessorynum1和accessorynum2兩個標(biāo)志位,可以加快數(shù)據(jù)編譯處理速度,有效提高數(shù)據(jù)處理的效率。
當(dāng)一個零件加工完換下一個零件時,繼續(xù)進(jìn)行下一個零件標(biāo)記碼的數(shù)據(jù)處理,直到加工完整批零件。只有在輸入或編譯下一個零件,即需要占用兩緩沖區(qū)之一、而上一零件的編譯或加工還沒有處理完時需要等待,但這種等待是極其短暫的。
經(jīng)實驗可知,數(shù)控制碼系統(tǒng)中運用資源重疊流水解釋方法實現(xiàn)數(shù)據(jù)處理時,一個零件的制碼時問需要2。4s;運用解釋一編譯方法實現(xiàn)數(shù)據(jù)處理時,需要2。3s;而運用這種新數(shù)據(jù)處理方法實現(xiàn)數(shù)據(jù)處理時,只需要2。0s,比運用前兩種方法的教率分別提高了16。7%和13。04%,有效地提高了數(shù)控制碼的速度和效率,且使用至今一直很穩(wěn)定。
這種新的數(shù)據(jù)處理方法適合大量有規(guī)律或程序段較短的數(shù)控程序的譯碼。它能節(jié)約系統(tǒng)資源,加快數(shù)據(jù)處理速度,且譯碼緩沖區(qū)是靜態(tài)分配的,可有效防止內(nèi)存碎片的形成。該方法還能很好地利用Windows系統(tǒng)本身提供的基于線程的搶先式多任務(wù)機(jī)制。
評論
查看更多