999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

多線程技術(shù)在1000MW水輪發(fā)電機(jī)推力軸承試驗上的應(yīng)用

2011-07-02 03:29:30李淑鈺祖宇聰
大電機(jī)技術(shù) 2011年6期
關(guān)鍵詞:系統(tǒng)

孫 凱,李淑鈺,祖宇聰

(1.哈爾濱大電機(jī)研究所,哈爾濱 150040;2.東北林業(yè)大學(xué),哈爾濱 150040)

1 引言

對于大型發(fā)電機(jī),推力軸承的設(shè)計和制造技術(shù)是非常重要的。進(jìn)行推力軸承試驗是優(yōu)化大型水輪發(fā)電機(jī)組推力軸承的結(jié)構(gòu)、參數(shù),提高其運(yùn)行可靠性的關(guān)鍵研究工作。

為了能夠準(zhǔn)確可靠的獲得推力軸承試驗的各項數(shù)據(jù),采用了先進(jìn)的微機(jī)測控系統(tǒng),使用交互式編程語言LabWindows/CVI作為平臺來進(jìn)行測控軟件的開發(fā),并在軟件開發(fā)過程中采用了多線程的編程技術(shù)。

2 推力軸承試驗中的測控系統(tǒng)

在1000MW水輪發(fā)電機(jī)推力軸承試驗中,測控系統(tǒng)以先進(jìn)的工業(yè)控制計算機(jī)為核心,其硬件系統(tǒng)由多種傳感器、信號調(diào)理模塊、接口轉(zhuǎn)換模塊、多功能數(shù)據(jù)采集卡、VXI總線數(shù)采系統(tǒng)、單片機(jī)、巡檢儀等多種硬件系統(tǒng)組成,需要測試的數(shù)據(jù)點包括轉(zhuǎn)速、載荷、溫度、壓力、位移等多達(dá)254個,為了及時準(zhǔn)確的測得數(shù)據(jù),硬件系統(tǒng)中采用了多種測試設(shè)備,設(shè)備與計算機(jī)之間采用了不同的通訊方式,這些通訊方式包括計算機(jī)與VXI數(shù)采系統(tǒng)之間的MXI-2、RS-232、無線485、以太網(wǎng)等技術(shù)(見圖1)。

軟件系統(tǒng)以 LabWindows/CVI為開發(fā)平臺,為了合理利用硬件資源,安全可靠的進(jìn)行測試,軟件系統(tǒng)中多處使用了多線程技術(shù)。

圖1 硬件系統(tǒng)基本組成框圖

3 多線程技術(shù)

多線程技術(shù)是指計算機(jī)的操作系統(tǒng)在同一時間內(nèi)可以允許多個程序同時執(zhí)行的能力,也就是讓CPU同時執(zhí)行多個線程。

3.1 線程

進(jìn)程通常被定義為一個正在運(yùn)行的程序的實例,若要使進(jìn)程完成某項操作,它必須擁有一個在它的環(huán)境中運(yùn)行的線程,線程是進(jìn)程內(nèi)部的可獨立執(zhí)行的單元,負(fù)責(zé)執(zhí)行包含在進(jìn)程的地址空間中的代碼,是操作系統(tǒng)對系統(tǒng)資源的調(diào)度單位。

3.2 CPU如何完成多線程任務(wù)

目前主流的Windows操作系統(tǒng)都是基于多任務(wù)機(jī)制的,即可同時運(yùn)行多個應(yīng)用程序,這需要有多個線程同時執(zhí)行代碼,操作系統(tǒng)會為每一個線程安排一定的CPU時間,稱為時間片,讓每個線程只在自己時間片內(nèi)運(yùn)行,時間片結(jié)束之后中斷該線程的運(yùn)行,啟動另外的線程執(zhí)行,這被稱為線程切換。操作系統(tǒng)通過循環(huán)方式為線程提供時間片,采用時間片輪換的方式來執(zhí)行多個任務(wù)。

多線程技術(shù)的優(yōu)勢在于將任務(wù)分解為多個線程,可以在主線程外產(chǎn)生一個或幾個輔助線程,每個線程獨立的執(zhí)行自己的代碼,用于完成如數(shù)據(jù)采集、網(wǎng)絡(luò)訪問、數(shù)據(jù)存儲等后臺工作,這些線程可以共享進(jìn)程中的數(shù)據(jù)。

由上述介紹可以知道,對于單個CPU計算機(jī)來說,宏觀上可以實現(xiàn)多線程并行運(yùn)行,進(jìn)而提高CPU的工作效率,對于多CPU的計算機(jī),可以將不同的任務(wù)分配給不同CPU內(nèi)核來執(zhí)行,從而可以真正達(dá)到多個線程同時運(yùn)行。這種多線程機(jī)制為單個計算機(jī)同時管理多個外圍設(shè)備提供了一種很好的解決方案。

