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