專利名稱:一種數(shù)控控制器以及數(shù)控機(jī)床的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及現(xiàn)代數(shù)控(CNC, computer numerical control)機(jī)床技術(shù),尤指一種數(shù)控控制器以及數(shù)控機(jī)床。
背景技術(shù):
具有多軸的高精度、高速度、多任務(wù)數(shù)控機(jī)床(CNC machine)是機(jī)床技術(shù)的發(fā)展方向。其中,STEP-NC技術(shù)是現(xiàn)代數(shù)控機(jī)床的發(fā)展趨勢,在エ業(yè)應(yīng)用中越來越多地被采用,這一代機(jī)器代表了機(jī)床制造エ業(yè)增長最快的部份。STEP-NC的總體目標(biāo)是從計(jì)算機(jī)輔助設(shè)計(jì)(CAD, computer aided design)到產(chǎn)品實(shí)現(xiàn)形成一條快速追蹤的流程鏈;在CAD/CAM與數(shù)控之間提供有效鏈接;使得基于CAD幾何形狀的程序互操作性描述的是“做什么”而不是“如何做”;對加工過程進(jìn)行高層次描述。STEP-NC的好處包括提供給車間的信息質(zhì)量更高; 使用STEP進(jìn)行直接信息交互;雙向信息流動。基于以上原因,STEP-NC將成為數(shù)控機(jī)床的新標(biāo)準(zhǔn)。現(xiàn)代STEP-NC要求數(shù)控控制器具有以下至少ー個優(yōu)點(diǎn)成本低、支持高速度加工、支持高精度加工、在更多功能上具有靈活的可擴(kuò)展性等。ー個典型的STEP-NC流程如圖I所示,包括由STEP-NC編譯器執(zhí)行的NC核心步驟,以及由運(yùn)動控制器執(zhí)行的運(yùn)動控制步驟。其中,NC核心步驟具體包括對STEP-NC程序提供的幾何圖形和任務(wù)進(jìn)行解析(parse/interpret)的子步驟,顯示子步驟,編輯(edit)子步驟,插值子步驟等。STEP-NC標(biāo)準(zhǔn)傾向于使用非均勻有理樣條曲線(NURBS, Non-uniform rationalB-spline)表述幾何形狀及產(chǎn)品規(guī)范。使用由NURBS曲線數(shù)據(jù)計(jì)算出的位置,數(shù)控控制器直接將NURBS曲線數(shù)據(jù)從零件加工程序轉(zhuǎn)換成多個小線段。但是,針對多軸的高精度實(shí)時 插值算法(比如NURBS等)會給數(shù)控控制器帶來大量的計(jì)算負(fù)載。當(dāng)STEP-NC標(biāo)準(zhǔn)中沒有后處理過程時,數(shù)控控制器需要實(shí)時進(jìn)行插值處理。因此,CNC系統(tǒng)的整體性能很大程度上取決于插值器的速度和精度。由于NURBS需要考慮計(jì)算約束條件,故具有較高的計(jì)算復(fù)雜性。在典型應(yīng)用中,NURBS插值消耗了整個控制系統(tǒng)高達(dá)95%的時間。當(dāng)使用NURBS作為數(shù)控機(jī)床的輸入時,進(jìn)給速度(feed rate)很大程度上取決于NURBS曲線的插值速度。也即,曲線插值速度對于高速度、高精度加工至關(guān)重要,曲線插值的計(jì)算復(fù)雜性高對于數(shù)控機(jī)床的速度和精度有很大的負(fù)面影響。此外,在典型的運(yùn)動控制算法中,某些信號處理步驟(如FFT等)也將給數(shù)控控制器造成計(jì)算負(fù)擔(dān),從而影響數(shù)控機(jī)床的速度和精度?,F(xiàn)有技術(shù)中有兩種方式可加快NURBS曲線的插值速度基于多核CPU的方式和基于混合結(jié)構(gòu)的方式,典型的混合結(jié)構(gòu)是PC+FPGA,例如西門子公司提供的SINUMERIK 840D系統(tǒng)。多核/多處理器(multi-core/processor)并不是一種有效和經(jīng)濟(jì)的方案,因?yàn)閿?shù)字控制核心(NCK, numeric control kernel)對處理能力要求過高且需要太多的資源。對于混合結(jié)構(gòu)而言,復(fù)雜的FPGA價(jià)格昂貴,并且在進(jìn)ー步更新和擴(kuò)展方面缺乏靈活性。不論是在硬件還是軟件上,F(xiàn)PGA/ASIC的開發(fā)成本都非常高。比如,對于增加新的插值算法和/或新的運(yùn)動控制功能,F(xiàn)PGA并不靈活,每個微小的變化都將消耗大量的開發(fā)時間,且是ー個復(fù)雜的過程(比如毎次都需要經(jīng)過HDL編程+綜合+仿真+驗(yàn)證等)。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提出ー種數(shù)控控制器以及數(shù)控機(jī)床,以便較好地滿足機(jī)床加工的要求。為達(dá)到上述目的,本發(fā)明的技術(shù)方案具體是這樣實(shí)現(xiàn)的ー種數(shù)控控制器,包括
第一處理器,用于接收零件的曲線規(guī)范,生成相應(yīng)的任務(wù)規(guī)范,將所述曲線規(guī)范和任務(wù)規(guī)范發(fā)送給第二處理器;所述第二處理器包括多個處理子単元,該多個處理子単元中至少兩個處理子単元用于根據(jù)所述任務(wù)規(guī)范將分配給自身處理的曲線規(guī)范轉(zhuǎn)換為機(jī)床加工的運(yùn)動軌跡。在本發(fā)明的一種實(shí)施方式中,所述第一處理器用于將所述曲線規(guī)范和所述任務(wù)規(guī)范從自身的主內(nèi)存寫入所述第二處理器的全局內(nèi)存;所述至少兩個處理子單元中的每個處理子單元用于從所述全局內(nèi)存讀取分配給自身處理的曲線規(guī)范,將其寫入該處理子単元的ー個或多個處理塊的共享內(nèi)存。在本發(fā)明的一種實(shí)施方式中,所述ー個或多個處理子単元的每個處理塊用于根據(jù)自身共享內(nèi)存中的曲線規(guī)范進(jìn)行插值計(jì)算,得到該曲線規(guī)范所對應(yīng)曲線段的插值點(diǎn),并將計(jì)算出的插值點(diǎn)寫入所述第二處理器的全局內(nèi)存。在本發(fā)明的一種實(shí)施方式中,所述一個或多個處理塊中姆個處理塊包括一個或多個線程,用于從該處理塊的共享內(nèi)存讀取相應(yīng)的曲線規(guī)范進(jìn)行插值計(jì)算。在本發(fā)明的一種實(shí)施方式中,所述第一處理器用于在所述第二處理器的全局內(nèi)存存儲的插值點(diǎn)數(shù)量到達(dá)預(yù)定值時,從所述全局內(nèi)存讀取所述插值點(diǎn)寫入自身的主內(nèi)存。在本發(fā)明的一種實(shí)施方式中,所述第二處理器進(jìn)ー步用于機(jī)床加工的信號處理和/或運(yùn)動控制。在本發(fā)明的一種實(shí)施方式中,所述第二處理器中多個處理子単元用于并行執(zhí)行快速傅立葉變換(FFT)。在本發(fā)明的一種實(shí)施方式中,所述第一處理器為中央處理器(CPU),所述第二處理器為圖形處理器(GPU),所述處理子單元為所述圖形處理器中的流處理器。在本發(fā)明的一種實(shí)施方式中,所述曲線規(guī)范包括以下至少ー個參數(shù)曲線階數(shù)、控制點(diǎn)集合、權(quán)重因子集合、節(jié)點(diǎn)矢量。本發(fā)明實(shí)施例還提供了一種數(shù)控機(jī)床,包括如上所述的數(shù)控控制器,以及與所述數(shù)控控制器連接的ー個或多個伺服驅(qū)動器,每個伺服驅(qū)動器連接ー個機(jī)床加工軸;所述機(jī)床加工軸用于根據(jù)所述數(shù)控控制器得到的運(yùn)動軌跡對零件的表面進(jìn)行加ェ。在本發(fā)明的一種實(shí)施方式中,所述數(shù)控控制器與所述伺服驅(qū)動器采用以太網(wǎng)或串行總線連接。由上可見,本發(fā)明實(shí)施例提供的數(shù)控控制器以及數(shù)控機(jī)床,能夠較好地滿足機(jī)床加工的要求。
圖I示出典型的STEP-NC流程;圖2為本發(fā)明一個實(shí)施例中基于GPU的STEP-NC系統(tǒng)的結(jié)構(gòu)示意圖;圖3為本發(fā)明一個實(shí)施例中利用GPU進(jìn)行并行NURBS插值的方法流程圖;圖4示出本發(fā)明ー個實(shí)施例中并行NURBS插值的數(shù)據(jù)流;圖5為本發(fā)明一個實(shí)施例中GPU塊對任務(wù)進(jìn)ー步劃分的示意圖;圖6為本發(fā)明一個實(shí)施例中基于GPU的數(shù)控控制器8軸應(yīng)用的結(jié)構(gòu)示意圖;圖7示出本發(fā)明ー個實(shí)施例中基于GPU的NURUS插值的驗(yàn)證結(jié)果;
圖8示出本發(fā)明ー個實(shí)施例中基于GPU的FFT算法的驗(yàn)證結(jié)果。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉實(shí)施例,對本發(fā)明進(jìn)一歩詳細(xì)說明。本發(fā)明的實(shí)施例提出ー種基于圖形處理器(GPU,Graphic Processing Unit)的數(shù)控(CNC)控制器,以便更好地滿足機(jī)床加工的要求。在ー個具體實(shí)現(xiàn)的示例中,GPU在數(shù)控控制器中作為中央處理器(CPU)的ー個協(xié)處理器(co-processor)。零件的NUBRS特征信息被傳遞到GPU,GPU以例如高度并行的方式對NUBRS曲線進(jìn)行插值,NUBRS插值的輸出即為每個機(jī)床加工軸的運(yùn)動軌跡。之后,采用運(yùn)動控制器的FFT算法處理這些運(yùn)動軌跡,以便進(jìn)行運(yùn)動控制算法中的低通或帶通濾波。對于FFT算法,GPU也可以用例如高度并行的方式進(jìn)行處理?;贕PU的STEP-NC系統(tǒng)如圖2所示,包括IS0 14649 (即STEP-NC)程序生成單元201、電機(jī)驅(qū)動單元203、以及基于GPU的數(shù)控控制器202。其中,數(shù)控控制器202具體包括如下邏輯功能通信系統(tǒng)、操作系統(tǒng)、普通應(yīng)用接ロ、GPU應(yīng)用接ロ、運(yùn)動控制器、解析器、信號處理器、插值器、操作監(jiān)視器、MMI、任務(wù)調(diào)度器、以及用于顯示的圖形系統(tǒng)。具體地,GPU應(yīng)用接ロ、信號處理器、插值器、圖形系統(tǒng)等采用GPU實(shí)現(xiàn),在圖2中以虛線示出,數(shù)控控制器202中的其他功能模塊由CPU實(shí)現(xiàn)。進(jìn)ー步地,可以由GPU實(shí)現(xiàn)ー些運(yùn)動控制功能,從而降低CPU在運(yùn)動控制上的處理負(fù)擔(dān)。在圖2所示的結(jié)構(gòu)中,通信系統(tǒng)是最底層,操作系統(tǒng)位于通信系統(tǒng)上ー層,依此類推,操作監(jiān)視器等是整個結(jié)構(gòu)中位于最上層的應(yīng)用。需要指出,通過使用現(xiàn)成的組件和成熟的開發(fā)環(huán)境(例如NVIDIA的GTX系列),基于GPU的數(shù)控控制器的升級和擴(kuò)展將更為容易且經(jīng)濟(jì)。對于數(shù)控控制器中執(zhí)行的插值,本發(fā)明的一個實(shí)施例采用CPU和GPU配合的方式實(shí)現(xiàn)并行NURBS插值,具體過程如圖3所示,包括以下步驟步驟301是初始化步驟,CPU將曲線規(guī)范和任務(wù)規(guī)范等規(guī)范數(shù)據(jù)從主內(nèi)存(MM,main memory)發(fā)送到 GPU 的全局內(nèi)存(GM, global memory)。需要指出,ー個GPU有多個流處理器(或?yàn)镚rid),而ー個流處理器有多個GPU塊,每個GPU塊包括一個共享內(nèi)存(SM,shared memory)和多個線程(thread),該SM為所述多個線程所共享。相應(yīng)地,任務(wù)規(guī)范用于指定曲線段和流處理器的對應(yīng)關(guān)系,或者曲線段和流處理器中的GPU塊的對應(yīng)關(guān)系。比如,將整個曲線劃分為多個曲線段后,每個曲線段分配給ー個流處理器,或者該流處理器中的部分GPU塊進(jìn)行NURBS插值,使得不同曲線段的NURBS插值可以并行執(zhí)行。步驟302 GPU中的姆個流處理器(stream processor)從全局內(nèi)存讀取規(guī)范數(shù)據(jù),寫入該流處理器的每個GPU塊的SM。本領(lǐng)域技術(shù)人員可以理解,在步驟302中,GPU的部分處理器也可以并不處于工作狀態(tài)。步驟303是以迭代方式對曲線進(jìn)行插值的計(jì)算步驟。每次迭代后,根據(jù)指定的采樣分辨率計(jì)算每個曲線段的采樣點(diǎn)(或插值點(diǎn)),寫入GPU的全局內(nèi)存。具體地,流處理器根據(jù)待處理的曲線段的控制點(diǎn)進(jìn)行插值,并將插值點(diǎn)從共享內(nèi)存寫入GPU的全局內(nèi)存。步驟304:全局內(nèi)存中的插值點(diǎn)是否積累到一定數(shù)量,如果是則執(zhí)行步驟305,否則執(zhí)行步驟306。步驟305 =CPU將插值點(diǎn)從GPU的全局內(nèi)存讀回自身的主內(nèi)存。步驟306 :判斷是否所有的曲線段都處理完畢,如果是則流程結(jié)束,否則從未處理的曲線段中選擇ー個作為待處理的曲線段,返回步驟303對其進(jìn)行處理。相應(yīng)地,圖3所示并行NURBS插值過程的數(shù)據(jù)流見圖4。對于GPU而言,輸入數(shù)據(jù)主要包括曲線規(guī)范,還可以進(jìn)一歩包括采樣分辨率等,從而定義出ー個從PC(或?yàn)镃PU)主內(nèi)存到GPU的全局內(nèi)存再到每個GPU塊的共享內(nèi)存的輸入數(shù)據(jù)流。本實(shí)施例中,曲線規(guī)范例如包括曲線階數(shù)、控制點(diǎn)集合、權(quán)重因子集合、以及節(jié)點(diǎn)矢量等中的至少ー個參數(shù)。輸出數(shù)據(jù)包括曲線的所有采樣點(diǎn),按照曲線段(curve segment)對采樣點(diǎn)進(jìn)行分組計(jì)算,并將計(jì)算出的采樣點(diǎn)讀回主內(nèi)存。需要指出,輸出數(shù)據(jù)流與輸入的方向相反,也即從每個GPU塊的共享內(nèi)存到GPU的全局內(nèi)存最后再到主內(nèi)存。在并行算法中,整個曲線被逐段采樣,每段采樣或插值由預(yù)定數(shù)量的GPU塊執(zhí)行,圖5為每個GPU塊中多個線程之間的子任務(wù)劃分和分配策略示意圖。在本發(fā)明ー個實(shí)施例中,k階NURBS由ρ+k+l個控制點(diǎn)構(gòu)成、共分為P部分,其中每部分描述ー個曲線段,表I和表2為相應(yīng)的并行NURBS算法的偽碼(pseudo code)。其中,k和P可為任意正整數(shù)。
權(quán)利要求
1.ー種數(shù)控控制器,所述數(shù)控控制器包括 第一處理器,用于接收零件的曲線規(guī)范,生成相應(yīng)的任務(wù)規(guī)范,將所述曲線規(guī)范和任務(wù)規(guī)范發(fā)送給第二處理器; 所述第二處理器包括多個處理子単元,所述多個處理子単元中至少兩個處理子単元用于根據(jù)所述任務(wù)規(guī)范將分配給自身處理的曲線規(guī)范轉(zhuǎn)換為機(jī)床加工的運(yùn)動軌跡。
2.根據(jù)權(quán)利要求I所述的數(shù)控控制器,其中, 所述第一處理器用于將所述曲線規(guī)范和所述任務(wù)規(guī)范從自身的主內(nèi)存寫入所述第二處理器的全局內(nèi)存; 所述至少兩個處理子單元中的每個處理子單元用于從所述全局內(nèi)存讀取分配給自身處理的曲線規(guī)范,并將其寫入該處理子単元的ー個或多個處理塊的共享內(nèi)存。
3.根據(jù)權(quán)利要求2所述的數(shù)控控制器,其中,所述ー個或多個處理塊用于根據(jù)自身共享內(nèi)存中的曲線規(guī)范進(jìn)行插值計(jì)算,得到該曲線規(guī)范所對應(yīng)曲線段的插值點(diǎn),并將計(jì)算出的插值點(diǎn)寫入所述第二處理器的全局內(nèi)存。
4.根據(jù)權(quán)利要求3所述的數(shù)控控制器,其中,所述ー個或多個處理塊中每個處理塊包括ー個或多個線程,用于從該處理塊的共享內(nèi)存讀取相應(yīng)的曲線規(guī)范進(jìn)行插值計(jì)算。
5.根據(jù)權(quán)利要求3所述的數(shù)控控制器,其中,所述第一處理器用于在所述第二處理器的全局內(nèi)存存儲的插值點(diǎn)數(shù)量到達(dá)預(yù)定值時,從所述全局內(nèi)存讀取所述插值點(diǎn)寫入自身的主內(nèi)存。
6.根據(jù)權(quán)利要求I所述的數(shù)控控制器,其中,所述第二處理器進(jìn)ー步用于機(jī)床加工的信號處理和/或運(yùn)動控制。
7.根據(jù)權(quán)利要求6所述的數(shù)控控制器,其中,所述第二處理器中多個處理子単元用于并行執(zhí)行快速傅立葉變換FFT。
8.根據(jù)權(quán)利要求1-7中任一項(xiàng)所述的數(shù)控控制器,其中,所述第一處理器為中央處理器CPU,所述第二處理器為圖形處理器GPU,所述處理子單元為所述圖形處理器中的流處理器。
9.根據(jù)權(quán)利要求1-7中任一項(xiàng)所述的數(shù)控控制器,其中,所述曲線規(guī)范包括以下至少一個參數(shù)曲線階數(shù)、控制點(diǎn)集合、權(quán)重因子集合、節(jié)點(diǎn)矢量。
10.一種數(shù)控機(jī)床,所述數(shù)控機(jī)床包括如權(quán)利要求1-9任一項(xiàng)所述的數(shù)控控制器,以及與所述數(shù)控控制器連接的ー個或多個伺服驅(qū)動器,每個伺服驅(qū)動器連接ー個機(jī)床加工軸; 所述機(jī)床加工軸用于根據(jù)所述數(shù)控控制器得到的運(yùn)動軌跡對零件的表面進(jìn)行加工。
11.根據(jù)權(quán)利要求10所述的數(shù)控機(jī)床,其中,所述數(shù)控控制器與所述伺服驅(qū)動器采用以太網(wǎng)或串行總線連接。
全文摘要
本發(fā)明公開了一種數(shù)控控制器以及數(shù)控機(jī)床。其中,數(shù)控控制器包括第一處理器,用于接收零件的曲線規(guī)范,生成相應(yīng)的任務(wù)規(guī)范,將所述曲線規(guī)范和任務(wù)規(guī)范發(fā)送給第二處理器;所述第二處理器包括多個處理子單元,多個處理子單元中的至少兩個處理子單元用于根據(jù)所述任務(wù)規(guī)范將分配給自身處理的曲線規(guī)范轉(zhuǎn)換為機(jī)床加工的運(yùn)動軌跡。本發(fā)明提供的設(shè)備能夠更好地滿足機(jī)床加工的要求。
文檔編號G05B19/18GK102692892SQ201110069468
公開日2012年9月26日 申請日期2011年3月22日 優(yōu)先權(quán)日2011年3月22日
發(fā)明者介鳴, 潘莉, 龍飛 申請人:西門子公司