《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 設(shè)計(jì)應(yīng)用 > 一類(lèi)基于Windows CE的連續(xù)式單針絎縫機(jī)上位機(jī)程序設(shè)計(jì)
一類(lèi)基于Windows CE的連續(xù)式單針絎縫機(jī)上位機(jī)程序設(shè)計(jì)
來(lái)源:微型機(jī)與應(yīng)用2010年第16期
于 鐳, 楊 凱
(青島科技大學(xué) 自主導(dǎo)航與智能控制研究所,山東 青島 266042)
摘要: 以基于Windows CE操作系統(tǒng)運(yùn)行的應(yīng)用軟件作為上位機(jī),以自主開(kāi)發(fā)的通用運(yùn)動(dòng)控制器作為下位機(jī),以用戶(hù)對(duì)連續(xù)式單針絎縫機(jī)的需求為基礎(chǔ),構(gòu)建成連續(xù)式單針絎縫機(jī)控制系統(tǒng)。采用統(tǒng)一建模語(yǔ)言UML建立連續(xù)式單針絎縫機(jī)上位機(jī)用例圖,并根據(jù)對(duì)用例圖的分析建立上位機(jī)軟件層次模型。詳細(xì)分析了層次模型之間相互轉(zhuǎn)換的條件和約束關(guān)系,使程序具有較高的可靠性和簡(jiǎn)潔的可維護(hù)性。
Abstract:
Key words :

摘  要: 以基于Windows CE操作系統(tǒng)運(yùn)行的應(yīng)用軟件作為上位機(jī),以自主開(kāi)發(fā)的通用運(yùn)動(dòng)控制器作為下位機(jī),以用戶(hù)對(duì)連續(xù)式單針絎縫機(jī)的需求為基礎(chǔ),構(gòu)建成連續(xù)式單針絎縫機(jī)控制系統(tǒng)。采用統(tǒng)一建模語(yǔ)言UML建立連續(xù)式單針絎縫機(jī)上位機(jī)用例圖,并根據(jù)對(duì)用例圖的分析建立上位機(jī)軟件層次模型。詳細(xì)分析了層次模型之間相互轉(zhuǎn)換的條件和約束關(guān)系,使程序具有較高的可靠性和簡(jiǎn)潔的可維護(hù)性。
關(guān)鍵詞: Windows CE; 連續(xù)式單針絎縫機(jī); 通用運(yùn)動(dòng)控制器; 統(tǒng)一建模語(yǔ)言

    隨著科學(xué)技術(shù)的發(fā)展,用戶(hù)對(duì)自動(dòng)化系統(tǒng)的整體性設(shè)計(jì)提出了很高的要求。在中國(guó)傳統(tǒng)的紡織業(yè)中,隨著電腦絎縫機(jī)的廣泛應(yīng)用,客戶(hù)對(duì)絎縫機(jī)的自動(dòng)化程度要求越來(lái)越高,連續(xù)式電腦絎縫機(jī)也就應(yīng)運(yùn)而生。
 傳統(tǒng)的電腦絎縫機(jī)必須由人工通過(guò)夾布架把需要絎縫的布料夾好,然后放到絎縫機(jī)上進(jìn)行絎縫,等花樣絎縫完成后,再手動(dòng)把布料拆下,卷起。這種絎縫機(jī)操作起來(lái)費(fèi)時(shí)費(fèi)力,需要較多的人一起配合工作。而新型的連續(xù)式絎縫機(jī)則用氣動(dòng)裝置控制機(jī)械夾子替代了夾布架,當(dāng)要入布時(shí)先打開(kāi)入布閘門(mén),然后打開(kāi)夾子,卷布裝置拖動(dòng)布料到達(dá)要求的位置,關(guān)閉夾子,張緊布料,關(guān)閉入布閘門(mén),入布過(guò)程完成。絎縫完成以后先打開(kāi)入布閘門(mén),松開(kāi)夾子,卷布裝置就可以把已經(jīng)絎縫完成的布料卷起,最后通過(guò)切刀把布裁開(kāi),一塊布料的整個(gè)絎縫過(guò)程就完成了。整個(gè)過(guò)程只需要一個(gè)人在控制面板上操作就能完成,省時(shí)省力。
 本文針對(duì)連續(xù)式電腦絎縫機(jī)的特點(diǎn),采用了基于Embedded Visual C++開(kāi)發(fā)的上位機(jī)軟件和自主研發(fā)的通用運(yùn)動(dòng)控制器來(lái)實(shí)現(xiàn)絎縫功能,滿(mǎn)足實(shí)際生產(chǎn)需要。
