天天爽天天看-日本少妇xxxx动漫-亚洲av成人精品毛片-欧美一区二区三区激情啪啪-91精品国产成-欧美牲交a欧美牲交aⅴ-欧美日韩国产免费观看-九九99精品久久久久久综合-欧美理论影院-国内老熟妇乱子伦视频-www在线观看av-黄色裸体网站-少妇高潮惨叫久久久久久-国产偷国产偷av亚洲清高-国产午夜精品理论片小yo奈-高大丰满熟妇丰满的大白屁股

閱讀 | 訂閱
閱讀 | 訂閱
數(shù)控機(jī)床

多線程技術(shù)解決開放式數(shù)控系統(tǒng)實(shí)時(shí)性能的應(yīng)用設(shè)計(jì)

星之球激光 來源:中國自動(dòng)化網(wǎng)2012-01-05 我要評(píng)論(0 )   

1 引言 實(shí)時(shí)性是數(shù)控系統(tǒng)一項(xiàng)重要的性能指標(biāo)。 在IPC(Industrial Personal Computer )+運(yùn)動(dòng)控制器構(gòu)成的開放式數(shù)控系統(tǒng)開發(fā)平臺(tái)上,雖然這種主從式結(jié)構(gòu),確保了運(yùn)動(dòng)控...

1 引言
實(shí)時(shí)性是數(shù)控系統(tǒng)一項(xiàng)重要的性能指標(biāo)。
在IPC(Industrial Personal Computer )+運(yùn)動(dòng)控制器構(gòu)成的開放式數(shù)控系統(tǒng)開發(fā)平臺(tái)上,雖然這種主從式結(jié)構(gòu),確保了運(yùn)動(dòng)控制指令在運(yùn)動(dòng)控制器內(nèi)高速、實(shí)時(shí)的被執(zhí)行,但在PC機(jī)上,仍需要完成諸如實(shí)時(shí)顯示、預(yù)處理計(jì)算、系統(tǒng)狀態(tài)監(jiān)控等許多任務(wù)。為了保證系統(tǒng)的實(shí)時(shí)性能,擬采用多線程技術(shù),通過多任務(wù)并行處理的方式,提高系統(tǒng)實(shí)時(shí)性。
本開發(fā)平臺(tái)采用IPC+運(yùn)動(dòng)控制器模式的開放式數(shù)控系統(tǒng),主要的運(yùn)動(dòng)控制由固高公司的GT400-SV通用運(yùn)動(dòng)控制器完成。它提供C語言函數(shù)庫GT400sv.lib和Windows動(dòng)態(tài)連接庫GT400.dll,能夠?qū)崿F(xiàn)復(fù)雜的控制功能[2]。數(shù)控系統(tǒng)的開發(fā)是將這些控制函數(shù)與自己控制系統(tǒng)所需的數(shù)據(jù)處理、界面顯示、用戶接口等應(yīng)用程序模塊集成在一起,建造符合特定應(yīng)用要求的控制系統(tǒng)。

 

2 進(jìn)程與線程以及多線程技術(shù)
Windows操作系統(tǒng)既支持多進(jìn)程,又支持多線程。一個(gè)進(jìn)程就是應(yīng)用程序的一個(gè)實(shí)例,一次執(zhí)行過程也就是調(diào)入內(nèi)存準(zhǔn)備執(zhí)行的程序,包括當(dāng)前執(zhí)行的應(yīng)用程序的執(zhí)行代碼和程序執(zhí)行相關(guān)的一些環(huán)境信息。每個(gè)進(jìn)程擁有整臺(tái)計(jì)算機(jī)的資源,無須知道其他進(jìn)程在計(jì)算機(jī)中的信息。通常每個(gè)進(jìn)程至少有一個(gè)線程在執(zhí)行所屬地址空間中的代碼,該線程稱為主線程。如果該主線程運(yùn)行結(jié)束,系統(tǒng)將自動(dòng)清除進(jìn)程及其他地址空間。
線程是進(jìn)程內(nèi)部執(zhí)行的路徑,是操作系統(tǒng)分配CPU時(shí)間的基本實(shí)體,是程序運(yùn)行的最小單位。每個(gè)進(jìn)程都由主線程開始進(jìn)行應(yīng)用程序的執(zhí)行。線程由一個(gè)堆棧、CPU寄存器的狀態(tài)和系統(tǒng)調(diào)用列表中的一個(gè)入口組成。每個(gè)進(jìn)程可以包含一個(gè)以上的線程,這些線程可以同時(shí)獨(dú)立地執(zhí)行進(jìn)程地址空間中的代碼,共享進(jìn)程中的所有資源。
Windows系統(tǒng)分配處理器時(shí)間的最小單位是線程,系統(tǒng)不停地在各個(gè)線程之間切換。在PC機(jī)中,同一時(shí)間只有一個(gè)線程在運(yùn)行。通常系統(tǒng)為每個(gè)線程劃分的時(shí)間片很小(ms級(jí)別),這樣快速系統(tǒng)的實(shí)時(shí)性就有了保障[3]。
要實(shí)現(xiàn)多線程編程,可建立輔助線程(worker Thread)和用戶界面線程(User Interface Thread)。輔助線程主要用來執(zhí)行數(shù)控程序、坐標(biāo)顯示、動(dòng)態(tài)仿真和數(shù)據(jù)預(yù)處理;用戶界面線程用來處理用戶的輸入,響應(yīng)用戶產(chǎn)生的事件和消息。

