1概述數(shù)控系統(tǒng)廣泛應用于制造業(yè)的各種設備中,良好的數(shù)控系統(tǒng)是數(shù)控機床等加工高性能高精度零件產(chǎn)品的保證,隨著開放式數(shù)控的發(fā)展,數(shù)控系統(tǒng)開發(fā)方法的研究已成為一個重要研究方向。從早期的結構化程序設計到面向對象思想的應用以及基于組件的數(shù)控系統(tǒng)設計的研究基本上都是采用以代碼為中心的開發(fā)方式。但其存在如下缺點:(1)系統(tǒng)測試滯后,難以保證系統(tǒng)可靠性;(2)系統(tǒng)開發(fā)周期長,開發(fā)效率低。雖然基于模型驅動的數(shù)控系統(tǒng)開發(fā).
對上述弊端有一定的改善作用,但是其建模語言采用的是UML,難以被數(shù)控系統(tǒng)開發(fā)人員直接應用,因此,本文提出基于領域建模的數(shù)控系統(tǒng)開發(fā)方法,以解決傳統(tǒng)開發(fā)方法遇到的問題。
2基于領域建模的數(shù)控系統(tǒng)開發(fā)框架領域建模的開發(fā)方法提高了模型在整個開發(fā)中的地位,無論是系統(tǒng)分析、系統(tǒng)設計、還是系統(tǒng)實現(xiàn)都是以模型的構建、變換為核心,并以此增強開發(fā)過程中各個環(huán)節(jié)的耦合度,基于領域建模的數(shù)控系統(tǒng)開發(fā)框架它描述了基于領域建模數(shù)控系統(tǒng)的核心內容:領域建模,模型轉換及代碼自動生成。領域建模包括數(shù)控系統(tǒng)元模型的構建和數(shù)控系統(tǒng)模型構建。首先用通用的元元模型定義數(shù)控系統(tǒng)元模型的的元素以及元素的聯(lián)系,而數(shù)控系統(tǒng)元模型又定義了數(shù)控系統(tǒng)模型的建模規(guī)則(即語法和語義),此元模型經(jīng)解釋后成為計算機數(shù)控系統(tǒng)建模語言(Computer Numeric Control Modeling Language, CNCML),CNCML具有明顯的數(shù)控領域特征,各建模元素具有顯式的領域語義,容易被數(shù)控領域工程師所識別和使用。模型轉換主要負責把數(shù)控系統(tǒng)模型轉換到第三方驗證環(huán)境(如實時性能驗證工具UPPAAL),工程師可以根據(jù)驗證和仿真的結果有效改進模型,實現(xiàn)系統(tǒng)早期性能驗證,保證*終系統(tǒng)的可靠性,提高系統(tǒng)質量。代碼自動生成則實現(xiàn)對模型的遍歷、分析、綜合,并根據(jù)嚴格的元模型語法和語義,建立和目標編程語言(如C語言)對應的映射規(guī)則,實現(xiàn)從模型到可運行代碼的自動轉換,以此提高系統(tǒng)的開發(fā)效率。
本文介紹關于數(shù)控系統(tǒng)元模型的構建以及代碼自動生成的相關研究,其中,模型轉換內容。
3數(shù)控系統(tǒng)元模型的構建元模型對某一特定領域建模環(huán)境中如何建立模型、模型之間如何集成和互操作等規(guī)范的描述。元模型定義了該領域的語法和語義,能表示該領域內的所有或全部系統(tǒng),經(jīng)解釋后直接成為該領域的建模語言。本研究采用基于多視角的元建模(Multi-View based Meta Modeling, MVMM)方法,應用GME元建模工具來實現(xiàn)數(shù)控元模型的構建。
MVMM主要從功能視角和非功能視角并結合用層次化的方式來描述系統(tǒng)。從功能主視角出發(fā)。系統(tǒng)基本功能區(qū)劃分為人機交互控制功能區(qū)(HMC)、可編程邏輯控制區(qū)(PLC)、數(shù)值控制功能區(qū)(NC)3個部分。HMC繼續(xù)分為人機交互(HMI)、系統(tǒng)配置、故障診斷功能;PLC分為邏輯控制、輸入輸出控制;NC分為運動準備、運動控制、軸控制。如在人機交互HMI部分,CNC系統(tǒng)按照操作模式分成6大模式:手動模式、回零模式、自動模式、編輯模式、錄入模式以及手輪模式,詳細的元模型。
從非功能主視角來看,計算機數(shù)控系統(tǒng)是典型的實時系統(tǒng),實時性是*重要的非功能屬性,另外,各任務的優(yōu)先執(zhí)行情況以及工作軸之間的同步情況,這些非功能性需求必須在元模型中能夠如實地反映。
具體分析如下:(1)運動任務元素是整個控制模塊的主要元素,根據(jù)實際運動任務不同,派生出2種子任務類型:TTMotionTask和ETMotionTask,分別代表時間觸發(fā)的硬實時運動任務和事件觸發(fā)的弱實時任務。
(2)每個任務具有*壞執(zhí)行時間(WCET)、周期(period)以及優(yōu)先級(priority)等參數(shù)。根據(jù)不同的目標平臺(主要指實時操作系統(tǒng))可設定任務的參數(shù),以滿足任務調度的要求。
(3)軸組管理(AxisManager)根據(jù)運動指令(MotionCmd)的類型啟動相應的任務,這些關系可通過它們之間的關聯(lián)關系來表示,如TaskCmdConn表示運動任務和運動指令之間的關聯(lián)關系。
4代碼自動生成實現(xiàn)從模型自動生成產(chǎn)品級源代碼是基于領域建模的數(shù)控系統(tǒng)開發(fā)方法的關鍵環(huán)節(jié)。靈活的代碼自動生成技術具有以下明顯的優(yōu)勢:(1)提高了代碼變更的能力;(2)實現(xiàn)代碼與模型之間靈活的同步機制;(3)大幅度提高了工作效率;(4)保證了所有生成代碼的一致性。
代碼自動生成的機理是根據(jù)讀取模型的元數(shù)據(jù),按照指定的映射規(guī)則,混合產(chǎn)生出規(guī)范的源代碼。一般其生成過程可以分為以下2個步驟來實現(xiàn):(1)模型解析。模型解析是對模型進行訪問,提取模型信息,為下一步的模型到代碼的映射做準備。本研究在元對象網(wǎng)絡(Meta Object Network, MON)和構造對象網(wǎng)絡(Builder Object Network, BON)的基礎上
建立面向數(shù)控領域的解析類庫,通過領域解析類庫對不同的應用模型進行解析,并獲取與模型對應的信息,這些信息以各種類型的數(shù)據(jù)結構進行存儲,并為下一步從模型到代碼或其他信息的映射提供準備。
?。?)模型映射。模型映射是從模型信息到代碼或其他模型信息的映射,根據(jù)不同的領域應用模型自動產(chǎn)生相應的代碼或配置數(shù)據(jù)。本研究采用一種基于映射規(guī)則庫和代碼模板的映射方法,并結合可重用構件庫,可自動生成產(chǎn)品級源代碼。
從本質上來看,模型映射過程是以領域應用模型為輸入,以產(chǎn)品級源代碼為輸出的處理過程。領域應用模型根據(jù)系統(tǒng)需求的不同而各不相同,要把不同的應用模型映射成對應的系統(tǒng)源代碼,其映射規(guī)律必然來自應用模型的建模規(guī)則以及目標源代碼的組織結構。本研究中建模規(guī)范是數(shù)控領域元模型,目標源代碼的組織結構與特定平臺信息緊密關聯(lián),這些信息主要包括面向目標平臺的軟件體系結構、編程語言類型以及集成開發(fā)源代碼組織結構及其配置結構。例如,基于DSP平臺的運動控制系統(tǒng),其編程語言一般采用C/C++,其集成開發(fā)環(huán)境為TI公司CCS開發(fā)環(huán)境,實時控制應用軟件建立在DSP/BIOS的實時調度內核之上,因此,面向DSP平臺的代碼映射則必須考察CCS如何組織源代碼組織結構、如何進行多任務配置以及DSP/BIOS提供何種類型的服務接口等。
為了規(guī)范映射過程,結合數(shù)控系統(tǒng)的開放性要求,本研究提出一種基于映射規(guī)則庫以及代碼模板庫模型映射過程,首先對數(shù)控領域元模型規(guī)則和目標平臺源代碼組織結構進行綜合分析,分析的目的是建立從模型到代碼的映射規(guī)則表,并為代碼的自動生成設計相應的代碼模板,映射規(guī)則庫和代碼模板庫是代碼映射過程中的重要信息來源;分析的內容主要為模型的不變性與可變性特征,及其與目標源代碼的對應關系。通過4個步驟實現(xiàn)映射具體過程:(1)根據(jù)領域解析類庫對模型進行解析,并把獲取的模型信息以特定的數(shù)據(jù)格式進行存儲;(2)以模型信息為基礎,根據(jù)映射規(guī)則表,判斷是否需要進行代碼映射,調用相應的映射算法進行映射;(3)對代碼模板進行解析,尋找相關的關鍵字(Keyword)或區(qū)標志(BlockFlag),根據(jù)模型信息對代碼進行提取、填充或替代,生成對應的代碼;(4)從構件庫中選擇合適的構件,與自動生成的代碼進行粘合、補充,*后形成完整的產(chǎn)品級別源代碼。
5三軸車床設計實例根據(jù)以上的分析和建立的元模型以及相應代碼自動生成器,本實例主要完成三軸車床設計。本車床采用基于Windows CE DSP的開放式CNC實現(xiàn)方案,即上位機嵌入式單板計算機(SBC-C26)與下位機DSP運動控制卡通過PC104總線實現(xiàn)主從式結構的連接。根據(jù)該要求,利用所描述運動控制形成的CNCML建立該車床的下位機模型如所示。
使用代碼自動生成器之后所得到的任務管理模塊的代碼如下:void Tsk_Axis_Manager(){ while(true){ //循環(huán)獲取上位機發(fā)送的運動指令msgID= MsgCom::receiveMsg(pMsgAddr,pHC2DSP_Buf);switch (msgID)//判斷消息運動指令{case LINE_3D_MOTION://三軸聯(lián)動-3D直線運動…//啟動相關任務break;case ARC_3D_Motion: //三軸聯(lián)動-3D圓弧運動…//啟動相關任務break;case LINE_3D_MOTION://三軸聯(lián)動-3D直線插補…//啟動相關任務break;case BALL_3D_Motion: //三軸聯(lián)動-球面插補…//啟動相關任務break;} 6結束語提高模型在系統(tǒng)開發(fā)中的作用是現(xiàn)代數(shù)控系統(tǒng)開發(fā)的趨勢,本文分析基于領域建模的數(shù)控系統(tǒng)開發(fā)框架,指出代碼自動生成是實現(xiàn)該框架的關鍵步驟,研究模型映射的框架和過程,并通過三軸數(shù)控車床的設計實例證實了該方法的可行性,目前整個項目進展順利,下一步研究重點在于解決多目標平臺的代碼生成器的集成以及目標代碼的優(yōu)化。