1 連續(xù)式絎縫機(jī)控制原理
 整個(gè)絎縫機(jī)運(yùn)動(dòng)系統(tǒng)主要由基于嵌入式操作系統(tǒng)Windows CE的上位機(jī)程序、基于Motorola DSP的通用運(yùn)動(dòng)控制器、伺服電機(jī)和傳感器等外部執(zhí)行裝置組成。在這個(gè)系統(tǒng)中,上位機(jī)程序就像人的大腦一樣處理各種指令信息以及可能發(fā)生的異常;通用運(yùn)動(dòng)控制器則類(lèi)似于人體的神經(jīng)中樞,將上位機(jī)發(fā)送的指令傳送給外部執(zhí)行裝置,并將執(zhí)行裝置的反饋信息傳回到上位機(jī)程序;外部執(zhí)行裝置則相當(dāng)于四肢和感覺(jué)器官,根據(jù)上位機(jī)的指令來(lái)完成相應(yīng)的動(dòng)作,并把外部的一些信息反饋回去。絎縫機(jī)的工作原理是用戶(hù)在計(jì)算機(jī)上設(shè)計(jì)出要絎縫的花樣,將花樣傳入下位機(jī)的控制器中,控制器根據(jù)設(shè)計(jì)好的花樣控制M軸電機(jī)帶動(dòng)針架上下往返運(yùn)動(dòng),往返一次絎縫一針,控制X軸電機(jī)和Y軸電機(jī)帶動(dòng)面料前后、左右移動(dòng),在織物上絎縫出設(shè)計(jì)的花樣,從而實(shí)現(xiàn)絎縫的目的[1]。
