基于UML的一種開(kāi)放式數(shù)控軟件系統(tǒng)建模與界面實(shí)現(xiàn)研究
點(diǎn)擊:1463
A+ A-
所屬頻道:新聞中心
本文在對(duì)上海電氣中央研究院三軸銑削數(shù)控系統(tǒng)需求分析的基礎(chǔ)上,結(jié)合固高運(yùn)動(dòng)控制器GE-300SV的功能實(shí)現(xiàn),提出了一種適用NC嵌入PLC型的開(kāi)放式數(shù)控軟件系統(tǒng)框架模型。采用統(tǒng)一建模語(yǔ)言UML來(lái)描述系統(tǒng)的功能需求、總體設(shè)計(jì)、模塊設(shè)計(jì)等,并建立了各種功能視圖,有效地對(duì)開(kāi)放式數(shù)控軟件系統(tǒng)進(jìn)行了建模,并通過(guò)面向?qū)ο缶幊陶Z(yǔ)言VC++實(shí)現(xiàn)了該系統(tǒng)的接口界面。
1 基于UML的建模方法及其在開(kāi)放式數(shù)控軟件系統(tǒng)開(kāi)發(fā)中的應(yīng)用優(yōu)勢(shì)
1.1 基于UML的建模方法
面向?qū)ο蠹夹g(shù)是軟件工程領(lǐng)域的重要技術(shù)。UML是由美國(guó)Ratianal公司的三位軟件工程師發(fā)起并實(shí)現(xiàn)的標(biāo)準(zhǔn)建模語(yǔ)言。CTML建模采用的是一種圖形表示法,它定義了建模語(yǔ)言的文法,并通過(guò)元模型對(duì)語(yǔ)言中的基本概念、術(shù)語(yǔ)和表示方法給出了統(tǒng)一的較為嚴(yán)格的定義和說(shuō)明以及這些概念的準(zhǔn)確含義,充分體現(xiàn)了面向?qū)ο蠹夹g(shù)的封裝、繼承與多態(tài)等特點(diǎn)。UML在融入軟件工程領(lǐng)域的面向?qū)ο蠹夹g(shù)的基礎(chǔ)上,不僅支持面向?qū)ο蟮姆治雠c設(shè)計(jì),而且還支持從需求分析開(kāi)始的軟件開(kāi)發(fā)的全部過(guò)程。UML利用可視化的框圖來(lái)描述系統(tǒng)的功能實(shí)現(xiàn),為開(kāi)發(fā)者提供了從不同角度去觀察和展示系統(tǒng)各種功能和行為特征的有效方法。
基于UML的建模方法就是在需求分析的基礎(chǔ)上提取出未來(lái)系統(tǒng)中的實(shí)體對(duì)象,使用UML的狀態(tài)視圖來(lái)描述每個(gè)實(shí)體對(duì)象的狀態(tài)變化及其相關(guān)事件;建立實(shí)體對(duì)象及其相關(guān)事件的動(dòng)態(tài)時(shí)序視圖,用以描述實(shí)體對(duì)象間的消息傳遞。通過(guò)狀態(tài)視圖可以明確系統(tǒng)功能對(duì)象的具體活動(dòng)、行為條件等,而順序視圖則表現(xiàn)了消息傳遞的時(shí)序性。兩者結(jié)合可以有效建立系統(tǒng)實(shí)現(xiàn)的類圖及其交互關(guān)系,提高了系統(tǒng)實(shí)現(xiàn)的透明度和可靠性。
1.2 UML在開(kāi)放式數(shù)控軟件系統(tǒng)開(kāi)發(fā)中的優(yōu)勢(shì)
由于開(kāi)放式數(shù)控軟件系統(tǒng)的開(kāi)發(fā)涉及到系統(tǒng)硬件功能的實(shí)現(xiàn),包括譯碼、插補(bǔ)、位置和軌跡控制、線程間通信及I/O狀態(tài)監(jiān)控等功能,因此,需要明確系統(tǒng)的各功能對(duì)象的具體行為和交互關(guān)系。UML所提供的模型管理視圖可以有效地將上述功能進(jìn)行可視化模型描述。通過(guò)模型管理機(jī)制,開(kāi)發(fā)者可以將各個(gè)模型元素合理地分配到各個(gè)不同層次的包,從而對(duì)系統(tǒng)中各功能對(duì)象間的關(guān)系在不同層面上進(jìn)行全面描述,有效地提高了系統(tǒng)設(shè)計(jì)的可讀性和可維護(hù)性。UML的這種面向?qū)ο蟮膶哟位?、模塊化建模機(jī)制非常適合于開(kāi)放式數(shù)控軟件系統(tǒng)的開(kāi)發(fā),一方面通過(guò)層次化、模塊化建??梢员WC軟件系統(tǒng)的開(kāi)放性;另一方面UML可以將系統(tǒng)中的各個(gè)功能對(duì)象用可視化的框圖加以描述,增強(qiáng)了系統(tǒng)功能的透明度,有利干提高系統(tǒng)開(kāi)發(fā)的質(zhì)量和效率。
另外,UML的支持工具Ifatinnal Pose軟件為IJIVIL的實(shí)現(xiàn)提供了強(qiáng)大的集成操作環(huán)境,同樣為開(kāi)放式數(shù)控軟件系統(tǒng)的開(kāi)發(fā)提供了高效可靠的實(shí)現(xiàn)手段。
2 利用UML對(duì)NC嵌入PC型開(kāi)放式數(shù)控軟件系統(tǒng)進(jìn)行分析與建模
2.1 系統(tǒng)需求分析
系統(tǒng)需求分析就是要對(duì)開(kāi)放式數(shù)控軟件系統(tǒng)的功能模塊和結(jié)構(gòu)模型進(jìn)行分析,從系統(tǒng)參與者的角度,明確系統(tǒng)所能提供的具體功能。對(duì)于開(kāi)放式數(shù)控軟件系統(tǒng)而言,系統(tǒng)參與者代表了與系統(tǒng)有接口行為的人或事物,是代表某一特定功能的角色。參與者是虛擬的概念,可以是軟件的使用者機(jī)床操作者),也可以是外部系統(tǒng)或設(shè)備(I/O接口)。
圍繞上海電氣中央研究院對(duì)開(kāi)放式三軸銑削加工數(shù)控系統(tǒng)研發(fā)的目標(biāo),對(duì)其數(shù)控軟件系統(tǒng)進(jìn)行了詳細(xì)的功能需求分析。
(1)該系統(tǒng)是基于固高運(yùn)動(dòng)控制器的NC嵌入PC型開(kāi)放式數(shù)控系統(tǒng),必須保證軟件系統(tǒng)的模塊化和開(kāi)放性。
(2)創(chuàng)該系統(tǒng)能夠?qū)崿F(xiàn)自動(dòng)程序加工方式和MDI加工方式,并在人機(jī)界面上顯示相關(guān)的加工位置信息、速度信息、刀具信息、進(jìn)給信息、加工時(shí)間、報(bào)警信息及I/O狀態(tài)信息。
(3)該系統(tǒng)能夠?qū)崿F(xiàn)JOG運(yùn)動(dòng)控制方式、連續(xù)運(yùn)動(dòng)控制和手輪控制運(yùn)動(dòng)方式等。
(4)用戶可以通過(guò)該系統(tǒng)控制機(jī)床實(shí)現(xiàn)基本的直線/圓弧插補(bǔ)功能,并保證機(jī)床運(yùn)行可靠和穩(wěn)定。
(5)必須提供機(jī)床操作者一個(gè)操作簡(jiǎn)便、響應(yīng)適中且人性化的人機(jī)接口界面。
(6)應(yīng)該具有程序管理功能,如:程序修改、刪除以及新程序建立并存儲(chǔ)等功能。
(7)應(yīng)具有參數(shù)管理和配置功能,如:系統(tǒng)參數(shù)配置、刀具參數(shù)設(shè)置,坐標(biāo)系參數(shù)設(shè)置等功能。
(8)必須具有功能可擴(kuò)展、可重構(gòu)等特點(diǎn)。
(9)必須具有完全的自主知識(shí)產(chǎn)權(quán)。
根據(jù)以上對(duì)系統(tǒng)的功能需求分析,采用固高公司國(guó)產(chǎn)運(yùn)動(dòng)控制器,提出并設(shè)計(jì)了該數(shù)控軟件系統(tǒng)的總體框架模型,如圖1所示。
該開(kāi)放式數(shù)控軟件系統(tǒng)主要完成人機(jī)交互和譯碼功能,由嵌入式運(yùn)動(dòng)控制器(GE-300SV)完成插補(bǔ)和位置軌跡控制功能。系統(tǒng)人機(jī)界面主要完成系統(tǒng)運(yùn)行的數(shù)據(jù)顯示、加工運(yùn)行狀態(tài)顯示、I/O狀態(tài)監(jiān)控和報(bào)警功能。機(jī)床操作者通過(guò)人機(jī)界面對(duì)系統(tǒng)進(jìn)行操作控制,系統(tǒng)維護(hù)員可以通過(guò)人機(jī)界面進(jìn)行系統(tǒng)參數(shù)維護(hù)。系統(tǒng)的譯碼線程是一個(gè)虛擬對(duì)象,主要完成對(duì)NC程序的譯碼工作。通過(guò)UML的用例視圖圖2可以清楚地描述上述系統(tǒng)框架模型和系統(tǒng)的具體功能需求。系統(tǒng)用例圖描述了不同參與者的具體行為及其流。程。例如:機(jī)床操作者通過(guò)人機(jī)交互用例可以實(shí)現(xiàn)對(duì)系統(tǒng)的運(yùn)行操作、參數(shù)設(shè)置操作和程序管理操作等3個(gè)子功能行為。同樣,機(jī)床操作者通過(guò)系統(tǒng)運(yùn)行操作用例可以實(shí)現(xiàn)諸如自動(dòng)加工方式、連續(xù)運(yùn)動(dòng)方式等多種方式的加工用例行為,從而為開(kāi)發(fā)者清楚地描述了所需要實(shí)現(xiàn)的功能類型和實(shí)現(xiàn)路徑及其相關(guān)對(duì)象。
2.2 系統(tǒng)用例描述
用例圖中的每個(gè)用例都是從用戶的角度來(lái)描述的系統(tǒng)的具體功能,都代表了使用系統(tǒng)的不同方式并完成產(chǎn)生不同的結(jié)果。為了能夠描述用例的具體行為,每一個(gè)用例可以再進(jìn)行詳細(xì)的用例事件行為)說(shuō)明。下面僅以人機(jī)交互用例的一個(gè)具體用例事件自動(dòng)方式運(yùn)行加工操作來(lái)說(shuō)明其功能行為及流程。首先,對(duì)該用例做一個(gè)簡(jiǎn)要描述:
(1)該用例實(shí)現(xiàn)的前提條件。系統(tǒng)已經(jīng)正常啟動(dòng)并使該用例處于可執(zhí)行狀態(tài)。
(2)該用例的事件流程為:
①操作者通過(guò)人機(jī)界面選擇進(jìn)入自動(dòng)方式子界面。
?、诓僮髡哌x擇程序管理功能項(xiàng)進(jìn)入程序管理子界面。
③操作者選擇相應(yīng)程序后返回自動(dòng)程序運(yùn)行子界面。
?、懿僮髡吒鶕?jù)系統(tǒng)提示進(jìn)行下一步操作。
⑤系統(tǒng)顯示各種數(shù)據(jù)及程序運(yùn)行狀態(tài)信息。
?、拊摮绦蛘_\(yùn)行完畢,系統(tǒng)提示操作者執(zhí)行下一步。
?、呦到y(tǒng)恢復(fù)初始狀態(tài),該用例結(jié)束。
對(duì)應(yīng)于該用例事件的UML活動(dòng)可用圖3來(lái)表示。
2.3 系統(tǒng)順序圖
系統(tǒng)順序圖描述了參與者與系統(tǒng)之間的交互事件、事件發(fā)生的順序以及系統(tǒng)對(duì)象之間消息傳遞的時(shí)序,展示了機(jī)床操作者與系統(tǒng)之間的交互行為和流程。通過(guò)對(duì)系統(tǒng)用例的分析,可以將整個(gè)系統(tǒng)分解到不同的子運(yùn)行場(chǎng)景,從不同的角度分析和評(píng)價(jià)系統(tǒng)框架模型的合理性。子運(yùn)行場(chǎng)景是指用UMLL的順序圖描述的具體用例事件的發(fā)生流程和對(duì)象間消息傳遞的時(shí)序。消息的類型及其傳遞的順序是系統(tǒng)順序圖描述的核心,建立順序圖的前提就是利用UML的模型單元分組機(jī)制將系統(tǒng)按功能對(duì)象進(jìn)行分解。
本系統(tǒng)的功能對(duì)象主要分布在3個(gè)不同的線程中,分別是系統(tǒng)主線程、NC程序解析線程和固高板塊接口線程。將功能對(duì)象與具體用例事件在3個(gè)主要線程中的實(shí)現(xiàn)用系統(tǒng)順序圖進(jìn)行描述可以有效表達(dá)功能對(duì)象間消息的交互,從而提高系統(tǒng)開(kāi)發(fā)的可操作性。整個(gè)系統(tǒng)的功能對(duì)象之間的消息交互可以由自動(dòng)方式執(zhí)行順序圖、MDI方式執(zhí)行順序圖、點(diǎn)動(dòng)方式運(yùn)動(dòng)控制順序圖和連動(dòng)方式運(yùn)動(dòng)控制順序圖等8個(gè)系統(tǒng)順序圖進(jìn)行描述。限于篇幅,現(xiàn)僅以自動(dòng)方式執(zhí)行用例事件來(lái)建立自動(dòng)方式執(zhí)行順序圖圖4,以便與自動(dòng)方式用例活動(dòng)圖相對(duì)應(yīng)來(lái)說(shuō)明在自動(dòng)方式下機(jī)床操作者與系統(tǒng)之間的交互以及系統(tǒng)對(duì)象間的消息傳遞情況。系統(tǒng)功能對(duì)象以分析類的形式出現(xiàn),是對(duì)系統(tǒng)模型中問(wèn)題域事物的描述,不同于軟件設(shè)計(jì)中的類。
2.4 系統(tǒng)設(shè)計(jì)類圖
系統(tǒng)類圖是系統(tǒng)設(shè)計(jì)階段關(guān)鍵一環(huán),是實(shí)現(xiàn)用例的邏輯解決方案。將整個(gè)系統(tǒng)作為功能對(duì)象的集合,借助UML包的概念,將系統(tǒng)功能對(duì)象進(jìn)行分類別、分層次描述,從而形成包圖。包是類對(duì)象組,可以進(jìn)一步對(duì)包中的類進(jìn)行類屬性和類方法的識(shí)別,并最終得到完整的系統(tǒng)類圖,為下一階段的系統(tǒng)實(shí)現(xiàn)提供保障。
通過(guò)將分析類轉(zhuǎn)化為系統(tǒng)實(shí)現(xiàn)過(guò)程中所需的設(shè)計(jì)類,可以得到系統(tǒng)的設(shè)計(jì)類圖。仍以自動(dòng)方式下程序運(yùn)行操作用例為例,得到實(shí)現(xiàn)該用例所需要的設(shè)計(jì)類圖5。該設(shè)計(jì)類圖中的類主要完成人機(jī)界面交互操作、NC程序解析處理、NC程序譯碼結(jié)果存儲(chǔ)寫固高控制器緩沖區(qū))處理,I/O狀態(tài)變量讀取與顯示操作和加工信息界面顯示處理功能。其中,CNuinCnntrnLApp是主線程類,由CNumContmlDlg類實(shí)現(xiàn)并完成界面操作及其信息顯示功能;NCfaode類是Nf;程序解析類,通過(guò)CNumCanntrnlDlg類提供的界面操作進(jìn)行程序的自動(dòng)解析及運(yùn)行處理。在處理過(guò)程中調(diào)用I/O處理線程的處理結(jié)果,并通知CNumCnntrnlDlg類進(jìn)行顯示處理。
3 系統(tǒng)界面實(shí)現(xiàn)
根據(jù)所設(shè)計(jì)的系統(tǒng)框架模型和UML分析所得到的系統(tǒng)設(shè)計(jì)類,利用UML支持工具Rational Rose生成了軟件系統(tǒng)的主要框架C++語(yǔ)言代碼。選用VC++面向?qū)ο缶幊坦ぞ哌M(jìn)行了具體的界面實(shí)現(xiàn)。
首先,根據(jù)系統(tǒng)設(shè)計(jì)類圖的描述進(jìn)行CNnmContmlDlg類的實(shí)現(xiàn)。該類是系統(tǒng)功能實(shí)現(xiàn)的主類,在實(shí)
現(xiàn)過(guò)程中,可以調(diào)用譯碼線程進(jìn)行NC程序解析,并通過(guò)譯碼線程調(diào)用I/O接口線程完成對(duì)I/O狀態(tài)的監(jiān)控,然后實(shí)現(xiàn)與其有直接依賴關(guān)系的6個(gè)子類。在具體實(shí)現(xiàn)CCNCaProGTProg類時(shí),必須限制固高控制器硬件緩沖區(qū)的最大容量,否則容易產(chǎn)生運(yùn)行異常。譯碼線程的實(shí)現(xiàn)主要依靠CSourceCde類、ProgrameLine。類和CNCFile類等5個(gè)系統(tǒng)設(shè)計(jì)類。
CNumfanntrnlDlg類所實(shí)現(xiàn)的主界面如圖6所示,同時(shí)系統(tǒng)的初始狀態(tài)配置為系統(tǒng)回零狀態(tài)。在主界面上有兩類功能按鈕,一類是位于界面底端的主功能按鈕,操作者可以通過(guò)主功能操作按鈕進(jìn)行相應(yīng)的程序加工、程序管理、參數(shù)配置等操作;另一類是側(cè)面豎排的子功能按鈕,操作者必須在選擇了主功能后才能進(jìn)行相應(yīng)的子功能操作。為了提高人機(jī)交互的效率,NC程序運(yùn)行狀態(tài)、位置信息、加工工藝信息和報(bào)警信息均按類別分區(qū)顯示在主界面上,這有利于操作者在加工過(guò)程中準(zhǔn)確做出響應(yīng)。
系統(tǒng)的程序加工主功能按鈕是操作者控制機(jī)床進(jìn)行加工的主要操作按鈕。它的子功能按鈕是按照加工方式實(shí)現(xiàn)的,主要包括點(diǎn)動(dòng)加工方式、連續(xù)運(yùn)動(dòng)方式、手輪方式、MDI方式和自動(dòng)加工方式等。每一個(gè)子功能按鈕均對(duì)應(yīng)主界面的相應(yīng)顯示項(xiàng),如點(diǎn)動(dòng)方式界面見(jiàn)圖7。
系統(tǒng)的程序管理主功能按鈕是對(duì)系統(tǒng)程序管理類的實(shí)現(xiàn),主要負(fù)責(zé)程序編輯、刪除、創(chuàng)建及存儲(chǔ)等工作,如圖8。
操作者通過(guò)程序管理子功能按鈕實(shí)現(xiàn)具體的程序管理工作,如:創(chuàng)建一個(gè)新程序,操作者僅需要選擇“新程序”子功能按鈕,同時(shí)在出現(xiàn)的新對(duì)話框中輸入所要?jiǎng)?chuàng)建的程序的名字,就可以方便地在系統(tǒng)程序管理主界面建立該程序,然后雙擊該程序名便可進(jìn)入程序編輯界面進(jìn)行NC程序輸入和編輯。在程序創(chuàng)建完畢后進(jìn)行保存操作。
系統(tǒng)的參數(shù)配置主功能包括刀具參數(shù)設(shè)置圖9和系統(tǒng)參數(shù)配置圖10,主要完成NC程序加工前的刀具半徑補(bǔ)償、零點(diǎn)偏置、用戶參數(shù)設(shè)置以及與系統(tǒng)有關(guān)的伺服功能參數(shù)、主軸參數(shù)和I/O信息的配置。
4 結(jié)語(yǔ)
本文針對(duì)具體的開(kāi)放式數(shù)控軟件系統(tǒng)進(jìn)行了功能需求分析,設(shè)計(jì)了一種適用于NC嵌入PC型的開(kāi)放式數(shù)控軟件系統(tǒng)框架模型,該模型為該開(kāi)放式數(shù)控軟件系統(tǒng)的開(kāi)發(fā)提供了功能框架和實(shí)現(xiàn)機(jī)制。
利用統(tǒng)一建模語(yǔ)言UML及Ratinnal Rose工具為具體系統(tǒng)建立了各種靜態(tài)和動(dòng)態(tài)視圖,描述了系統(tǒng)的功能需求、實(shí)現(xiàn)流程、設(shè)計(jì)類圖及其交互關(guān)系,完成了系統(tǒng)框架模型的需求分析、總體設(shè)計(jì)、模塊設(shè)計(jì)和詳細(xì)設(shè)計(jì)。有效地降低了數(shù)控軟件系統(tǒng)開(kāi)發(fā)的復(fù)雜性和設(shè)計(jì)人員之間對(duì)系統(tǒng)理解的偏差,提高了該數(shù)控軟件系統(tǒng)設(shè)計(jì)的一致性、完整性和系統(tǒng)開(kāi)發(fā)的質(zhì)量和效率。
(審核編輯: 智匯張瑜)
分享