3.3 LabWindows/CVI中多線程程序的實現(xiàn)方式

LabWindows/CVI是美國 NI公司開發(fā)的面向計算機(jī)測控領(lǐng)域的軟件開發(fā)平臺,它以ANSI C為核心,采用交互式編程方法,提供了大量的功能函數(shù)。

該軟件提供了四種多線程機(jī)制的實現(xiàn)方式:線程池方式、異步定時器方式、Timer控件定時器方式和使用Windows SDK函數(shù)的方式。

(1)線程池方式

線程池可以理解為線程的容器,程序開發(fā)人員可以使用CmtNewThreadPool( )函數(shù)來創(chuàng)建新的線程池,通過調(diào)用線程調(diào)度函數(shù)將需要執(zhí)行的函數(shù)傳遞到線程池,這個被傳遞的函數(shù)稱為線程函數(shù),線程函數(shù)可以起任何名字,并且函數(shù)原型也沒有限制。

在線程結(jié)束時,必須調(diào)用線程注銷函數(shù)來釋放線程池的資源,否則系統(tǒng)資源會逐漸消耗殆盡。

(2)異步定時器方式

此方式適用于等時間間隔執(zhí)行任務(wù),異步定時器是利用Windows多媒體定時器在指定的時間間隔點調(diào)用線程函數(shù),此種方式下需要調(diào)用工具庫中的函數(shù)以創(chuàng)建異步定時器,函數(shù)原型如下:

int CVICALLBACK NewAsyncTimer(double

interval,int count, int initialState,void*callbackFunction,void *callbackDat);異步定時器創(chuàng)建好以后把需要執(zhí)行的線程函數(shù)傳遞給NewAsync Timer函數(shù),并設(shè)定執(zhí)行的時間間隔。異步定時器的時間間隔精確,可以用來對一些采集設(shè)備進(jìn)行精確的軟件定時。

(3)timer定時器方式

這種多線程實現(xiàn)方式是調(diào)用一個timer定時器,它是 LabWindows/CVI提供的一個控件,能夠等間隔循環(huán)啟動它的回調(diào)函數(shù),獨立于主線程之外,其執(zhí)行效果與異步定時器接近,但是timer控件執(zhí)行線程的優(yōu)先級低,受主線程的影響嚴(yán)重,不適合做時間間隔要求非常嚴(yán)格的工作,因此這種多線程實現(xiàn)方式常常被程序開發(fā)者忽略。

(4)使用Windows SDK中提供的函數(shù)

Windows SDK提供了進(jìn)行多線程編程的相關(guān)函數(shù),這些函數(shù)定義在winbase.h文件中,導(dǎo)入庫為kernel.lib文件,在使用的時候需要在源文件中添加windows.h文件,編程時調(diào)用CreateThread函數(shù)可以創(chuàng)建新的線程,函數(shù)SuspendThread和函數(shù)ResumeThread分別用來暫停和繼續(xù)執(zhí)行獨立線程,函數(shù)TeminateThread用來終止獨立的線程。

此方式下,有些函數(shù)在windows SDK和LabWindows/CVI中都有定義,這些函數(shù)使用不當(dāng)會出現(xiàn)編譯錯誤,因此要注意使用正確的頭文件。

3.4 線程的優(yōu)先級

線程的優(yōu)先級會影響線程從CPU獲得時間的長短,系統(tǒng)不會允許優(yōu)先級低的線程先執(zhí)行,因此在程序設(shè)計時,應(yīng)該盡量將不重要的任務(wù)設(shè)成較低的優(yōu)先級。

設(shè)置線程優(yōu)先級的函數(shù)如下:

BOOL SetThreadPriority(HANDLE hThread,int nPriority)

4 多線程技術(shù)在測控系統(tǒng)中的應(yīng)用方案

在1000MW水輪發(fā)電機(jī)推力軸承測控系統(tǒng)中,由計算機(jī)發(fā)送采集指令,送入VXI數(shù)據(jù)采集系統(tǒng)、單片機(jī)、巡檢儀等設(shè)備,測量結(jié)果返回到計算機(jī)中,然后進(jìn)行數(shù)據(jù)顯示和保存。需要實現(xiàn)的功能有:

(1)系統(tǒng)時間顯示;

(2)VXI數(shù)采系統(tǒng)對轉(zhuǎn)速、載荷的監(jiān)測;

(3)VXI數(shù)采系統(tǒng)測量溫度數(shù)據(jù);

(4)數(shù)據(jù)采集卡對位移的測量;

(5)采用無線485通訊對溫度巡檢儀和單片機(jī)采集系統(tǒng)進(jìn)行控制;

(6)RS-232中斷程序,用于位移測試儀;