2 系統(tǒng)的用例建模
 UML[2]是一種可用于大型系統(tǒng)建模的統(tǒng)一建模語(yǔ)言, 它不僅支持面向?qū)ο蟮姆治龊驮O(shè)計(jì), 還支持軟件開(kāi)發(fā)過(guò)程。用例視圖描述系統(tǒng)應(yīng)該交付的功能,也就是外部參入者所看到的功能[3]。本軟件設(shè)計(jì)采用UML建模語(yǔ)言,對(duì)連續(xù)式絎縫系統(tǒng)進(jìn)行用例分析,通過(guò)對(duì)整個(gè)系統(tǒng)框架進(jìn)行構(gòu)造來(lái)實(shí)現(xiàn)上位機(jī)軟件設(shè)計(jì)和建模。上位機(jī)是整個(gè)系統(tǒng)的最頂層,主要功能是根據(jù)操作者的要求發(fā)送數(shù)據(jù)和指令,并將必要的位置、速度以及故障報(bào)警等信息讀取回來(lái)。因此根據(jù)上位機(jī)的功能要求使用UML構(gòu)造上位機(jī)的用例圖,如圖1所示。

   界面顯示又細(xì)分為操作界面顯示、花樣顯示、當(dāng)前絎縫參數(shù)、運(yùn)行信息顯示。其中,操作界面顯示中包含了方向鍵、參數(shù)的設(shè)定、絎縫功能的選擇,以及對(duì)花樣的選擇;花樣顯示則顯示當(dāng)前絎縫花樣,并實(shí)時(shí)顯示在軌運(yùn)動(dòng)軌跡;當(dāng)前絎縫參數(shù)顯示了當(dāng)前絎縫的針距、速度、花樣名稱(chēng)、X/Y軸坐標(biāo);運(yùn)行信息所顯示的是絎縫狀態(tài)、報(bào)警信息和提示信息。
 設(shè)置參數(shù)中包含了對(duì)將要絎縫的花樣的參數(shù)設(shè)定,其中包括針距、轉(zhuǎn)速、空走速度、加固、斷線(xiàn)檢測(cè)、花樣補(bǔ)償?shù)脑O(shè)定。
 功能選擇細(xì)分為絎縫功能選擇、離軌運(yùn)動(dòng)、在軌運(yùn)動(dòng)、針?biāo)笳{(diào)整、花樣管理的選擇以及急停功能。其中,絎縫功能包括定起絎點(diǎn)、定出布點(diǎn)、定時(shí)打油;離軌運(yùn)動(dòng)包括回?cái)嗑€(xiàn)點(diǎn)/穿線(xiàn)點(diǎn)、回起絎點(diǎn)/收絎點(diǎn)、方向鍵空走、回出布點(diǎn)、框架校零/歸零;在軌運(yùn)動(dòng)包括開(kāi)車(chē)、停車(chē)、向前/后空走;針?biāo)笳{(diào)整選擇包括重定梭位,高點(diǎn)、對(duì)梭、回高點(diǎn)、手動(dòng);花樣管理包括讀取、預(yù)覽花樣、花樣打版。
3 上位機(jī)軟件結(jié)構(gòu)
3.1上位機(jī)軟件層次圖

 通過(guò)對(duì)絎縫機(jī)上位機(jī)用例圖的分析和軟件的構(gòu)建可以將上位機(jī)軟件劃分為四個(gè)層次:系統(tǒng)類(lèi)(CSYSTEM)處于系統(tǒng)的第一層,系統(tǒng)類(lèi)的成員類(lèi)(CDlg、CIC、CMailBox)處于系統(tǒng)的第二層,人機(jī)交互界面類(lèi)(CDlg)的成員類(lèi)(CHFShow、CHFDoc)和智能控制類(lèi)(CIC)的成員類(lèi)(CDSP_IMC、CKB_IMC、CKB_Process、CHF_Process)處于系統(tǒng)的第三層,作為公有成員存在的插補(bǔ)類(lèi)(CChaBu)處于系統(tǒng)的第四層,如圖2所示。

 系統(tǒng)類(lèi)(CSYSTEM)在程序初始化時(shí)被實(shí)例化,其成員類(lèi)也隨之實(shí)例化。系統(tǒng)類(lèi)不提供具體方法,只是作為系統(tǒng)的“框架”。
 智能控制類(lèi)(CIC)為絎縫線(xiàn)程提供主控函數(shù),響應(yīng)用戶(hù)操作、調(diào)控設(shè)備狀態(tài)并作出相應(yīng)的動(dòng)作。人機(jī)交互界面類(lèi)(CDlg)是以圖形界面形式與用戶(hù)交互,通過(guò)通信接口類(lèi)與智能控制類(lèi)通信,將文件讀寫(xiě)類(lèi)、圖形與文件顯示類(lèi)實(shí)例化,作為其成員。通信接口類(lèi)(CMailBox)為智能控制類(lèi)和人機(jī)交互界面類(lèi)的通信提供接收和發(fā)送服務(wù),并存儲(chǔ)待接收的信息。
 處于第三層的圖形與文本顯示類(lèi)(CHFShow)為程序提供圖形及文本顯示方法,并支持特殊功能,例如:動(dòng)態(tài)跟蹤軌跡等。文件讀寫(xiě)類(lèi)(CHFDoc),提供文件讀寫(xiě)方法,讀取花樣文件,寫(xiě)入信息參數(shù),并為特殊功能處理提供支持,例如:快速前進(jìn)等。DSP運(yùn)動(dòng)控制類(lèi)(CDSP_IMC),通過(guò)串口類(lèi)與運(yùn)動(dòng)控制器通信,并在內(nèi)部提供存儲(chǔ)區(qū),存放由串口傳遞來(lái)的信息??绮蕉翁幚眍?lèi)(CKB_Process)和絎縫段處理類(lèi)(CHF_Process),通過(guò)基于段的插補(bǔ),分別得到跨步段和絎縫段的運(yùn)動(dòng)控制數(shù)據(jù),并存儲(chǔ)在動(dòng)態(tài)數(shù)組中。
 插補(bǔ)類(lèi)(CChaBu)提供基于花樣段的插補(bǔ)方法和花樣插補(bǔ)數(shù)據(jù),并在插補(bǔ)方法中啟動(dòng)插補(bǔ)線(xiàn)程,對(duì)花樣進(jìn)行插補(bǔ)。
