0 引言
隨著世界經濟發展的全球化,制造業市場競爭日益加劇,新產品上市周期大為縮短,用戶需求也趨于多樣化、個性化,對計算機數控系統(CNC)提出了必須向開放式結構的轉化趨勢。自20世紀90年代開始,美國、歐盟、日本等發達國家或地區已開始了開放式結構控制器的研究,并分別提出了OMAC(Open Modular Architecture Controller)、OSACA(OpenSystem Architecture for Control within Automation)、OSEC(Open System Environment for Controller)幾個標準規范。我國從2003年開始實施oNC《開放式數控系統總則》國家標準。開放式CNC大多采用基于通用PC機(或工控機)和數控(NC:NumericalContr01)專用模塊的主從式結構㈣。NC模塊采用通用微處理器或數字信號處理器(DSP:Digital SignalProcessor)實現,主要運行以坐標軸運動為主的強實時控制,而上位機主要運行弱實時性及非實時性任務。隨著高性能嵌入式計算機技術的發展,出現了面向32位及以上的嵌入式實時操作系統(RTOS:RealTime Operating System),為實現高可靠性、低成本的開放式數控系統提供了條件。目前CNC正在從基于PC的開放式控制系統向32位及以上的高性能實時嵌入式控制系統方向發展,基于uC/OS、RTLinux、Windows CE等實時操作系統的數控系統越來越受到相關公司和科研院所的重視。Windows CE并不是Windows桌面操作系統的縮減版本,是微軟全新設計的針對嵌入式系統市場的部分源代碼開放的、模塊化的、搶先式多任務32位嵌入式操作系統。相對于DOS,Windows CE是運行于保護模式的多線程操作系統,其內存保護功能滿足了數控系統的穩定性,相對于Windows桌面操作系統Windows CE是嵌入式實時操作系統,能夠快速響應和調度外部中斷,可以滿足數控系統的弱實時任務以及非實時任務。
伴隨著電子信息技術的高速發展,運動控制硬件方面也已經從以單片機和微處理器作為核心處理器及專用芯片(ASIC:Application Specific IntegratedCircuits)作為協處理器發展到采用基于計算機總線的以DSP(Digital Signal Processor)和FPGA(FieldProgrammable Gate Array)技術來研發運動控制設備。
本文采用嵌入式計算機+運動控制設備的上下位機方式來構建數控系統,上位機采用Windows CE嵌入式系統來進行系統的管理、弱實時任務的調度,下位機采用自行開發的基于DSP&FPGA的運動控制器來調度運動控制為主的強實時控制任務.研究并實現了系統的軟硬件搭建以及數控軟件系統開發的核心問題,包括數控代碼智能解釋器的原理與實現,數控代碼二三維仿真的原理與實現,數控系統實時調度的分析。
1 系統的總體架構
按照我國國家標準《開放式數控系統體系結構》的要求:系統平臺必須支持ONC系統的結構特性:互換性、伸縮性、互操作性和可移植性,把數控系統劃分為三個層次:管理顯示層,數據控制層,支撐設備層。管理顯示層負責數據的顯示(如實時坐標更新顯示、刀補數據顯示、工藝參數顯示、I/O狀態的顯示)以及故障診斷;數據控制層負責整個數控系統的數據交互,如數控代碼的編輯及編譯、數控代碼的二維及三維仿真、刀具的長度及半徑補償、直線和圓弧插補的計算、主軸啟動和終止、冷卻液和潤滑液的開啟和關閉等,并且根據任務的優先級別進行實時的調控,以滿足數控系統實時性的要求;支撐設備層主要針對于物理設備,如自行開發設計的I/O硬件、自行開發設計的可重構的運動控制硬件、嵌入式式計算機以及相關的外設、板卡及接口等。整個系統的總體架構圖如圖1所示。
圖1系統總體架構圖
圖2是自行設計的三軸數控實驗平臺。三個運動軸由伺服電機驅動滾珠絲桿實現直線位移,模擬主軸采用步進電機驅動工作方式。CNC采用通過PC 104總線在嵌入式單板計算機(SBC)上堆插DSP運動控制卡和10卡的主從式結構。DSP運動控制卡負責計算機數控系統的實時運動控制,I/O卡負責數控系統的輔助設備控制和手輪脈沖計數等功能。嵌入式單板計算機運行Windows CE RTOS(使用電子盤方式),該測試平臺配以所開發出的可重配置數控系統可以實現對獨立運動軸/主軸的控制、二軸聯動、三軸聯動數控車床、銑床等種多數控機床或運動控制平臺的模擬測試。
圖2 CNC硬件平臺
2 數控代碼智能編譯及仿真
數控系統以代碼為依據進行數控加工,數控代碼是數控系統中的主要信息流,代碼編譯是把數控代碼最終轉化為數控系統能正確識別的信息,如脈沖量等。為了更好的驗證數控代碼的準確性,確保在加工過程中不會出現誤切、干涉等現象,在實際加工前針對數控代碼進行仿真,查看加工過程中的刀具軌跡位置點是否正確,查看加工后的效果圖是否和零件圖一致。因此數控系統中數控代碼的編譯和仿真是極為重要的功能模塊,也成為數控領域的研究熱點。文獻闡述了借助于LEX&YACC詞法語法分析工具來開發基于Windows的數控代碼編譯器,張承瑞等提出一個Linux下自主開發數控代碼解釋器的方案。數控代碼的仿真主要有兩種形式:幾何仿真和物理仿真,幾何仿真不考慮切削參數、切削力以及其它物理因素的影響,只仿真刀具與工件幾何體的運動,以驗證NC程序的正確性。而力學仿真屬于物理仿真范疇,它通過仿真切削過程的動態力學特性來預測刀具破損、刀具振動、控制切削參數,從而達到優化切削過程的目的。在Windows桌面系統中,應用OpenGL技術路線實現數控代碼三維幾何仿真在文獻中都有闡述。
由于Windows CE采用了Unicode字符等原因,LEX&YACC等工具在Windows CE平臺下不能使用。本文所開發的數控車床系統,采取了基于編譯原理技術開發NC代碼編譯器。編譯器包含了詞法分析、語法分析、查錯處理、代碼轉換等功能模塊。建立好NC代碼的詞法規則,即可對代碼第一次掃描時進行詞法分析,無誤后,再進行語法分析。語法分析是整個代碼編譯的核心模塊,首先根據正規文法((3型文法)來制定NC代碼的EBNF表示形式。如:<準備功能>::=G<1—2位數字>,<輔助功能>::=M<1-2位數字>,<進給速度>::=F<數字>,<主軸功能>::=S<1—4位數字>,<刀具功能>::=T<1—2位數字>。在詞法和語法分析的過程中,一旦發現有錯誤或者異常,編譯器能及時提示,甚至能智能的提醒用戶如何更正錯誤的代碼。編譯器由于是自主研發,具備了高效率、方便擴展的要求,符合數控系統實時、開放的標準。例在數控車床系統中復合固定循環是用戶使用最多的編程方式,如G71軸向粗車復合循環中,通過N(ns)和N(ne)來指定循環的起始和結束程序段的順序號,在G70精加工循環指令中,G70P(ns)Q(nf)通過ns和nf來指定欲精加工的程序段。圖3說明了本系統中對于G71、G70復合循環指令程序段指定不一致時的報錯提示。
圖3數控代碼編譯報錯圖
本文的數控代碼仿真是采用幾何仿真,具備二維刀具軌跡仿真和三維加工后效果仿真功能。對于數控車床的復合固定循環,在代碼編譯階段通過獲取循環的起始行號和終止行號來確定整個循環體,再根據進刀量、退刀量、零件圖尺寸等參數根據自行設計的算法把整個循環加工的刀具軌跡點計算出來。二維刀具軌跡仿真采用Bresenham算法生成直線和圓弧,來仿真直線插補和圓弧的插補過程,圖4為二維刀具軌跡圖。三維效果仿真是采用Directx3D作為編程的接口,Directx3D是Microsoft公司為其在Windows系統上運行交互式三維圖形程序而開發的一組編程接口,它是連接硬件、程序員和軟件用戶的橋梁。每個Directx3D部件都是用戶可調用的API總和,通過它應用程序可以直接訪問計算機的硬件。在Windows CE操作系統定制時,把Directx3D部分定制進入操作系統內核NK,并生成相應硬件的SDK,然后應用eMbedded Visual C++4.0開發工具進行3D等應用程序開發。本論文的數控系統應用Windows CE作為嵌入式操作系統,因此應用Directx3D技術作為支撐來實現零件的三維效果幾何仿真比較方便。
圖4二維刀具軌跡圖
三維仿真前,首先把編譯后沒有錯誤的數控代碼保存在一個特定的數據結構中(如鏈表或數組),然后根據數控代碼提取出的零件圖形信息建立零件的幾何模型。在數控車中,零件的基本形狀主要由圓柱體、圓臺以及圓錐等基本三維圖元體組合構成。在實體建模的過程中,會用到世界變換、視角變換和投影變換等矩陣運算。根據真實感圖形的需要,建模好后的實體可以添加燈光、顏色等效果,甚至可以貼上表面紋理。整個開發流程如圖5所示。圖6為零件加工效果圖。
圖5 Directx3D開發流程
圖6三維零件效果圖
3 CNC實時可調度性分析
實時系統是指一個能夠在事先指定或在運行時確定的時間內完成系統功能和對外部或內部、同步或異步事件、時間做出響應的系統。這種系統的正確性不僅僅依賴于計算的邏輯結果,而且還依賴于計算結果產生的時間。數控系統作為實時系統,對其任務進行調度的目的就是得到一個多任務的最佳執行順序,當它們按照此順序執行時能滿足它們各自的時間約束條件,使得每個任務(硬實時任務)能夠在其期限內完成數控系統中根據不同的任務實時性一般分為:實時突發任務(如急停),硬實時周期性任務(如數值插補、加減速控制),軟實時周期性任務(如數控代碼編譯、運行),非實時任務等(如數控代碼編輯)。本文所開發的數控系統采用的是主從式結構,數控系統操作面板操作由C51單片機產生,通過RS232串口通訊協議傳送至面板輸入任務處理模塊,數值插補、加減速、伺服閉環控制器等硬實時任務由基于DSP&FPGA的運動控制卡完成。在32位嵌入式操作系統Windows CE中,數控系統的弱實時任務對應于操作系統的線程,可以直接采用操作系統的調度器(Scheduler),或者白行設計相應的調度算法程序。圖7中平行四邊形(陰影部分)是所開發的CNC運行在Windows CE實時操作系統環境下的任務模塊,圖中省略了輔助設備控制任務模塊及其相應的硬件I/O卡。
圖7 CNC任務模塊結構圖
4 結論
Windows CE具備強大的通訊功能,是有搶占式多任務的32位嵌入式實時操作系統,基于WindowsCE開發數控系統將能縮短開發周期,增加數控系統的開放性、穩定性,提高系統的可擴展性、可移植。本文闡述了基于Windows CE的數控系統的關鍵技術原理以及實現,如數控系統軟硬件架構、數控代碼編譯器、二維刀具軌跡仿真以及基于Directx3D技術的三維仿真、數控系統實時調度劃等。實踐證明,基于Windows CE&DSP平臺的數控系統開發是數控產業的一個新的可行的、快捷的技術路線。
(審核編輯: 智匯張瑜)
分享