3 數(shù)控系統(tǒng)實(shí)時(shí)性分析
3.1 線程的實(shí)時(shí)性
數(shù)控系統(tǒng)需要完成的任務(wù)有很多,這些任務(wù)中,優(yōu)先級(jí)的要求級(jí)別不一樣。據(jù)此,可以利用Windows系統(tǒng)的多任務(wù)、搶占式的特點(diǎn)和多線程技術(shù)將各個(gè)任務(wù)分給不同的線程,并賦予各個(gè)線程不同的優(yōu)先級(jí),當(dāng)高優(yōu)先級(jí)的線程執(zhí)行時(shí),即實(shí)時(shí)性要求高的任務(wù)需要執(zhí)行時(shí),可以自動(dòng)地終止其他線程的工作轉(zhuǎn)而執(zhí)行這一線程[4]。通過這一方法,可以實(shí)現(xiàn)數(shù)控系統(tǒng)所要求的實(shí)時(shí)性。
3.2 輔助線程創(chuàng)建
本開發(fā)系統(tǒng)中所創(chuàng)建的輔助線程可大致劃分如下:
(1)坐標(biāo)顯示線程
在手動(dòng)脈沖面板、電動(dòng)控制面板和增量控制面板中,可實(shí)時(shí)顯示X、Y、Z三個(gè)運(yùn)動(dòng)軸的坐標(biāo)。這樣可使操作人員直觀看到三軸的實(shí)際坐標(biāo)。實(shí)時(shí)性要求較低,所以使用最低優(yōu)先級(jí):Lowest Normal。
(2)圖形顯示線程
圖像顯示線程用于在動(dòng)態(tài)仿真面板中執(zhí)行圖形繪制的指令。通過圖形顯示,操作者可以在動(dòng)態(tài)仿真的同時(shí),對(duì)人機(jī)界面進(jìn)行操作。這一線程實(shí)時(shí)性要求較低,等級(jí)為:Blow Normal。
(3)IO狀態(tài)控制線程
此線程用于檢測(cè)由系統(tǒng)輸入的各個(gè)離散量,以及從數(shù)控程序得到的指令來輸出機(jī)床各離散量的狀態(tài)。此線程優(yōu)先級(jí)比前兩線程高,等級(jí)為:Normal。
(4)數(shù)據(jù)預(yù)處理線程
數(shù)據(jù)預(yù)處理線程主要負(fù)責(zé)完成編碼形式轉(zhuǎn)換、刀具長度補(bǔ)償、刀具半徑補(bǔ)償和公英制轉(zhuǎn)換等運(yùn)動(dòng)控制數(shù)據(jù)預(yù)處理函數(shù)的執(zhí)行。等級(jí)為:Normal。
(5)運(yùn)動(dòng)控制線程
此線程主要用于運(yùn)動(dòng)控制器執(zhí)行數(shù)控代碼函數(shù)的運(yùn)行。負(fù)責(zé)向緩沖器輸入運(yùn)動(dòng)控制命令,清空緩沖器和打開關(guān)閉緩沖器等操作。等級(jí)稍高:Above Normal。
(6)緊急控制線程
此線程處理一些需要機(jī)床立即做出反應(yīng)的時(shí)間,如機(jī)床的急停等。優(yōu)先級(jí)最高,等級(jí)為:Highest。
本系統(tǒng)中所創(chuàng)建的輔助線程可大致劃分如下表1所示。

  表1 線程的創(chuàng)建及優(yōu)先級(jí)設(shè)置

 

 