3.2上位機(jī)軟件活動(dòng)圖
 封裝性作為面向?qū)ο蟪绦蛟O(shè)計(jì)的基本特征之一,是指將抽象得到的屬性數(shù)據(jù)和行為代碼有機(jī)地結(jié)合起來(lái),形成一個(gè)具有類(lèi)特征的統(tǒng)一體[4]。此外,通過(guò)封裝,可以決定對(duì)象的哪些屬性和行為作為內(nèi)部細(xì)節(jié)被隱藏起來(lái),哪些屬性和行為是作為對(duì)象和外部的接口。本文中的上位機(jī)程序就很好地利用了面向?qū)ο蟪绦蛟O(shè)計(jì)的封裝性,將系統(tǒng)類(lèi)的子類(lèi)劃分為三個(gè)大類(lèi),即人機(jī)交互界面類(lèi)、通信接口類(lèi)、智能控制類(lèi)。程序運(yùn)行時(shí),他們之間的相互關(guān)系如圖3所示。

   在程序中,人機(jī)交互界面類(lèi)和智能控制類(lèi)分別通過(guò)LoadMailBox()裝載了信箱類(lèi)對(duì)象(mBox)的地址,人機(jī)交互界面類(lèi)通過(guò)這個(gè)地址調(diào)用信箱類(lèi)中的Send()往信箱類(lèi)中的結(jié)構(gòu)體變量添加數(shù)據(jù),這個(gè)Send()就是信箱類(lèi)對(duì)于對(duì)話(huà)框類(lèi)的外部接口。智能控制類(lèi)則通過(guò)LoadMailBox()獲得的信箱類(lèi)對(duì)象的地址調(diào)用Receive()來(lái)取出對(duì)話(huà)框類(lèi)在信箱類(lèi)結(jié)構(gòu)體內(nèi)存放的數(shù)據(jù),這個(gè)Receive()同樣是信箱類(lèi)對(duì)于智能控制類(lèi)的外部接口。同時(shí)智能控制類(lèi)還能對(duì)人機(jī)交互界面類(lèi)產(chǎn)生的系統(tǒng)信息進(jìn)行響應(yīng)。圖3簡(jiǎn)潔明了地描述了程序中類(lèi)與類(lèi)之間動(dòng)態(tài)活動(dòng)過(guò)程。
 通過(guò)對(duì)各個(gè)類(lèi)之間的封裝可以很好地減少由于各類(lèi)之間的相互調(diào)用可能引起的錯(cuò)誤,與此同時(shí),從UML的活動(dòng)圖中可以清晰地看出各個(gè)對(duì)象之間的關(guān)系,有效地對(duì)系統(tǒng)工作進(jìn)行掌控,防止因軟件功能互相耦合而引起的邏輯混亂。
4 嵌入式操作系統(tǒng)Windows CE
    鑒于絎縫控制系統(tǒng)對(duì)實(shí)時(shí)性以及圖形界面顯示等方面的要求,選擇Windows CE作為整個(gè)系統(tǒng)的操作系統(tǒng)。作為微軟的嵌入式操作系統(tǒng),Windows CE以其高可靠性和穩(wěn)定性、硬件的良好兼容性、較高的安全性和容易上手的開(kāi)發(fā)環(huán)境[5]等優(yōu)點(diǎn)深受廣大開(kāi)發(fā)者的喜歡,而且可以根據(jù)控制系統(tǒng)的需求靈活地進(jìn)行裁剪,去掉一些無(wú)關(guān)的功能,使系統(tǒng)運(yùn)行起來(lái)更加穩(wěn)定、高效。
    本文提出了一種單針絎縫機(jī)上位機(jī)程序設(shè)計(jì)方法,分析和構(gòu)建了上位機(jī)的主要功能、實(shí)現(xiàn)方式和軟件流程,并通過(guò)UML圖分別展示了上位機(jī)用例圖、軟件層次圖和動(dòng)態(tài)活動(dòng)圖,以及根據(jù)應(yīng)用需要對(duì)操作系統(tǒng)的選擇。使用UML圖進(jìn)行軟件設(shè)計(jì)能夠使得軟件層次更加清晰,結(jié)構(gòu)嚴(yán)謹(jǐn),可維護(hù)性強(qiáng),充分體現(xiàn)出UML在面向?qū)ο缶幊讨兴鸬闹匾饔?。同時(shí),本文所敘述的軟件設(shè)計(jì)和建模方法,對(duì)其他上位機(jī)軟件開(kāi)發(fā)有很好的借鑒作用。
參考文獻(xiàn)
[1]  高鵬翔.獨(dú)立絎縫機(jī)計(jì)算機(jī)控制系統(tǒng)的設(shè)計(jì)[J].紡織學(xué)報(bào),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í)時(shí)應(yīng)用[M]. 呂慶中,李燁,羅方斌譯.北京:北京航空航天大學(xué)出版社,2004.
[4]  RICHTER J. Windows核心編程[M]. 王建華,張煥生,侯麗坤,等譯. 北京:機(jī)械工業(yè)出版社,2000.
[5]  薛大龍,陳世帝,王韻編著.Windows CE嵌入式系統(tǒng)開(kāi)發(fā)[M]. 北京:電子工業(yè)出版社,2008.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。