本發(fā)明涉及計(jì)算機(jī)數(shù)控系統(tǒng)領(lǐng)域,特別設(shè)計(jì)計(jì)算機(jī)數(shù)控系統(tǒng)的建模開發(fā)方法。
背景技術(shù):
計(jì)算機(jī)數(shù)控系統(tǒng)是典型的混合實(shí)時(shí)系統(tǒng),是多學(xué)科(機(jī)械/機(jī)電、自動(dòng)化、電子、計(jì)算機(jī))交叉融合的機(jī)電一體化產(chǎn)品,具備控制系統(tǒng)平臺(tái)多樣性、控制對(duì)象多樣化的特點(diǎn)。傳統(tǒng)的開發(fā)方法采用“不同學(xué)科的工程師進(jìn)行軟硬件并行開發(fā)->集成測(cè)試->開發(fā)優(yōu)化再測(cè)試”的螺旋上升方法,這種方法各取所長(zhǎng)具備良好的效果,但存在效率低、可重用性低、實(shí)時(shí)性難保證等問題。至今,隨著直線電機(jī)、電主軸、傳感器、伺服控制和變頻器等高性能零部件的成熟和控制算法的突破,數(shù)控系統(tǒng)所追求的高速度、高精度已經(jīng)日趨完善。進(jìn)一步提高數(shù)控系統(tǒng)開發(fā)效率、實(shí)現(xiàn)數(shù)控系統(tǒng)的個(gè)性化定制、同時(shí)保證數(shù)控系統(tǒng)的功能和非功能(主要是實(shí)時(shí)性和可靠性)要求,需要對(duì)數(shù)控系統(tǒng)的設(shè)計(jì)策略與方法學(xué)進(jìn)行創(chuàng)新研究。
模型驅(qū)動(dòng)方法和領(lǐng)域工程各自以模型和領(lǐng)域?yàn)橹行模谙到y(tǒng)開發(fā)方面取得了眾多成果。基于組件/構(gòu)件進(jìn)行數(shù)控系統(tǒng)開發(fā)也是學(xué)者的關(guān)注點(diǎn),基于組件的開發(fā)方法能解決數(shù)控系統(tǒng)軟件復(fù)用度低,可配置性差的問題,但其人工編碼的方式無(wú)法從根本上解決數(shù)控系統(tǒng)中非功能屬性的滿足與編碼過(guò)程中的測(cè)試集成問題。
特定領(lǐng)域建模是近年來(lái)發(fā)展迅速的軟件工程新方法,并且在嵌入式系統(tǒng)領(lǐng)域得到了廣泛應(yīng)用。以模型為核心,以特定領(lǐng)域?yàn)閷?shí)施對(duì)象,構(gòu)建該領(lǐng)域的建模語(yǔ)言以達(dá)到領(lǐng)域內(nèi)應(yīng)用系統(tǒng)的快速開發(fā)以及實(shí)現(xiàn)領(lǐng)域?qū)哟蔚闹赜谩?/p>
有限狀態(tài)機(jī)能表達(dá)出事情驅(qū)動(dòng)的狀態(tài)跳轉(zhuǎn),被廣泛應(yīng)用于裝備控制系統(tǒng)研發(fā),但缺乏對(duì)數(shù)控系統(tǒng)實(shí)時(shí)性的有效描述。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明目的是提高數(shù)控系統(tǒng)特定領(lǐng)域建模開發(fā)效率,實(shí)現(xiàn)個(gè)性化定制和系統(tǒng)可重用,克服數(shù)控系統(tǒng)開發(fā)方法上存在的上述問題。提出一種數(shù)控系統(tǒng)實(shí)時(shí)分層有限狀態(tài)機(jī)建模開發(fā)方法,在保證功能和實(shí)時(shí)性能的基礎(chǔ)上,實(shí)現(xiàn)可重構(gòu)、個(gè)性化定制的數(shù)控系統(tǒng)快速開發(fā)。
包括以下步驟:
(1)多視圖的描述數(shù)控系統(tǒng)
數(shù)控系統(tǒng)的特性包括多個(gè)方面,如數(shù)據(jù)流、系統(tǒng)行為、任務(wù)同步等,為了降低建模的復(fù)雜性,采用多視圖的描述策略,不同的系統(tǒng)特性放置在不同的視圖里。
(2)基于端口的數(shù)據(jù)流描述
依據(jù)步驟(1),對(duì)元模型數(shù)據(jù)流進(jìn)行元建模。數(shù)據(jù)流用來(lái)描述數(shù)據(jù)在各個(gè)功能模塊之間的流向,從而體現(xiàn)模塊與模塊之間的交互關(guān)系。基于端口的數(shù)據(jù)流描述策略,即每個(gè)功能模塊包含若干數(shù)據(jù)端口,端口類型包括輸入端口和輸出端口。一個(gè)模塊的輸出端口連接另一個(gè)模塊的輸入端口,表明功能模塊的執(zhí)行順序。
(3)數(shù)控系統(tǒng)動(dòng)態(tài)行為分析
依據(jù)步驟(1),對(duì)元模型的動(dòng)態(tài)行為進(jìn)行分析。數(shù)控系統(tǒng)包括五個(gè)主要狀態(tài),分別是空閑狀態(tài)、配置狀態(tài)、運(yùn)動(dòng)狀態(tài)、錯(cuò)誤報(bào)警狀態(tài)和急停狀態(tài)。首先系統(tǒng)啟動(dòng),經(jīng)過(guò)初始化階段,進(jìn)入空閑狀態(tài)。配置請(qǐng)求和運(yùn)動(dòng)請(qǐng)求事件可以使系統(tǒng)分別進(jìn)入配置狀態(tài)和運(yùn)動(dòng)狀態(tài)。進(jìn)入運(yùn)動(dòng)狀態(tài)之后首先進(jìn)行軸組檢查,然后啟動(dòng)相關(guān)的運(yùn)動(dòng)軸,軸組就緒,開始判斷運(yùn)動(dòng)模式,從而進(jìn)入不同的子運(yùn)動(dòng)狀態(tài),主要有自動(dòng)加工狀態(tài)、手動(dòng)加工運(yùn)動(dòng)狀態(tài)和手輪運(yùn)動(dòng)狀態(tài)以及回零運(yùn)動(dòng)狀態(tài),自動(dòng)加工狀態(tài)和手動(dòng)加工狀態(tài)可以通過(guò)暫停事件使系統(tǒng)進(jìn)入暫停狀態(tài)。如果運(yùn)動(dòng)完成,則重新回到空閑狀態(tài);如果遇到錯(cuò)誤,則進(jìn)入錯(cuò)誤報(bào)警狀態(tài);如果遇到急停事件,則進(jìn)入急停狀態(tài),也可以解除急停重新進(jìn)入運(yùn)動(dòng)狀態(tài)。
(4)行為元建模
依據(jù)步驟(3),采用實(shí)時(shí)分層有限狀態(tài)機(jī)進(jìn)行數(shù)控系統(tǒng)行為元建模。數(shù)控系統(tǒng)的核心任務(wù)為時(shí)間和事件并存的復(fù)雜混合任務(wù)集,如連續(xù)加工中的插補(bǔ)、位置控制均具有強(qiáng)實(shí)時(shí)周期性特點(diǎn),I/O監(jiān)控為弱實(shí)時(shí)周期性任務(wù),單純使用狀態(tài)機(jī)或分層有限狀態(tài)機(jī)僅僅能描述事情驅(qū)動(dòng)的任務(wù)切換狀態(tài)遷移,但對(duì)于復(fù)雜混合任務(wù)描述無(wú)能為力。因此,提出一種實(shí)時(shí)分層有限狀態(tài)機(jī),在分層有限狀態(tài)機(jī)的基礎(chǔ)上,增加實(shí)時(shí)屬性參數(shù),把傳統(tǒng)狀態(tài)機(jī)定義為一個(gè)六元組:
RTFSM=(T,S,E,δ,s0,se)
其中:T為時(shí)間屬性;
S為有窮狀態(tài)集;
E為有窮事件集;
δ為從S×E到S上的映射或轉(zhuǎn)移集合;
s0∈S為系統(tǒng)初始狀態(tài);
se∈S為系統(tǒng)終止?fàn)顟B(tài)。
已知第i層RTHFSM為RTHFSMi=(Ti,Si,Ei,δi,s0,se),狀態(tài)遷移如下所示:
第一步:存在某個(gè)狀態(tài)sx∈Si,且其具有下層RTFSMi+1;
第二步:則當(dāng)系統(tǒng)RHTFSM處于第i層的狀態(tài)sx時(shí),首先判讀Ti是否為實(shí)時(shí)周期性任務(wù),當(dāng)時(shí)間屬性Ti達(dá)到,系統(tǒng)會(huì)進(jìn)入RTHFSMi+1進(jìn)行執(zhí)行。Ti=0即為非周期性任務(wù),即為事情驅(qū)動(dòng)任務(wù),跳轉(zhuǎn)進(jìn)入下一層;
第三步:如果第i+1層RTHFSM有可能還會(huì)存在更下一層的RHTFSMi+2,則跳轉(zhuǎn)第二步執(zhí)行。
(5)完成元建模后,經(jīng)過(guò)元模型解釋器形成計(jì)算機(jī)數(shù)控系統(tǒng)開發(fā)工具。
(6)依據(jù)步驟(5)所生成的計(jì)算機(jī)數(shù)控系統(tǒng)開發(fā)工具,可針對(duì)特定硬件平臺(tái)構(gòu)建數(shù)控系統(tǒng)模型,并配置模型屬性。數(shù)控系統(tǒng)模型可為車床數(shù)控系統(tǒng)、銑床數(shù)控系統(tǒng)。步驟(1)至步驟(6)為模型層。
(7)進(jìn)行數(shù)控系統(tǒng)構(gòu)件庫(kù)的開發(fā)和完善,實(shí)施計(jì)算機(jī)數(shù)控系統(tǒng)四級(jí)任務(wù)調(diào)度算法,實(shí)施模型轉(zhuǎn)換和源代碼自動(dòng)生成算法。
(8)依據(jù)步驟(6)和(7),將模型導(dǎo)入MATLAB、UPPAAL等工具分別進(jìn)行功能驗(yàn)證和實(shí)時(shí)性能驗(yàn)證。
(9)依據(jù)步驟(7)和(8),驗(yàn)證無(wú)誤的模型進(jìn)行源代碼自動(dòng)生成。依據(jù)映射規(guī)則庫(kù),對(duì)應(yīng)相應(yīng)的代碼庫(kù)和構(gòu)件庫(kù),進(jìn)行數(shù)控系統(tǒng)源代碼粘合和構(gòu)件匹配。
(10)依據(jù)步驟(9),編譯連接源代碼,生成可執(zhí)行的數(shù)控系統(tǒng)軟件。步驟(7)至(10)為實(shí)施層。
和現(xiàn)有技術(shù)相比,本發(fā)明提供的方法具有以下優(yōu)點(diǎn):本發(fā)明針對(duì)計(jì)算機(jī)數(shù)控系統(tǒng),采用實(shí)時(shí)分層有限狀態(tài)機(jī)理論,構(gòu)建計(jì)算機(jī)數(shù)控系統(tǒng)元模型,繼而建立計(jì)算機(jī)數(shù)控系統(tǒng)領(lǐng)域建模語(yǔ)言。用戶采用該建模語(yǔ)言,通過(guò)可視化的模型搭建,實(shí)現(xiàn)模型驗(yàn)證和源代碼自動(dòng)生成,繼而生成特定平臺(tái)下的計(jì)算機(jī)數(shù)控系統(tǒng)。該開發(fā)方法在保證計(jì)算機(jī)數(shù)控系統(tǒng)功能和實(shí)時(shí)性能的前提下,能提高計(jì)算機(jī)數(shù)控系統(tǒng)開發(fā)的效率,提高計(jì)算機(jī)數(shù)控系統(tǒng)的可重用性和可靠性。
附圖說(shuō)明
附圖1是本發(fā)明的基于實(shí)時(shí)分層有限狀態(tài)機(jī)計(jì)算機(jī)數(shù)控系統(tǒng)建模開發(fā)方法程圖;
附圖2計(jì)算機(jī)數(shù)控系統(tǒng)四級(jí)任務(wù)調(diào)度算法示意圖;
附圖3是模型功能和實(shí)時(shí)性能驗(yàn)證示意圖;
附圖4是源代碼生成算法示意圖;
附圖5是數(shù)控系統(tǒng)建模環(huán)境使用示意圖。
具體實(shí)施方式:
本發(fā)明基于實(shí)時(shí)分層有限狀態(tài)機(jī)的計(jì)算機(jī)數(shù)控系統(tǒng)建模開發(fā)方法,包括領(lǐng)域?qū)雍蛯?shí)施層兩個(gè)層次。領(lǐng)域?qū)影ㄓ?jì)算機(jī)數(shù)控系統(tǒng)元建模和用戶建模,實(shí)施層包括模型的功能和非功能驗(yàn)證及模型的源代碼自動(dòng)生成階段。如附圖1所示,采用GME元建模軟件101,基于實(shí)時(shí)分層有限狀態(tài)機(jī)理論102,進(jìn)行計(jì)算機(jī)數(shù)控系統(tǒng)元模型103構(gòu)建。元模型經(jīng)過(guò)屬性配置和OCL語(yǔ)言規(guī)約后,經(jīng)過(guò)GME內(nèi)置的元模型解釋器104生成計(jì)算機(jī)數(shù)控系統(tǒng)建模語(yǔ)言105,該語(yǔ)言具備可視化的建模環(huán)境。數(shù)控系統(tǒng)用戶106可利用改建模環(huán)境進(jìn)行特定平臺(tái)的數(shù)控系統(tǒng)模型搭建107。至此,均是開發(fā)方法領(lǐng)域?qū)用?。通過(guò)面向不同工具的模型解釋器108,數(shù)控系統(tǒng)模型可在工具里進(jìn)行數(shù)控系統(tǒng)功能和實(shí)時(shí)性能驗(yàn)證109,數(shù)控系統(tǒng)模型可經(jīng)過(guò)模型解釋器109,根據(jù)映射庫(kù)匹配源代碼和構(gòu)件,實(shí)現(xiàn)模型的源代碼自動(dòng)生成111,經(jīng)過(guò)源代碼的編譯、連接、運(yùn)行110,即可形成特定平臺(tái)的數(shù)控系統(tǒng)112。
具體步驟如下:
(1)領(lǐng)域?qū)佑?jì)算機(jī)數(shù)控系統(tǒng)元模型描述
采用元建模工具GME多視圖的方式,針對(duì)功能和實(shí)時(shí)性能進(jìn)行數(shù)控系統(tǒng)描述。元模型描述由一個(gè)統(tǒng)一的實(shí)時(shí)分層有限狀態(tài)機(jī)進(jìn)行規(guī)約整體描述。功能描述包括HMI人機(jī)交互管理系統(tǒng)、運(yùn)動(dòng)控制系統(tǒng)、PLC控制系統(tǒng)。實(shí)時(shí)性能描述包括四級(jí)調(diào)度任務(wù)算法描述。如HMI人機(jī)交互管理系統(tǒng),由狀態(tài)機(jī)實(shí)現(xiàn)數(shù)控系統(tǒng)不同狀態(tài)跳轉(zhuǎn)的描述(如手動(dòng)、自動(dòng)模式切換等)。數(shù)控系統(tǒng)軟件界面采用統(tǒng)一的元素進(jìn)行描述,包括按鈕、編輯框、靜態(tài)文本框等。
元模型描述過(guò)程中使用OCL語(yǔ)言進(jìn)行數(shù)控系統(tǒng)建模的規(guī)約。元模型經(jīng)過(guò)GME內(nèi)置的解釋器解釋,生成計(jì)算機(jī)數(shù)控系統(tǒng)建模語(yǔ)言,同時(shí)是計(jì)算機(jī)數(shù)控系統(tǒng)建模環(huán)境。
(2)領(lǐng)域?qū)佑?jì)算機(jī)數(shù)控系統(tǒng)模型搭建
如附圖5所示。使用步驟(1)所生成的計(jì)算機(jī)數(shù)控系統(tǒng)建模環(huán)境501,采用多視圖方式,分別進(jìn)行數(shù)控系統(tǒng)功能建模和實(shí)時(shí)性能建模。功能建模包括HMI人機(jī)交互管理軟件502建模(包括各種狀態(tài)下軟件界面建模505及各元素搭建和配置508)、運(yùn)動(dòng)控制建模503(包括軸控制、軸組管理506及插補(bǔ)算法配置、伺服控制建模、四級(jí)調(diào)度算法配置509)、PLC建模504(包括主軸、冷卻、潤(rùn)滑、刀架507的I/O分配、定制510).
(3)實(shí)施層計(jì)算機(jī)數(shù)控系統(tǒng)模型驗(yàn)證
模型驗(yàn)證是開發(fā)方法的重要環(huán)節(jié),驗(yàn)證領(lǐng)域用戶模型的邏輯、功能、數(shù)控系統(tǒng)實(shí)時(shí)性能。如圖3所示。用戶模型301,使用已經(jīng)開發(fā)好的不同平臺(tái)的模型解釋器(302,302,304等),分別解析用戶模型到相應(yīng)工具進(jìn)行模型驗(yàn)證。包括simulink下的邏輯功能驗(yàn)證305、truetime工具下的實(shí)時(shí)性能驗(yàn)證306、UPPAAL下的實(shí)時(shí)性驗(yàn)證307。
實(shí)時(shí)性能驗(yàn)證中,集成了本發(fā)明的數(shù)控系統(tǒng)四級(jí)任務(wù)調(diào)度算法。如圖2所示。首先對(duì)任務(wù)進(jìn)行類型判斷201,分為四種情況。第一種為強(qiáng)實(shí)時(shí)周期性任務(wù)202,如插補(bǔ)算法等,采取相應(yīng)的第一級(jí)調(diào)度算法206;第二種為強(qiáng)實(shí)時(shí)突發(fā)性任務(wù)203,如急停、暫停等,采取相應(yīng)的第二級(jí)調(diào)度算法207;第三種為弱實(shí)時(shí)周期性任務(wù)204,如診斷、狀態(tài)顯示燈,采取相應(yīng)的第三級(jí)調(diào)度算法208;第四種為非實(shí)時(shí)任務(wù),如數(shù)控程序編輯、語(yǔ)法糾錯(cuò)等,采取相應(yīng)的第四級(jí)調(diào)度算法(即事件驅(qū)動(dòng)狀態(tài)機(jī)跳轉(zhuǎn))。
(4)實(shí)施層數(shù)控系統(tǒng)源代碼自動(dòng)生成
如附圖4所示,用戶模型401可以通過(guò)模型翻譯器402翻譯成特定平臺(tái)下的產(chǎn)品級(jí)源代碼。模型翻譯器根據(jù)映射規(guī)則庫(kù)403進(jìn)行判斷。如匹配源代碼庫(kù)404,把相應(yīng)模型和源代碼匹配,進(jìn)行源代碼的粘合406。如匹配構(gòu)件庫(kù)405,進(jìn)行構(gòu)件的匹配407。最后形成數(shù)控系統(tǒng)源代碼408,源代碼經(jīng)過(guò)編譯、連接,可形成數(shù)控系統(tǒng)。