4 多線程的實(shí)現(xiàn)
在Windows操作系統(tǒng)中,多線程的實(shí)現(xiàn)需要調(diào)用一系列的API函數(shù),如CreateThread、ResumeThread等,比較麻煩且容易出錯(cuò)。使用新一代RAD開發(fā)工具C++ Builder中的TThread類,可以方便地實(shí)現(xiàn)多線程的編程,特別是對(duì)于系統(tǒng)開發(fā)語言是C的Windows系列操作系統(tǒng),它具有其它編程語言無可比擬的優(yōu)勢(shì)。
4.1 線程的創(chuàng)建
在C++ Builder中雖然用TThread對(duì)象說明了線程的概念,但是TThread對(duì)象本身并不完整,需要在TThread下新建其子類,并重載Execute來使用線程對(duì)象。
在C++ Builder IDE環(huán)境下選擇菜單File|New,在New欄中選中Thread Object,按OK,在彈出的對(duì)話框中輸入TThread對(duì)象子類的名字CoordinateDisplyThread,自動(dòng)創(chuàng)建了一個(gè)CoordinateDisply的TThread子類。同時(shí)在編輯器中創(chuàng)建了一個(gè)名為CoordinateDisplyThread單元。
4.2 線程的實(shí)現(xiàn)
在創(chuàng)建的代碼中Execute()函數(shù)就是要在線程中實(shí)現(xiàn)的任務(wù)的代碼所在處。在原Unit1.cpp代碼中包含了CoordinateDisplayThread.h文件。使用時(shí),動(dòng)態(tài)創(chuàng)建一個(gè)TCoordinateDisplay對(duì)象,具體執(zhí)行的代碼就是Execute()方法重載的代碼。

由于Execute()中添加的線程運(yùn)行時(shí)所需要執(zhí)行的函數(shù)調(diào)用了VCL組件,而VCL對(duì)象不具有線程安全性,它們的特性和方法只能在主線程中訪問,所以用Synchronize()函數(shù)將坐標(biāo)顯示函數(shù)進(jìn)行包裝。而坐標(biāo)顯示函數(shù)需如下聲明:

void_fastcall Function().

下面以坐標(biāo)顯示線程即CoordinateDisplayThread的實(shí)現(xiàn)步驟為例,說明線程實(shí)現(xiàn)的具體方法。其他線程的實(shí)現(xiàn)需根據(jù)具體情況,進(jìn)行修正。

在CoordinateDisplayThread.cpp文件中的CoordinateDisplayThread::Execute()函數(shù)里添加如下語句,實(shí)現(xiàn)X、Y、Z坐標(biāo)顯示函數(shù)調(diào)用的一致性。

首先用switch語句判斷單軸運(yùn)動(dòng)中的哪一軸的坐標(biāo)位置發(fā)生改變:
 


做好上述準(zhǔn)備工作之后,需要在主單元中的適當(dāng)?shù)奈恢锰砑娱_始線程和掛起線程的命令。代碼如下所示:
 


.3 關(guān)于線程同步
線程同步在編程技術(shù)中非常重要,當(dāng)一個(gè)線程在訪問一個(gè)進(jìn)程對(duì)象時(shí),如果另一個(gè)線程要改變?cè)搶?duì)象,可能產(chǎn)生錯(cuò)誤的結(jié)果。在本例開發(fā)應(yīng)用中,利用API函數(shù),可以直接使用臨界或互斥來達(dá)到同步的目的。為了提高同步的可靠性和靈活性,同時(shí)用到了標(biāo)志變量和臨界機(jī)制。只需在程序中聲明一個(gè)TRTLCriticalSection類型的變量Sect1,并在主線程的構(gòu)造函數(shù)中進(jìn)行初始化。之后在某個(gè)線程中,可以把相應(yīng)的代碼標(biāo)記為臨界部分,當(dāng)在一個(gè)線程中調(diào)用EnterCriticalSection()并傳遞Sect1時(shí),就設(shè)置多個(gè)數(shù)據(jù)成員,以表明臨界部分進(jìn)入活動(dòng)狀態(tài)。如果另一個(gè)線程要調(diào)用它自己的臨界部分時(shí),函數(shù)EnterCriticalSection()將發(fā)現(xiàn)有一個(gè)臨界部分正在使用,就讓第二個(gè)線程處于休眠狀態(tài),直到第一個(gè)線程退出臨界部分為止。#p#分頁標(biāo)題#e#

 