(7)TCP/IP通訊用于下位機(jī)數(shù)據(jù)顯示。

在測控系統(tǒng)軟件的開發(fā)調(diào)試過程中,采用了多線程的編程方案。本系統(tǒng)中使用了線程池方式來實現(xiàn)多線程的程序開發(fā)。經(jīng)過對系統(tǒng)任務(wù)的分析,考慮了實際應(yīng)用的過程,既要保證得到真實可靠的測試數(shù)據(jù),又要保證系統(tǒng)的安全,把測控軟件所要完成的功能劃分給不同的線程函數(shù)。在創(chuàng)建好的線程池內(nèi)調(diào)用這些線程函數(shù)。

(1)系統(tǒng)時間顯示線程,在主函數(shù)中創(chuàng)建一個只有一個線程的線程池,在線城池中只放一個線程函數(shù),循環(huán)進(jìn)行時間調(diào)用與顯示。雖然線程池中只有一個線程,但這是獨立于主函數(shù)進(jìn)程之外的,不影響主函數(shù)的運(yùn)行,不會造成程序失去響應(yīng)的問題。

(2)轉(zhuǎn)速、載荷的監(jiān)測及溫度數(shù)據(jù)采集線程,創(chuàng)建一個新線程池,放入兩個線程函數(shù),一個用來測量轉(zhuǎn)速和載荷,另一個用來測量溫度數(shù)據(jù),由于此任務(wù)分配給VXI數(shù)采系統(tǒng),該設(shè)備中的選用的模塊不支持并行采集,所以為了完成不同的測量任務(wù),這里設(shè)置了硬件占用和硬件釋放標(biāo)志。

(3)創(chuàng)建第三個線程池,將PCI數(shù)據(jù)采集卡測量程序、無線485通信程序、RS-232中斷程序、以太網(wǎng)通信程序這四個函數(shù)放在這個線程池中,這四個函數(shù)分別使用不同的設(shè)備,相互之間不會干擾,所以在同一個線程池內(nèi)不會影響程序運(yùn)行。

至此,軟件系統(tǒng)的主要測試任務(wù)被分配到了多個線程中,在主函數(shù)中對這些線程函數(shù)進(jìn)行啟動和終止等控制,并在用戶界面上設(shè)置相應(yīng)的入口。用多線程的編程方案開發(fā)測控系統(tǒng)軟件,提高了系統(tǒng)并行處理問題的能力。

將任務(wù)分配給不同線程后,提高了硬件系統(tǒng)的利用效率,但是也存在風(fēng)險,因為在不同的線程內(nèi),會出現(xiàn)兩個線程同時訪問數(shù)據(jù)的情況,甚至?xí)霈F(xiàn)數(shù)據(jù)訪問時被改寫的問題,因此必須保護(hù)全局變量、靜態(tài)局部變量和動態(tài)分配的變量,否則可能會造成邏輯錯誤。LabWindows/CVI通用庫提供了三種不同的機(jī)制來保護(hù)數(shù)據(jù):線程鎖,線程變量和線程隊列。本系統(tǒng)軟件采用了線程隊列機(jī)制,線程隊列函數(shù)允許線程之間安全地傳遞數(shù)據(jù),保證讀數(shù)據(jù)和寫數(shù)據(jù)線程不會彼此阻塞。

另外需要注意的是,在線程函數(shù)執(zhí)行完成后要釋放其所占用的硬件資源,系統(tǒng)運(yùn)行結(jié)束前要關(guān)閉線程池,否則會導(dǎo)致操作系統(tǒng)資源消耗過大。

5 應(yīng)用該技術(shù)后的系統(tǒng)測試結(jié)果

使用多線程技術(shù)開發(fā)的測控系統(tǒng)軟件在白鶴灘1000MW 水輪發(fā)電機(jī)推力軸承試驗中成功地完成了塑料瓦、鎢金瓦的試驗,為百萬千瓦機(jī)組推力軸承研究提供了大量真實可靠的數(shù)據(jù),圓滿地完成了對各種工況的控制和大量的數(shù)據(jù)采集任務(wù)。

在以往的單線程測控系統(tǒng)中,所有的測控任務(wù)都是按順序執(zhí)行的,在數(shù)據(jù)采集的時候,每一項功能都需要一定的執(zhí)行時間,這樣完成所有項目的采集需要的時間比較長,當(dāng)某一任務(wù)無法完成時,測控軟件會不停的等待,造成軟件無法結(jié)束的問題。另外,在試驗過程中,順序執(zhí)行的任務(wù)結(jié)束前,軟件無法響應(yīng)操作者的任何指令,這是嚴(yán)重的安全隱患。推力軸承試驗測控系統(tǒng)中使用了多線程的編程技術(shù)以后,解決了上述問題,溫度采集、壓力采集、油膜厚度采集等都是相互獨立的,互不干涉,軟件可以隨時對操作者的指令做出響應(yīng),從而保證了試驗臺的安全運(yùn)行。

