技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > WinCE 多線程下繡花機(jī)運(yùn)動(dòng)控制的實(shí)現(xiàn)

WinCE 多線程下繡花機(jī)運(yùn)動(dòng)控制的實(shí)現(xiàn)

時(shí)間:2009-05-25 20:54:39來源:zouzl

導(dǎo)語:?提出了一種基于Windows CE5.0 多線程機(jī)制的繡花機(jī)運(yùn)動(dòng)控制系統(tǒng)軟件設(shè)計(jì)方案。解決了繡花機(jī)在高速運(yùn)行過程中的響應(yīng)速度較慢、停車控制精度低和噪聲大等問題
摘 要: 提出了一種基于Windows CE5.0 多線程機(jī)制的繡花機(jī)運(yùn)動(dòng)控制系統(tǒng)軟件設(shè)計(jì)方案。結(jié)合硬件中斷技術(shù),運(yùn)用線程同步方法,實(shí)現(xiàn)了繡花機(jī)運(yùn)動(dòng)控制系統(tǒng)的強(qiáng)實(shí)時(shí)性技術(shù)要求,解決了繡花機(jī)在高速運(yùn)行過程中的響應(yīng)速度較慢、停車控制精度低和噪聲大等問題。該方案已應(yīng)用于自主開發(fā)的繡花機(jī)系統(tǒng)中,測試表明,繡花機(jī)高速運(yùn)行時(shí)各方面性能有明顯的改善,具有較高的工程價(jià)值。 關(guān)鍵詞: 多線程; Windows CE; 中斷; 繡花機(jī) Abstract: Proposing an approach for movement control system of Embroidery Machine Based on Windows CE5.0 multithread, with thetechnology of hardware interruption and method of threads synchronization, realize the hard real -time request of movement controlsystem, solve difficulties such as slow response, low precision and big noise, and it has been used in project, The experiment resultsindicate that the abilities of machine are improved. It is value to project. Key words: multithreads; Windows CE; interruption; embroidery 1 引言 繡花機(jī)在縫制設(shè)備行業(yè)中占有極其重要的位置,在國內(nèi)外都有廣闊的市場。國產(chǎn)繡花機(jī)在速度、噪聲、品質(zhì)和功能等方面與國外高檔機(jī)相比,存在著較大的差距,競爭優(yōu)勢較小,因此,加強(qiáng)繡花機(jī)的開發(fā)不僅是市場需求,更有助于提高民族產(chǎn)業(yè),具有重要意義。目前隨著SOC、ARM、FPGA 與CPLD 等嵌入式技術(shù)的不斷發(fā)展,以嵌入式系統(tǒng)為主的繡花機(jī)主控制器在國內(nèi)已占據(jù)了主流,具有較快處理速度的CPU 和多功能的模塊擴(kuò)展使繡花機(jī)運(yùn)動(dòng)控制系統(tǒng)更加強(qiáng)大,但高速度、高精度和高智能化的發(fā)展方向給繡花機(jī)運(yùn)動(dòng)控制系統(tǒng)提出了更高的要求,在硬件的不斷完善基礎(chǔ)上,軟件的性能已成為評(píng)估系統(tǒng)性能優(yōu)劣的一項(xiàng)重要考核指標(biāo),也是繡花機(jī)開發(fā)的難點(diǎn)之一。 本文運(yùn)動(dòng)控制系統(tǒng)軟件實(shí)現(xiàn)是基于一種高速工業(yè)繡花機(jī)的體系結(jié)構(gòu),該體系結(jié)構(gòu)以ARM9 處理器S3C2440 為CPU,結(jié)合CPLD 擴(kuò)展模塊,主要功能是滿足繡花機(jī)在1200 轉(zhuǎn)/分轉(zhuǎn)速下的實(shí)時(shí)性要求(目前國內(nèi)高速工業(yè)繡花機(jī)的主流轉(zhuǎn)速為1000轉(zhuǎn)/分),即在高速運(yùn)轉(zhuǎn)完成自動(dòng)繡花、剪線和換色等工作的同時(shí),保證刺繡品質(zhì)和滿足一些人性化要求。對(duì)此文中提出了一種基于Windows CE5.0 多線程機(jī)制的繡花機(jī)運(yùn)動(dòng)控制系統(tǒng)軟件實(shí)現(xiàn)方案,該方案已應(yīng)用于自主開發(fā)的高速工業(yè)繡花機(jī)中,取得了較好的效果。 2 運(yùn)動(dòng)控制系統(tǒng)實(shí)時(shí)性要求及模塊分析 繡花機(jī)運(yùn)動(dòng)控制系統(tǒng)是強(qiáng)實(shí)時(shí)系統(tǒng),系統(tǒng)所選擇的運(yùn)行環(huán)境必須能及時(shí)響應(yīng)繡花機(jī)運(yùn)動(dòng)控制系統(tǒng)的實(shí)時(shí)性任務(wù),如果系統(tǒng)響應(yīng)的實(shí)時(shí)性不夠,會(huì)導(dǎo)致繡花機(jī)在自動(dòng)運(yùn)行過程中出現(xiàn)斷續(xù)等不穩(wěn)定現(xiàn)象。由于Windows CE 系統(tǒng)在界面、人機(jī)交互能力、多任務(wù)以及開放性等方面的優(yōu)勢,開發(fā)基于Windows CE 的工控系統(tǒng)稱為一種趨勢。 Windows CE5.0 屬于實(shí)時(shí)性操作系統(tǒng),在Windows CE5.0 系統(tǒng)中,合理應(yīng)用Windows CE 多線程技術(shù)來解決系統(tǒng)的實(shí)時(shí)多任務(wù)成為開發(fā)技術(shù)的關(guān)鍵。繡花機(jī)運(yùn)動(dòng)控制系統(tǒng)對(duì)各個(gè)電機(jī)以及其它模塊的實(shí)時(shí)性提出了很高的要求。Windows CE 多線程機(jī)制因其能同時(shí)執(zhí)行多項(xiàng)任務(wù)而能較好的滿足這一要求,同時(shí)結(jié)合采用有效的中斷方式來加強(qiáng)對(duì)實(shí)時(shí)性要求的實(shí)現(xiàn)。 根據(jù)運(yùn)動(dòng)控制系統(tǒng)的功能要求,整個(gè)系統(tǒng)主要分為以下幾個(gè)模塊:(1)主軸控制模塊,控制主軸電機(jī)運(yùn)轉(zhuǎn),帶動(dòng)繡針上下移動(dòng)。(2)XY 步進(jìn)電機(jī)控制模塊,控制XY 步進(jìn)電機(jī),移動(dòng)繡框。(3)剪線模塊,控制剪線電機(jī),完成自動(dòng)剪線操作。(4)換色模塊,控制換色電機(jī),完成自動(dòng)換色操作。(5)光電檢測模塊(A 相Z 相),主軸電機(jī)旋轉(zhuǎn)位置及圈數(shù)的計(jì)數(shù)反饋。(6)限位處理模塊,防止步進(jìn)電機(jī)移框時(shí)越位。(7)斷線檢測模塊,檢測繡針上的線是否斷掉。(8)報(bào)警模塊,繡花機(jī)異常狀態(tài)報(bào)警。各個(gè)模塊之間的通信關(guān)系如圖1 所示:
3 多線程技術(shù)在運(yùn)動(dòng)控制系統(tǒng)中的應(yīng)用 Windows CE5.0 是一個(gè)多線程的多任務(wù)操作系統(tǒng),一個(gè)進(jìn)程由一個(gè)或多個(gè)線程組成,線程來負(fù)責(zé)執(zhí)行包含在進(jìn)程地址空間的代碼。實(shí)際上,操作系統(tǒng)以一種輪轉(zhuǎn)的方式為每個(gè)獨(dú)立的線程分配CPU 時(shí)間片,客觀上是所有的線程近乎同時(shí)執(zhí)行。根據(jù)線程任務(wù)的特點(diǎn),在進(jìn)行運(yùn)動(dòng)控制系統(tǒng)結(jié)構(gòu)設(shè)計(jì)時(shí),將功能相關(guān)、相互之間通信較多的任務(wù),設(shè)計(jì)成一個(gè)進(jìn)程中的多個(gè)線程,使這些任務(wù)共享該進(jìn)程的地址空間,減小通信和同步的開銷。本文設(shè)計(jì)中,就是根據(jù)這一機(jī)制實(shí)現(xiàn)的。 在整個(gè)繡花機(jī)系統(tǒng)中。運(yùn)動(dòng)控制部分為一個(gè)單獨(dú)的進(jìn)程,在這個(gè)進(jìn)程中根據(jù)圖1 中的各個(gè)模塊之間的關(guān)系,劃分處幾個(gè)線程,這些線程主要由兩個(gè)大的部分組成:強(qiáng)實(shí)時(shí)線程部分,包括主軸電機(jī)線程、步進(jìn)電機(jī)線程、光電編碼器線程、限位中斷線程和斷線處理線程;實(shí)時(shí)線程部分,包括換色線程、剪線線程和報(bào)警線程。系統(tǒng)中的線程同步主要是針對(duì)強(qiáng)實(shí)時(shí)線程而言的,而實(shí)時(shí)線程是通過像調(diào)用函數(shù)一樣被調(diào)用來實(shí)現(xiàn)功能的。 3.1 多線程優(yōu)先級(jí)設(shè)置 在多線程系統(tǒng)中,由于高優(yōu)先級(jí)的線程能隨時(shí)中斷低優(yōu)先級(jí)的線程,獲得運(yùn)行權(quán),這樣在設(shè)計(jì)系統(tǒng)時(shí)就要精心安排各個(gè)線程的優(yōu)先級(jí),只有合理的劃分應(yīng)用線程的優(yōu)先級(jí),系統(tǒng)才能合理調(diào)度這些線程,從而保障系統(tǒng)的實(shí)時(shí)性能要求。 Windows CE5.0 支持0~255 共256 了優(yōu)先級(jí),其中0 優(yōu)先級(jí)最高,255 優(yōu)先級(jí)最低。根據(jù)Windows CE 操作系統(tǒng)中的線程的優(yōu)先級(jí)層次安排,0~96 為高實(shí)時(shí)性程序的線程[2],再結(jié)合繡花機(jī)整體系統(tǒng)的任務(wù)安排,運(yùn)動(dòng)控制系統(tǒng)部分的線程對(duì)象的優(yōu)先級(jí)也主要安排在這個(gè)層次。運(yùn)動(dòng)控制部分的線程任務(wù)根據(jù)系統(tǒng)中的模塊來劃分,其內(nèi)容和優(yōu)先級(jí)安排如表1 所示:
為了設(shè)置和獲得一個(gè)線程的優(yōu)先級(jí),在系統(tǒng)中可以使用CeSetThreadPriority()和CeGetThreadPriority()函數(shù)來實(shí)現(xiàn)。線程創(chuàng)建完其優(yōu)先級(jí)也被確定下來。 3.2 線程之間的協(xié)調(diào)與通信 在多線程系統(tǒng)中,同步不同線程的活動(dòng)是很重要的。WindowsCE5.0 提供了多種方法來實(shí)現(xiàn)線程之間的協(xié)調(diào)和同步,有信號(hào)量(Semaphore)、臨界區(qū)(Critical Section)、事件(Event)、互斥體(Mutex)、對(duì)點(diǎn)的消息隊(duì)列等。各個(gè)方法都有各自的特點(diǎn)和適用的場合。在設(shè)計(jì)中的運(yùn)動(dòng)控制系統(tǒng)中,線程同步主要用的是事件和中斷來實(shí)現(xiàn)的。 3.2.1 事件Event 的應(yīng)用 事件是用的比較廣泛的同步對(duì)象,如果一個(gè)線程需要通知其它線程某個(gè)時(shí)間發(fā)生,可以使用事件(Event)同步對(duì)象,前一個(gè)線程給時(shí)間發(fā)送一個(gè)通知信號(hào),其他對(duì)事件發(fā)生感興趣的線程一般調(diào)用等待函數(shù)在時(shí)間上等待。初始化線程將事件設(shè)置為無信號(hào)狀態(tài)后開始進(jìn)行初始化。當(dāng)初始化完成后,線程把事件設(shè)置為有信號(hào)態(tài),通知下一個(gè)線程來完成余下的工作。在運(yùn)動(dòng)控制系統(tǒng)中主要定義了以下事件: Event_EncoderA //編碼器A 相計(jì)數(shù)事件, 標(biāo)志主軸電機(jī)所在位置(100°和220°) Event_MotorX //X 軸電機(jī)移動(dòng)事件,標(biāo)志X 軸電機(jī)運(yùn)行完。 Event_MotorY //Y 軸電機(jī)移動(dòng)事件,標(biāo)志Y軸電機(jī)運(yùn)行完。 Event_EncoderZ //編碼器Z 相中斷事件,標(biāo)志電機(jī)旋轉(zhuǎn)完一周。 Event_Limit //限位中斷事件,標(biāo)志繡框越界。 事件創(chuàng)建采用CreateEvent()函數(shù)來實(shí)現(xiàn),同時(shí)再創(chuàng)建好事件后要對(duì)其進(jìn)行初始化。 3.2.2 運(yùn)動(dòng)控制系統(tǒng)中斷處理 在運(yùn)動(dòng)控制系統(tǒng)中,中斷處理是重要部分。事件的創(chuàng)建也是為中斷處理準(zhǔn)備的,中斷響應(yīng)是根據(jù)事件觸發(fā)來實(shí)現(xiàn)的。中斷源的配置是由Windows CE 中的OAL(OEM 適配層)操作的[3][5],OAL 將物理中斷號(hào)映射成邏輯中斷號(hào),并關(guān)聯(lián)具體的事件。實(shí)現(xiàn)方法如下面的兩個(gè)步驟: (1)申請(qǐng)g_ Count1sysint 為IRQ_EINT8 的邏輯中斷號(hào):KernelIoControl (IOCTL_HAL_REQUEST_SYSINTR,&IRQ_EINT8,sizeof(UINT32),&g_Count1sysint,sizeof(UINT32), NULL) ; (2)邏輯中斷號(hào)g_ Count1sysint 關(guān)聯(lián)事件Event_MotorX:InterruptInitialize(g_ Count1sysint,Event_MotorX ,0,0);同樣的操作對(duì)其它物理中斷號(hào)的邏輯中斷號(hào)進(jìn)行申請(qǐng)和事件關(guān)聯(lián)。物理中斷、邏輯中斷、事件和線程之間的關(guān)系如圖2所示。
每個(gè)事件對(duì)應(yīng)系統(tǒng)中的一個(gè)中斷響應(yīng),當(dāng)事件被觸發(fā)時(shí),根據(jù)事件類型和時(shí)間做相應(yīng)的處理。中斷處理線程是驅(qū)動(dòng)程序編寫的關(guān)鍵,其效率的高低直接關(guān)系到系統(tǒng)的實(shí)時(shí)性性能。 3.2.3 線程通信的實(shí)現(xiàn) 運(yùn)動(dòng)控制系統(tǒng)軟件實(shí)現(xiàn)要緊密結(jié)合伺服電機(jī)的機(jī)械特性和繡花機(jī)各電機(jī)工作原理來完成,整個(gè)程序圍繞著主軸電機(jī)在轉(zhuǎn)一圈的過程中如何實(shí)現(xiàn)與其它模塊的通信協(xié)作來實(shí)現(xiàn),主要包括電機(jī)在220°~100°(約240°) 之間可移動(dòng)步進(jìn)電機(jī)階段和在100°~220°(約120°)禁止步進(jìn)電機(jī)階段,通過事件置位來響應(yīng)兩個(gè)階段中相關(guān)的中斷處理,實(shí)現(xiàn)各個(gè)線程之間同步。在整個(gè)的系統(tǒng)中,主軸電機(jī)運(yùn)轉(zhuǎn)為軟件的主線程,線程運(yùn)行過程中,通過中斷事件來等待、通知和調(diào)用其它線程,完成刺繡操作,主軸電機(jī)線程程序流程圖如圖3 所示,步進(jìn)電機(jī)線程流程圖如圖4 所示:
主軸電機(jī)線程根據(jù)花樣文件的控制碼來確定剪線、換色、跳針和刺繡等運(yùn)動(dòng)方式,當(dāng)為正常刺繡狀態(tài)時(shí),主軸電機(jī)線程處于阻塞狀態(tài),要等到Event_MotorX 和Event_MotorY 兩個(gè)電機(jī)移動(dòng)完事件置位后才可以移動(dòng)主軸電機(jī),同時(shí)在移動(dòng)主軸電機(jī)過程中,由于光電編碼器線程的優(yōu)先級(jí)高于主軸電機(jī)線程,故可以響應(yīng)A 相編碼器中斷,置位事件Event_EncoderA(100°)和Event_EncoderA(220°),可以觸發(fā)優(yōu)先級(jí)比主軸電機(jī)線程優(yōu)先級(jí)高的步進(jìn)電機(jī)線程,完成220°~100°移動(dòng)步進(jìn)電機(jī)階段和在100°~220°禁止步進(jìn)電機(jī)操作,之后步進(jìn)電機(jī)線程中初始化Event_EncoderA (100°) 和Event_EncoderA (220°), 置位Event_MotorX 和Event_MotorY 事件通知主軸電機(jī)線程運(yùn)行,而步進(jìn)電機(jī)線程又回到了阻塞狀態(tài),等待Event_EncoderA(100°)和Event_EncoderA(220°)事件的置位,到此繡花機(jī)完成了刺繡一針的操作。在步進(jìn)電機(jī)運(yùn)行過程中,如果繡框越界,運(yùn)動(dòng)控制系統(tǒng)會(huì)響應(yīng)中斷,置位Event_Limit,執(zhí)行高優(yōu)先級(jí)的限位越界線程并報(bào)警。在主軸電機(jī)運(yùn)行過程中,系統(tǒng)也會(huì)響應(yīng)斷線檢測中斷,如果斷線,也會(huì)進(jìn)行報(bào)警處理。 4 試驗(yàn)測試 文章中采用Windows CE5.0 多線程機(jī)制,完成了電腦繡花機(jī)運(yùn)動(dòng)控制系統(tǒng)功能的實(shí)現(xiàn),在這種體制下,使整合系統(tǒng)在控制、調(diào)度、通信和同步等方面都有較小的開銷,同時(shí)結(jié)合中斷,很好的滿足了系統(tǒng)的強(qiáng)實(shí)時(shí)性的要求,該方案已經(jīng)運(yùn)用于到了自主開發(fā)的高速工業(yè)繡花機(jī)中。在試驗(yàn)過程中我們可以看到,繡花機(jī)在正常工作的時(shí)候,啟動(dòng)較快,在1200 轉(zhuǎn)/分高速運(yùn)行時(shí)平穩(wěn)可靠且噪聲較小,并能夠精確的停車,在刺繡過程中,各個(gè)功能執(zhí)行比較協(xié)和,同時(shí)刺繡品質(zhì)和效率也有很大的提高,系統(tǒng)各方面性能都達(dá)到了預(yù)期目的。 5 結(jié)束語 本文的創(chuàng)新點(diǎn)在于將Windows CE5.0 的多線程機(jī)制與硬件中斷技術(shù)相結(jié)合應(yīng)用于強(qiáng)實(shí)時(shí)性要求的繡花機(jī)運(yùn)動(dòng)控制系統(tǒng)中,以最小的計(jì)算資源消耗實(shí)現(xiàn)了其預(yù)定的功能,在滿足系統(tǒng)實(shí)時(shí)性要求的同時(shí),避免了資源浪費(fèi),提高系統(tǒng)軟件的運(yùn)行效率。經(jīng)測試,表明繡花機(jī)高速運(yùn)行時(shí)在響應(yīng)速度、控制精度、減少噪聲等方面性能有明顯的改善,有較高的工程價(jià)值。 參考文獻(xiàn) [1]蘇兢.電腦繡花機(jī)控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 西安:西北工業(yè)大學(xué)軟件工程學(xué)院, 2007. [2]張冬泉,譚南林,王雪梅等.Windows CE 實(shí)用開發(fā)技術(shù)[M].北京:電子工業(yè)出版社, 2006. [3]何宗鍵. Windows CE 嵌入式系統(tǒng)[M].北京: 北京航空航天大學(xué)出版社, 2006. [4]賈立山,王立文,邢志偉,韓俊偉.基于多線程技術(shù)的3R 機(jī)器人控制系統(tǒng)[J].微計(jì)算機(jī)信息,2007,6-2:243-245. [5]黃丹,邵惠鶴. 基于Windows CE 平臺(tái)的多線程編程[J].微計(jì)算機(jī)信息,2007.12-2:53-55. WinCE 多線程下繡花機(jī)運(yùn)動(dòng)控制的實(shí)現(xiàn)

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:PMAC運(yùn)動(dòng)控制卡在AGV控制系統(tǒng)...

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動(dòng)網(wǎng)(www.surachana.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號(hào) | 營業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)