技術(shù)頻道

      WinCE多線程下繡花機運動控制的實現(xiàn)

        1 引言

        繡花機在縫制設(shè)備行業(yè)中占有極其重要的位置,在國內(nèi)外都有廣闊的市場。國產(chǎn)繡花機在速度、噪聲、品質(zhì)和功能等方面與國外高檔機相比,存在著較大的差距,競爭優(yōu)勢較小,因此,加強繡花機的開發(fā)不僅是市場需求,更有助于提高民族產(chǎn)業(yè),具有重要意義。目前隨著SOC、ARM、FPGA 與 CPLD 等嵌入式技術(shù)的不斷發(fā)展,以嵌入式系統(tǒng)為主的繡花機主控制器在國內(nèi)已占據(jù)了主流,具有較快處理速度的CPU 和多功能的模塊擴展使繡花機運動控制系統(tǒng)更加強大,但高速度、高精度和高智能化的發(fā)展方向給繡花機運動控制系統(tǒng)提出了更高的要求,在硬件的不斷完善基礎(chǔ)上,軟件的性能已成為評估系統(tǒng)性能優(yōu)劣的一項重要考核指標,也是繡花機開發(fā)的難點之一。

        本文運動控制系統(tǒng)軟件實現(xiàn)是基于一種高速工業(yè)繡花機的體系結(jié)構(gòu),該體系結(jié)構(gòu)以ARM9 處理器S3C2440 為CPU,結(jié)合CPLD 擴展模塊,主要功能是滿足繡花機在1200 轉(zhuǎn)/分轉(zhuǎn)速下的實時性要求(目前國內(nèi)高速工業(yè)繡花機的主流轉(zhuǎn)速為1000轉(zhuǎn)/分),即在高速運轉(zhuǎn)完成自動繡花、剪線和換色等工作的同時,保證刺繡品質(zhì)和滿足一些人性化要求。對此文中提出了一種基于Windows CE5.0 多線程機制的繡花機運動控制系統(tǒng)軟件實現(xiàn)方案,該方案已應(yīng)用于自主開發(fā)的高速工業(yè)繡花機中,取得了較好的效果。

        2 運動控制系統(tǒng)實時性要求及模塊分析

        繡花機運動控制系統(tǒng)是強實時系統(tǒng),系統(tǒng)所選擇的運行環(huán)境必須能及時響應(yīng)繡花機運動控制系統(tǒng)的實時性任務(wù),如果系統(tǒng)響應(yīng)的實時性不夠,會導(dǎo)致繡花機在自動運行過程中出現(xiàn)斷續(xù)等不穩(wěn)定現(xiàn)象。由于Windows CE 系統(tǒng)在界面、人機交互能力、多任務(wù)以及開放性等方面的優(yōu)勢,開發(fā)基于 Windows CE 的工控系統(tǒng)稱為一種趨勢。

        Windows CE5.0 屬于實時性操作系統(tǒng),在Windows CE5.0 系統(tǒng)中,合理應(yīng)用Windows CE 多線程技術(shù)來解決系統(tǒng)的實時多任務(wù)成為開發(fā)技術(shù)的關(guān)鍵。繡花機運動控制系統(tǒng)對各個電機以及其它模塊的實時性提出了很高的要求。Windows CE 多線程機制因其能同時執(zhí)行多項任務(wù)而能較好的滿足這一要求,同時結(jié)合采用有效的中斷方式來加強對實時性要求的實現(xiàn)。

        根據(jù)運動控制系統(tǒng)的功能要求,整個系統(tǒng)主要分為以下幾個模塊:(1)主軸控制模塊,控制主軸電機運轉(zhuǎn),帶動繡針上下移動。(2)XY 步進電機控制模塊,控制XY 步進電機,移動繡框。(3)剪線模塊,控制剪線電機,完成自動剪線操作。(4)換色模塊,控制換色電機,完成自動換色操作。(5)光電檢測模塊(A 相Z 相),主軸電機旋轉(zhuǎn)位置及圈數(shù)的計數(shù)反饋。(6)限位處理模塊,防止步進電機移框時越位。(7)斷線檢測模塊,檢測繡針上的線是否斷掉。(8)報警模塊,繡花機異常狀態(tài)報警。各個模塊之間的通信關(guān)系如圖1 所示:

        3 多線程技術(shù)在運動控制系統(tǒng)中的應(yīng)用

        Windows CE5.0 是一個多線程的多任務(wù)操作系統(tǒng),一個進程由一個或多個線程組成,線程來負責(zé)執(zhí)行包含在進程地址空間的代碼。實際上,操作系統(tǒng)以一種輪轉(zhuǎn)的方式為每個獨立的線程分配CPU 時間片,客觀上是所有的線程近乎同時執(zhí)行。根據(jù)線程任務(wù)的特點,在進行運動控制系統(tǒng)結(jié)構(gòu)設(shè)計時,將功能相關(guān)、相互之間通信較多的任務(wù),設(shè)計成一個進程中的多個線程,使這些任務(wù)共享該進程的地址空間,減小通信和同步的開銷。本文設(shè)計中,就是根據(jù)這一機制實現(xiàn)的。

        在整個繡花機系統(tǒng)中。運動控制部分為一個單獨的進程,在這個進程中根據(jù)圖1 中的各個模塊之間的關(guān)系,劃分處幾個線程,這些線程主要由兩個大的部分組成:強實時線程部分,包括主軸電機線程、步進電機線程、光電編碼器線程、限位中斷線程和斷線處理線程;實時線程部分,包括換色線程、剪線線程和報警線程。系統(tǒng)中的線程同步主要是針對強實時線程而言的,而實時線程是通過像調(diào)用函數(shù)一樣被調(diào)用來實現(xiàn)功能的。

        3.1 多線程優(yōu)先級設(shè)置

        在多線程系統(tǒng)中,由于高優(yōu)先級的線程能隨時中斷低優(yōu)先級的線程,獲得運行權(quán),這樣在設(shè)計系統(tǒng)時就要精心安排各個線程的優(yōu)先級,只有合理的劃分應(yīng)用線程的優(yōu)先級,系統(tǒng)才能合理調(diào)度這些線程,從而保障系統(tǒng)的實時性能要求。

        Windows CE5.0 支持0~255 共256 了優(yōu)先級,其中0 優(yōu)先級最高,255 優(yōu)先級最低。根據(jù)Windows CE 操作系統(tǒng)中的線程的優(yōu)先級層次安排,0~96 為高實時性程序的線程[2],再結(jié)合繡花機整體系統(tǒng)的任務(wù)安排,運動控制系統(tǒng)部分的線程對象的優(yōu)先級也主要安排在這個層次。運動控制部分的線程任務(wù)根據(jù)系統(tǒng)中的模塊來劃分,其內(nèi)容和優(yōu)先級安排如表1 所示:

        為了設(shè)置和獲得一個線程的優(yōu)先級,在系統(tǒng)中可以使用CeSetThreadPriority()和CeGetThreadPriority()函數(shù)來實現(xiàn)。線程創(chuàng)建完其優(yōu)先級也被確定下來。

        3.2 線程之間的協(xié)調(diào)與通信

        在多線程系統(tǒng)中,同步不同線程的活動是很重要的。WindowsCE5.0 提供了多種方法來實現(xiàn)線程之間的協(xié)調(diào)和同步,有信號量(Semaphore)、臨界區(qū)(Critical Section)、事件(Event)、互斥體(Mutex)、對點的消息隊列等。各個方法都有各自的特點和適用的場合。在設(shè)計中的運動控制系統(tǒng)中,線程同步主要用的是事件和中斷來實現(xiàn)的。

        3.2.1 事件Event 的應(yīng)用

        事件是用的比較廣泛的同步對象,如果一個線程需要通知其它線程某個時間發(fā)生,可以使用事件(Event)同步對象,前一個線程給時間發(fā)送一個通知信號,其他對事件發(fā)生感興趣的線程一般調(diào)用等待函數(shù)在時間上等待。初始化線程將事件設(shè)置為無信號狀態(tài)后開始進行初始化。當初始化完成后,線程把事件設(shè)置為有信號態(tài),通知下一個線程來完成余下的工作。在運動控制系統(tǒng)中主要定義了以下事件:

        Event_EncoderA //編碼器A 相計數(shù)事件, 標志主軸電機所在位置(100°和220°)

        Event_MotorX //X 軸電機移動事件,標志X 軸電機運行完。

        Event_MotorY //Y 軸電機移動事件,標志Y軸電機運行完。

        Event_EncoderZ //編碼器Z 相中斷事件,標志電機旋轉(zhuǎn)完一周。

        Event_Limit //限位中斷事件,標志繡框越界。

        事件創(chuàng)建采用CreateEvent()函數(shù)來實現(xiàn),同時再創(chuàng)建好事件后要對其進行初始化。

        3.2.2 運動控制系統(tǒng)中斷處理

        在運動控制系統(tǒng)中,中斷處理是重要部分。事件的創(chuàng)建也是為中斷處理準備的,中斷響應(yīng)是根據(jù)事件觸發(fā)來實現(xiàn)的。中斷源的配置是由 Windows CE 中的OAL(OEM 適配層)操作的[3][5],OAL 將物理中斷號映射成邏輯中斷號,并關(guān)聯(lián)具體的事件。實現(xiàn)方法如下面的兩個步驟:

        (1)申請g_ Count1sysint 為IRQ_EINT8 的邏輯中斷號:KernelIoControl (IOCTL_HAL_REQUEST_SYSINTR,&IRQ_EINT8,sizeof(UINT32),&g_Count1sysint,sizeof(UINT32), NULL) ;

        (2)邏輯中斷號g_ Count1sysint 關(guān)聯(lián)事件 Event_MotorX:InterruptInitialize(g_ Count1sysint,Event_MotorX ,0,0);同樣的操作對其它物理中斷號的邏輯中斷號進行申請和事件關(guān)聯(lián)。物理中斷、邏輯中斷、事件和線程之間的關(guān)系如圖2所示。

        每個事件對應(yīng)系統(tǒng)中的一個中斷響應(yīng),當事件被觸發(fā)時,根據(jù)事件類型和時間做相應(yīng)的處理。中斷處理線程是驅(qū)動程序編寫的關(guān)鍵,其效率的高低直接關(guān)系到系統(tǒng)的實時性性能。

        3.2.3 線程通信的實現(xiàn)

        運動控制系統(tǒng)軟件實現(xiàn)要緊密結(jié)合伺服電機的機械特性和繡花機各電機工作原理來完成,整個程序圍繞著主軸電機在轉(zhuǎn)一圈的過程中如何實現(xiàn)與其它模塊的通信協(xié)作來實現(xiàn),主要包括電機在220°~100°(約240°) 之間可移動步進電機階段和在100°~220°(約120°)禁止步進電機階段,通過事件置位來響應(yīng)兩個階段中相關(guān)的中斷處理,實現(xiàn)各個線程之間同步。在整個的系統(tǒng)中,主軸電機運轉(zhuǎn)為軟件的主線程,線程運行過程中,通過中斷事件來等待、通知和調(diào)用其它線程,完成刺繡操作,主軸電機線程程序流程圖如圖3 所示,步進電機線程流程圖如圖4 所示:

        主軸電機線程根據(jù)花樣文件的控制碼來確定剪線、換色、跳針和刺繡等運動方式,當為正常刺繡狀態(tài)時,主軸電機線程處于阻塞狀態(tài),要等到 Event_MotorX 和Event_MotorY 兩個電機移動完事件置位后才可以移動主軸電機,同時在移動主軸電機過程中,由于光電編碼器線程的優(yōu)先級高于主軸電機線程,故可以響應(yīng)A 相編碼器中斷,置位事件Event_EncoderA(100°)和Event_EncoderA(220°),可以觸發(fā)優(yōu)先級比主軸電機線程優(yōu)先級高的步進電機線程,完成220°~100°移動步進電機階段和在100°~220°禁止步進電機操作,之后步進電機線程中初始化Event_EncoderA (100°) 和Event_EncoderA (220°), 置位Event_MotorX 和 Event_MotorY 事件通知主軸電機線程運行,而步進電機線程又回到了阻塞狀態(tài),等待Event_EncoderA(100°)和 Event_EncoderA(220°)事件的置位,到此繡花機完成了刺繡一針的操作。在步進電機運行過程中,如果繡框越界,運動控制系統(tǒng)會響應(yīng)中斷,置位Event_Limit,執(zhí)行高優(yōu)先級的限位越界線程并報警。在主軸電機運行過程中,系統(tǒng)也會響應(yīng)斷線檢測中斷,如果斷線,也會進行報警處理。

        4 試驗測試

        文章中采用Windows CE5.0 多線程機制,完成了電腦繡花機運動控制系統(tǒng)功能的實現(xiàn),在這種體制下,使整合系統(tǒng)在控制、調(diào)度、通信和同步等方面都有較小的開銷,同時結(jié)合中斷,很好的滿足了系統(tǒng)的強實時性的要求,該方案已經(jīng)運用于到了自主開發(fā)的高速工業(yè)繡花機中。在試驗過程中我們可以看到,繡花機在正常工作的時候,啟動較快,在1200 轉(zhuǎn)/分高速運行時平穩(wěn)可靠且噪聲較小,并能夠精確的停車,在刺繡過程中,各個功能執(zhí)行比較協(xié)和,同時刺繡品質(zhì)和效率也有很大的提高,系統(tǒng)各方面性能都達到了預(yù)期目的。

        5 結(jié)束語

        本文的創(chuàng)新點在于將Windows CE5.0 的多線程機制與硬件中斷技術(shù)相結(jié)合應(yīng)用于強實時性要求的繡花機運動控制系統(tǒng)中,以最小的計算資源消耗實現(xiàn)了其預(yù)定的功能,在滿足系統(tǒng)實時性要求的同時,避免了資源浪費,提高系統(tǒng)軟件的運行效率。經(jīng)測試,表明繡花機高速運行時在響應(yīng)速度、控制精度、減少噪聲等方面性能有明顯的改善,有較高的工程價值。

      文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。

      主站蜘蛛池模板: 一区二区中文字幕| 香蕉久久AⅤ一区二区三区| 国产丝袜无码一区二区视频| 久久国产精品一区免费下载| 丝袜美腿高跟呻吟高潮一区| 国产精品香蕉在线一区| 亚洲一区二区三区自拍公司| 国产精品一区二区综合| 亚洲欧美日韩一区二区三区在线| 久久精品一区二区三区AV| 亚洲日本精品一区二区| 日产精品久久久一区二区| 一区二区在线观看视频| 亚洲av成人一区二区三区| 亚洲一区二区三区免费在线观看| 精品无码国产一区二区三区AV| 亚洲AV无码第一区二区三区| 人妻无码一区二区不卡无码av| 国产精品无码AV一区二区三区 | 日韩国产免费一区二区三区| 台湾无码一区二区| 91精品福利一区二区三区野战| 美女毛片一区二区三区四区| 亚洲视频一区在线播放| 亚洲日韩精品国产一区二区三区| 亚洲AV无码一区二区三区牲色| 欧美av色香蕉一区二区蜜桃小说| 亚洲乱色熟女一区二区三区蜜臀| 女同一区二区在线观看| 丰满岳乱妇一区二区三区| 久久国产精品一区| 精品久久一区二区| 51视频国产精品一区二区| 国产精品视频无圣光一区| 八戒久久精品一区二区三区 | 亚洲色精品三区二区一区| 国产福利无码一区在线| 一区二区三区四区在线观看视频| 精品免费久久久久国产一区| 亚洲无删减国产精品一区| 精品亚洲福利一区二区|