摘 要: 以基于Windows CE操作系統(tǒng)運(yùn)行的應(yīng)用軟件作為上位機(jī),以自主開發(fā)的通用運(yùn)動控制器作為下位機(jī),以用戶對連續(xù)式單針絎縫機(jī)的需求為基礎(chǔ),構(gòu)建成連續(xù)式單針絎縫機(jī)控制系統(tǒng)。采用統(tǒng)一建模語言UML建立連續(xù)式單針絎縫機(jī)上位機(jī)用例圖,并根據(jù)對用例圖的分析建立上位機(jī)軟件層次模型。詳細(xì)分析了層次模型之間相互轉(zhuǎn)換的條件和約束關(guān)系,使程序具有較高的可靠性和簡潔的可維護(hù)性。
關(guān)鍵詞: Windows CE; 連續(xù)式單針絎縫機(jī); 通用運(yùn)動控制器; 統(tǒng)一建模語言
隨著科學(xué)技術(shù)的發(fā)展,用戶對自動化系統(tǒng)的整體性設(shè)計(jì)提出了很高的要求。在中國傳統(tǒng)的紡織業(yè)中,隨著電腦絎縫機(jī)的廣泛應(yīng)用,客戶對絎縫機(jī)的自動化程度要求越來越高,連續(xù)式電腦絎縫機(jī)也就應(yīng)運(yùn)而生。
傳統(tǒng)的電腦絎縫機(jī)必須由人工通過夾布架把需要絎縫的布料夾好,然后放到絎縫機(jī)上進(jìn)行絎縫,等花樣絎縫完成后,再手動把布料拆下,卷起。這種絎縫機(jī)操作起來費(fèi)時費(fèi)力,需要較多的人一起配合工作。而新型的連續(xù)式絎縫機(jī)則用氣動裝置控制機(jī)械夾子替代了夾布架,當(dāng)要入布時先打開入布閘門,然后打開夾子,卷布裝置拖動布料到達(dá)要求的位置,關(guān)閉夾子,張緊布料,關(guān)閉入布閘門,入布過程完成。絎縫完成以后先打開入布閘門,松開夾子,卷布裝置就可以把已經(jīng)絎縫完成的布料卷起,最后通過切刀把布裁開,一塊布料的整個絎縫過程就完成了。整個過程只需要一個人在控制面板上操作就能完成,省時省力。
本文針對連續(xù)式電腦絎縫機(jī)的特點(diǎn),采用了基于Embedded Visual C++開發(fā)的上位機(jī)軟件和自主研發(fā)的通用運(yùn)動控制器來實(shí)現(xiàn)絎縫功能,滿足實(shí)際生產(chǎn)需要。
1 連續(xù)式絎縫機(jī)控制原理
整個絎縫機(jī)運(yùn)動系統(tǒng)主要由基于嵌入式操作系統(tǒng)Windows CE的上位機(jī)程序、基于Motorola DSP的通用運(yùn)動控制器、伺服電機(jī)和傳感器等外部執(zhí)行裝置組成。在這個系統(tǒng)中,上位機(jī)程序就像人的大腦一樣處理各種指令信息以及可能發(fā)生的異常;通用運(yùn)動控制器則類似于人體的神經(jīng)中樞,將上位機(jī)發(fā)送的指令傳送給外部執(zhí)行裝置,并將執(zhí)行裝置的反饋信息傳回到上位機(jī)程序;外部執(zhí)行裝置則相當(dāng)于四肢和感覺器官,根據(jù)上位機(jī)的指令來完成相應(yīng)的動作,并把外部的一些信息反饋回去。絎縫機(jī)的工作原理是用戶在計(jì)算機(jī)上設(shè)計(jì)出要絎縫的花樣,將花樣傳入下位機(jī)的控制器中,控制器根據(jù)設(shè)計(jì)好的花樣控制M軸電機(jī)帶動針架上下往返運(yùn)動,往返一次絎縫一針,控制X軸電機(jī)和Y軸電機(jī)帶動面料前后、左右移動,在織物上絎縫出設(shè)計(jì)的花樣,從而實(shí)現(xiàn)絎縫的目的[1]。
2 系統(tǒng)的用例建模
UML[2]是一種可用于大型系統(tǒng)建模的統(tǒng)一建模語言, 它不僅支持面向?qū)ο蟮姆治龊驮O(shè)計(jì), 還支持軟件開發(fā)過程。用例視圖描述系統(tǒng)應(yīng)該交付的功能,也就是外部參入者所看到的功能[3]。本軟件設(shè)計(jì)采用UML建模語言,對連續(xù)式絎縫系統(tǒng)進(jìn)行用例分析,通過對整個系統(tǒng)框架進(jìn)行構(gòu)造來實(shí)現(xiàn)上位機(jī)軟件設(shè)計(jì)和建模。上位機(jī)是整個系統(tǒng)的最頂層,主要功能是根據(jù)操作者的要求發(fā)送數(shù)據(jù)和指令,并將必要的位置、速度以及故障報警等信息讀取回來。因此根據(jù)上位機(jī)的功能要求使用UML構(gòu)造上位機(jī)的用例圖,如圖1所示。
界面顯示又細(xì)分為操作界面顯示、花樣顯示、當(dāng)前絎縫參數(shù)、運(yùn)行信息顯示。其中,操作界面顯示中包含了方向鍵、參數(shù)的設(shè)定、絎縫功能的選擇,以及對花樣的選擇;花樣顯示則顯示當(dāng)前絎縫花樣,并實(shí)時顯示在軌運(yùn)動軌跡;當(dāng)前絎縫參數(shù)顯示了當(dāng)前絎縫的針距、速度、花樣名稱、X/Y軸坐標(biāo);運(yùn)行信息所顯示的是絎縫狀態(tài)、報警信息和提示信息。
設(shè)置參數(shù)中包含了對將要絎縫的花樣的參數(shù)設(shè)定,其中包括針距、轉(zhuǎn)速、空走速度、加固、斷線檢測、花樣補(bǔ)償?shù)脑O(shè)定。
功能選擇細(xì)分為絎縫功能選擇、離軌運(yùn)動、在軌運(yùn)動、針?biāo)笳{(diào)整、花樣管理的選擇以及急停功能。其中,絎縫功能包括定起絎點(diǎn)、定出布點(diǎn)、定時打油;離軌運(yùn)動包括回斷線點(diǎn)/穿線點(diǎn)、回起絎點(diǎn)/收絎點(diǎn)、方向鍵空走、回出布點(diǎn)、框架校零/歸零;在軌運(yùn)動包括開車、停車、向前/后空走;針?biāo)笳{(diào)整選擇包括重定梭位,高點(diǎn)、對梭、回高點(diǎn)、手動;花樣管理包括讀取、預(yù)覽花樣、花樣打版。
3 上位機(jī)軟件結(jié)構(gòu)
3.1上位機(jī)軟件層次圖
通過對絎縫機(jī)上位機(jī)用例圖的分析和軟件的構(gòu)建可以將上位機(jī)軟件劃分為四個層次:系統(tǒng)類(CSYSTEM)處于系統(tǒng)的第一層,系統(tǒng)類的成員類(CDlg、CIC、CMailBox)處于系統(tǒng)的第二層,人機(jī)交互界面類(CDlg)的成員類(CHFShow、CHFDoc)和智能控制類(CIC)的成員類(CDSP_IMC、CKB_IMC、CKB_Process、CHF_Process)處于系統(tǒng)的第三層,作為公有成員存在的插補(bǔ)類(CChaBu)處于系統(tǒng)的第四層,如圖2所示。
系統(tǒng)類(CSYSTEM)在程序初始化時被實(shí)例化,其成員類也隨之實(shí)例化。系統(tǒng)類不提供具體方法,只是作為系統(tǒng)的“框架”。
智能控制類(CIC)為絎縫線程提供主控函數(shù),響應(yīng)用戶操作、調(diào)控設(shè)備狀態(tài)并作出相應(yīng)的動作。人機(jī)交互界面類(CDlg)是以圖形界面形式與用戶交互,通過通信接口類與智能控制類通信,將文件讀寫類、圖形與文件顯示類實(shí)例化,作為其成員。通信接口類(CMailBox)為智能控制類和人機(jī)交互界面類的通信提供接收和發(fā)送服務(wù),并存儲待接收的信息。
處于第三層的圖形與文本顯示類(CHFShow)為程序提供圖形及文本顯示方法,并支持特殊功能,例如:動態(tài)跟蹤軌跡等。文件讀寫類(CHFDoc),提供文件讀寫方法,讀取花樣文件,寫入信息參數(shù),并為特殊功能處理提供支持,例如:快速前進(jìn)等。DSP運(yùn)動控制類(CDSP_IMC),通過串口類與運(yùn)動控制器通信,并在內(nèi)部提供存儲區(qū),存放由串口傳遞來的信息??绮蕉翁幚眍悾–KB_Process)和絎縫段處理類(CHF_Process),通過基于段的插補(bǔ),分別得到跨步段和絎縫段的運(yùn)動控制數(shù)據(jù),并存儲在動態(tài)數(shù)組中。
插補(bǔ)類(CChaBu)提供基于花樣段的插補(bǔ)方法和花樣插補(bǔ)數(shù)據(jù),并在插補(bǔ)方法中啟動插補(bǔ)線程,對花樣進(jìn)行插補(bǔ)。
3.2上位機(jī)軟件活動圖
封裝性作為面向?qū)ο蟪绦蛟O(shè)計(jì)的基本特征之一,是指將抽象得到的屬性數(shù)據(jù)和行為代碼有機(jī)地結(jié)合起來,形成一個具有類特征的統(tǒng)一體[4]。此外,通過封裝,可以決定對象的哪些屬性和行為作為內(nèi)部細(xì)節(jié)被隱藏起來,哪些屬性和行為是作為對象和外部的接口。本文中的上位機(jī)程序就很好地利用了面向?qū)ο蟪绦蛟O(shè)計(jì)的封裝性,將系統(tǒng)類的子類劃分為三個大類,即人機(jī)交互界面類、通信接口類、智能控制類。程序運(yùn)行時,他們之間的相互關(guān)系如圖3所示。
在程序中,人機(jī)交互界面類和智能控制類分別通過LoadMailBox()裝載了信箱類對象(mBox)的地址,人機(jī)交互界面類通過這個地址調(diào)用信箱類中的Send()往信箱類中的結(jié)構(gòu)體變量添加數(shù)據(jù),這個Send()就是信箱類對于對話框類的外部接口。智能控制類則通過LoadMailBox()獲得的信箱類對象的地址調(diào)用Receive()來取出對話框類在信箱類結(jié)構(gòu)體內(nèi)存放的數(shù)據(jù),這個Receive()同樣是信箱類對于智能控制類的外部接口。同時智能控制類還能對人機(jī)交互界面類產(chǎn)生的系統(tǒng)信息進(jìn)行響應(yīng)。圖3簡潔明了地描述了程序中類與類之間動態(tài)活動過程。
通過對各個類之間的封裝可以很好地減少由于各類之間的相互調(diào)用可能引起的錯誤,與此同時,從UML的活動圖中可以清晰地看出各個對象之間的關(guān)系,有效地對系統(tǒng)工作進(jìn)行掌控,防止因軟件功能互相耦合而引起的邏輯混亂。
4 嵌入式操作系統(tǒng)Windows CE
鑒于絎縫控制系統(tǒng)對實(shí)時性以及圖形界面顯示等方面的要求,選擇Windows CE作為整個系統(tǒng)的操作系統(tǒng)。作為微軟的嵌入式操作系統(tǒng),Windows CE以其高可靠性和穩(wěn)定性、硬件的良好兼容性、較高的安全性和容易上手的開發(fā)環(huán)境[5]等優(yōu)點(diǎn)深受廣大開發(fā)者的喜歡,而且可以根據(jù)控制系統(tǒng)的需求靈活地進(jìn)行裁剪,去掉一些無關(guān)的功能,使系統(tǒng)運(yùn)行起來更加穩(wěn)定、高效。
本文提出了一種單針絎縫機(jī)上位機(jī)程序設(shè)計(jì)方法,分析和構(gòu)建了上位機(jī)的主要功能、實(shí)現(xiàn)方式和軟件流程,并通過UML圖分別展示了上位機(jī)用例圖、軟件層次圖和動態(tài)活動圖,以及根據(jù)應(yīng)用需要對操作系統(tǒng)的選擇。使用UML圖進(jìn)行軟件設(shè)計(jì)能夠使得軟件層次更加清晰,結(jié)構(gòu)嚴(yán)謹(jǐn),可維護(hù)性強(qiáng),充分體現(xiàn)出UML在面向?qū)ο缶幊讨兴鸬闹匾饔?。同時,本文所敘述的軟件設(shè)計(jì)和建模方法,對其他上位機(jī)軟件開發(fā)有很好的借鑒作用。
參考文獻(xiàn)
[1] 高鵬翔.獨(dú)立絎縫機(jī)計(jì)算機(jī)控制系統(tǒng)的設(shè)計(jì)[J].紡織學(xué)報,2001,22(1):48-57.
[2] BERGENTI F,POGGI A.Supporting agent-oriented modeling with UML[J]. International Journal of Software Engineer and Knowledge Engineering,2002,12(6):605-618.
[3] GOMAA H. 用UML設(shè)計(jì)并發(fā)、分布式、實(shí)時應(yīng)用[M]. 呂慶中,李燁,羅方斌譯.北京:北京航空航天大學(xué)出版社,2004.
[4] RICHTER J. Windows核心編程[M]. 王建華,張煥生,侯麗坤,等譯. 北京:機(jī)械工業(yè)出版社,2000.
[5] 薛大龍,陳世帝,王韻編著.Windows CE嵌入式系統(tǒng)開發(fā)[M]. 北京:電子工業(yè)出版社,2008.