通過使用多線程的編程方案,測控軟件的程序結(jié)構(gòu)更加合理,由于多個線程同時執(zhí)行,大大縮短了程序的執(zhí)行時間,多臺設(shè)備同時運(yùn)行,一個測試循環(huán)時間由5分鐘縮短到了3分鐘,充分利用了硬件資源,提高了試驗的效率。

6 結(jié)束語

采用多線程技術(shù)進(jìn)行測控軟件開發(fā),能夠提高CPU的工作效率,充分利用系統(tǒng)資源,進(jìn)而提高了程序的實時性,增強(qiáng)了CPU對外圍設(shè)備的控制能力,使測控系統(tǒng)軟件的工作效率大大提高。目前,多核心處理器逐漸普及,從而使得測控軟件能夠真正做到多線程同時執(zhí)行,該技術(shù)也日趨成熟。多線程技術(shù)的應(yīng)用,不僅縮短了測控軟件的開發(fā)周期,也大大提高了系統(tǒng)的可靠性,為科學(xué)試驗提供大量真實可靠的數(shù)據(jù)。

[1](美)Jeffrey Richter .Windows核心編程.北京:機(jī)械工業(yè)出版社, 2000.

[2]宋宇峰.LabWindows/CVI逐步深入與開發(fā)實例.北京:機(jī)械工業(yè)出版社, 2003.

[3]白鵬.虛擬儀器編程語言 LabWindows/CVI教程.北京: 電子工業(yè)出版社, 2001.

猜你喜歡
系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機(jī)系統(tǒng)
ZC系列無人機(jī)遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統(tǒng)
基于UG的發(fā)射箱自動化虛擬裝配系統(tǒng)開發(fā)
半沸制皂系統(tǒng)(下)
FAO系統(tǒng)特有功能分析及互聯(lián)互通探討
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
一德系統(tǒng) 德行天下
PLC在多段調(diào)速系統(tǒng)中的應(yīng)用
主站蜘蛛池模板: 免费看美女自慰的网站| 国产成人无码播放| 国内精品免费| 国产波多野结衣中文在线播放| 色窝窝免费一区二区三区| 国产精品欧美在线观看| 男女性色大片免费网站| 人妻丰满熟妇AV无码区| 亚洲中文无码av永久伊人| 亚洲 日韩 激情 无码 中出| 国产成人艳妇AA视频在线| 中国美女**毛片录像在线| 亚洲最新在线| 亚洲最大福利网站| 国产欧美在线观看视频| 无码国产偷倩在线播放老年人| www欧美在线观看| 久久不卡精品| 国产麻豆精品手机在线观看| 国产精品免费露脸视频| 久久精品国产免费观看频道| 国产一区二区三区在线观看视频| a级毛片视频免费观看| 99久久精品国产麻豆婷婷| 亚洲国产精品VA在线看黑人| 午夜毛片免费观看视频 | 欧美高清日韩| 91视频青青草| 欧亚日韩Av| 精品91视频| 国产h视频免费观看| 欧美成人aⅴ| 国产美女自慰在线观看| 欧美精品色视频| 亚洲国产中文在线二区三区免| 国产欧美在线| 欧洲高清无码在线| av一区二区三区高清久久| 国模视频一区二区| 国产农村妇女精品一二区| 久久精品aⅴ无码中文字幕 | 国产靠逼视频| 69av免费视频| 91热爆在线| 无码精品国产dvd在线观看9久| 久久精品女人天堂aaa| 亚洲Av激情网五月天| 91麻豆精品国产高清在线| 国产精品私拍99pans大尺度| jizz在线免费播放| 成年A级毛片| 免费网站成人亚洲| 国产女主播一区| 99999久久久久久亚洲| 久久这里只有精品8| 91啦中文字幕| 国产一级在线观看www色 | 少妇露出福利视频| 久久精品视频一| 亚洲精品亚洲人成在线| 国产成人精品高清在线| 无套av在线| 精品国产91爱| 无码高潮喷水专区久久| 免费无码在线观看| 国产成人免费| 午夜视频www| 美女扒开下面流白浆在线试听 | 最新日本中文字幕| 国产第一色| 四虎永久免费地址| 亚洲精品少妇熟女| 99人妻碰碰碰久久久久禁片| 一级毛片网| 精品一区二区三区波多野结衣 | 91丝袜美腿高跟国产极品老师| 久久人午夜亚洲精品无码区| 中文字幕天无码久久精品视频免费| 精品国产福利在线| 2021国产v亚洲v天堂无码| 午夜精品久久久久久久无码软件| 在线观看欧美精品二区|