5 結(jié)束語
本文將C++ builder多線程技術(shù)應(yīng)用于開放式數(shù)控系統(tǒng)的軟件設(shè)計(jì)中,有效的解決了線程同步問題,保證了數(shù)控軟件系統(tǒng)的實(shí)時(shí)性要求,取得了較好的運(yùn)用效果。

 

轉(zhuǎn)載請(qǐng)注明出處。

暫無關(guān)鍵詞
免責(zé)聲明

① 凡本網(wǎng)未注明其他出處的作品,版權(quán)均屬于激光制造網(wǎng),未經(jīng)本網(wǎng)授權(quán)不得轉(zhuǎn)載、摘編或利用其它方式使用。獲本網(wǎng)授權(quán)使用作品的,應(yīng)在授權(quán)范圍內(nèi)使 用,并注明"來源:激光制造網(wǎng)”。違反上述聲明者,本網(wǎng)將追究其相關(guān)責(zé)任。
② 凡本網(wǎng)注明其他來源的作品及圖片,均轉(zhuǎn)載自其它媒體,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本媒贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系我們刪除。
③ 任何單位或個(gè)人認(rèn)為本網(wǎng)內(nèi)容可能涉嫌侵犯其合法權(quán)益,請(qǐng)及時(shí)向本網(wǎng)提出書面權(quán)利通知,并提供身份證明、權(quán)屬證明、具體鏈接(URL)及詳細(xì)侵權(quán)情況證明。本網(wǎng)在收到上述法律文件后,將會(huì)依法盡快移除相關(guān)涉嫌侵權(quán)的內(nèi)容。

網(wǎng)友點(diǎn)評(píng)
0相關(guān)評(píng)論
精彩導(dǎo)讀
天天爽天天看-日本少妇xxxx动漫-亚洲av成人精品毛片-欧美一区二区三区激情啪啪-91精品国产成-欧美牲交a欧美牲交aⅴ-欧美日韩国产免费观看-九九99精品久久久久久综合-欧美理论影院-国内老熟妇乱子伦视频-www在线观看av-黄色裸体网站-少妇高潮惨叫久久久久久-国产偷国产偷av亚洲清高-国产午夜精品理论片小yo奈-高大丰满熟妇丰满的大白屁股
  • <abbr id="a4qk0"><tfoot id="a4qk0"></tfoot></abbr>
    <fieldset id="a4qk0"></fieldset>
    日韩av手机版| 国产免费色视频| 中文字幕永久视频| 自拍偷拍视频在线| 日韩不卡视频一区二区| 欧美 国产 日本| 97免费视频观看| 亚洲精品永久视频| xxxx一级片| 精品www久久久久奶水| 成人小视频在线观看免费| www.超碰97.com| 成人中文字幕av| 97成人在线观看视频| 久久久久免费看黄a片app| 91网站在线观看免费| 日本特黄在线观看| 亚洲天堂一区二区在线观看| 潘金莲激情呻吟欲求不满视频| 可以在线看的黄色网址| 噜噜噜久久亚洲精品国产品麻豆| 欧美黄色免费网址| 香港三级日本三级a视频| 日本三日本三级少妇三级66| 婷婷激情小说网| 亚洲精品偷拍视频| a级黄色片免费| 黄色一级片在线看| 久久精品国产精品亚洲色婷婷| 色哺乳xxxxhd奶水米仓惠香| 国产高潮呻吟久久久| 国产青草视频在线观看| 女人被男人躁得好爽免费视频| 男女私大尺度视频| 黄色一级大片在线观看| 国产精品一区二区小说| 51自拍视频在线观看| 一级日本黄色片| 日本人体一区二区| 日本新janpanese乱熟| 国产日韩欧美久久| 蜜桃网站在线观看| 免费观看日韩毛片| 亚洲欧美自拍另类日韩| 少妇高潮大叫好爽喷水| 九一国产精品视频| 午夜久久久精品| 中文字幕乱码免费| 可以免费观看av毛片| 亚洲无在线观看| aa视频在线播放| 亚洲精品久久久中文字幕| 男女激烈动态图| 国产综合免费视频| 午夜啪啪福利视频| caoporn超碰97| 日韩久久久久久久久久久久| 天天色综合天天色| 免费在线黄网站| 久久人人爽av| 免费拍拍拍网站| 特黄视频免费观看| 无码人妻丰满熟妇区毛片| 手机看片日韩国产| 黄色手机在线视频| 国产日产欧美视频| 激情小视频网站| 日本中文字幕精品—区二区| 欧美老熟妇喷水| 免费看日b视频| xxx国产在线观看| 亚洲中文字幕无码专区| 国产91沈先生在线播放| 国产乱叫456| 欧美性猛交xxx乱久交| 97成人在线免费视频| 永久免费看av| 色香蕉在线观看| 天堂在线一区二区三区| 牛夜精品久久久久久久| 欧美精品色婷婷五月综合| 免费超爽大片黄| 日韩精品一区二区在线视频| 天堂av8在线| 第一区免费在线观看| 一区二区三区 日韩| 成人一区二区三| 欧美日韩在线免费播放| 无码人妻丰满熟妇区五十路百度| 成熟丰满熟妇高潮xxxxx视频| 精品丰满人妻无套内射| 2018国产在线| 欧美亚洲另类色图| 免费看的黄色大片| 国产免费成人在线| 国产成人手机视频| 亚洲精品成人在线播放| 激情久久综合网| 国产一区一区三区| 日本a在线天堂| 好吊妞无缓冲视频观看| 毛葺葺老太做受视频| 中文字幕日韩综合| 中文字幕一区二区在线观看视频| 黄色三级视频在线播放| 91视频成人免费| 久久久久久久中文| 欧美精品aaaa| 亚洲女人在线观看| 成人免费在线网| 成人三级视频在线播放| 天天干天天av| 日韩精品久久一区二区| 欧美成人xxxxx| 欧美激情第3页| 国产一级不卡视频| 波多野结衣作品集| 久久久精品高清| 国产无限制自拍| www.99av.com| av网站大全免费| 国产成人综合一区| 色婷婷777777仙踪林| 青青青在线播放| 免费观看国产视频在线| 成年人视频在线免费| 色呦呦网站入口| 欧美精品一区免费| a级网站在线观看| 欧美日韩一区二区在线免费观看| 中文字幕剧情在线观看| 91国视频在线| 午夜啪啪福利视频| 性欧美1819| a√天堂在线观看| 最新中文字幕久久| 99视频在线视频| 亚洲中文字幕无码中文字| 中文字幕一区二区在线观看视频| 日韩人妻精品无码一区二区三区| 青春草在线视频免费观看| 成人免费在线观看视频网站| 日韩av一二三四区| 免费观看国产视频在线| av免费一区二区| 欧美日韩怡红院| 色诱视频在线观看| 女性女同性aⅴ免费观女性恋| 亚洲美女自拍偷拍| 91精品视频国产| 亚洲国产日韩欧美在线观看| 黄色一级大片在线观看| 国模无码视频一区二区三区| 中文字幕乱码免费| 99热一区二区三区| 手机看片日韩国产| 欧美 国产 精品| 丰满女人性猛交| 中文字幕一区二区三区四区五区人| 中文字幕亚洲乱码| 免费一区二区三区在线观看| 久久婷婷国产91天堂综合精品| 欧美 日韩 国产一区| 国产亚洲天堂网| 久久精品午夜福利| 国产精品无码av无码| 北条麻妃在线视频| 亚欧美在线观看| 国产日韩欧美久久| 尤物网站在线看| 九九久久九九久久| 91午夜在线观看| 成熟了的熟妇毛茸茸| www.日本xxxx| 亚洲天堂国产视频| 无码人妻精品一区二区三区99v| 成年人黄色在线观看| 国产精品久久久久久久乖乖| www一区二区www免费| 亚洲一级免费观看| 善良的小姨在线| 免费无码毛片一区二三区| 欧美在线观看成人| 亚洲免费999| www成人免费| 国产精品无码av无码| 亚洲天堂av一区二区三区| 99久久久精品视频| 亚洲综合在线网站| 91精品国产吴梦梦| 91视频最新入口| 亚洲欧美日本一区二区| 99热亚洲精品| 成人av毛片在线观看| 青青草精品视频在线| 最新天堂中文在线| 欧美一级片免费播放| 激情黄色小视频| 91传媒久久久| 路边理发店露脸熟妇泻火|