亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2011-07-02 03:29:30李淑鈺祖宇聰
        大電機(jī)技術(shù) 2011年6期
        關(guān)鍵詞:線程測控軸承

        孫 凱,李淑鈺,祖宇聰

        (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ù)點(diǎn)包括轉(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)部的可獨(dú)立執(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)生一個或幾個輔助線程,每個線程獨(dú)立的執(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ǎn)調(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ù),獨(dú)立于主線程之外,其執(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í)行獨(dú)立線程,函數(shù)TeminateThread用來終止獨(dú)立的線程。

        此方式下,有些函數(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)用與顯示。雖然線程池中只有一個線程,但這是獨(dú)立于主函數(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ù)以后,解決了上述問題,溫度采集、壓力采集、油膜厚度采集等都是相互獨(dú)立的,互不干涉,軟件可以隨時對操作者的指令做出響應(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.

        猜你喜歡
        線程測控軸承
        軸承知識
        哈爾濱軸承(2022年2期)2022-07-22 06:39:32
        軸承知識
        哈爾濱軸承(2022年1期)2022-05-23 13:13:24
        軸承知識
        哈爾濱軸承(2021年2期)2021-08-12 06:11:46
        軸承知識
        哈爾濱軸承(2021年1期)2021-07-21 05:43:16
        《測控電路》實踐教學(xué)改革探討
        電子測試(2018年22期)2018-12-19 05:12:58
        淺談linux多線程協(xié)作
        基于現(xiàn)代測控技術(shù)及其應(yīng)用分析
        向著新航程進(jìn)發(fā)——遠(yuǎn)望7號測控船首航記錄
        太空探索(2016年12期)2016-07-18 11:13:43
        基于USB2.0協(xié)議的通用測控通信接口設(shè)計
        Linux線程實現(xiàn)技術(shù)研究
        人妻少妇精品视频一区二区三区 | 少妇伦子伦情品无吗| 东北老女人高潮疯狂过瘾对白| 欧美亚洲高清日韩成人| 巨爆乳中文字幕爆乳区| 国产精品久久无码免费看| 国产一级黄色av影片| 免费视频一区二区三区美女| 日韩av一区二区三区激情在线 | 白色白在线观看免费2| 精人妻无码一区二区三区| 色综合色狠狠天天综合色| 国产亚洲日韩欧美一区二区三区| 中文人妻无码一区二区三区信息| 亚洲麻豆av一区二区| 丝袜美腿亚洲综合第一页| 国产成人自拍高清在线| 麻豆婷婷狠狠色18禁久久| 亚洲欧美一区二区三区| 免费毛片在线视频| 精品专区一区二区三区| 亚洲 另类 小说 国产精品| 人妻无码aⅴ不卡中文字幕| 97在线视频免费| 射进去av一区二区三区| 亚洲最大成人综合网720p| 熟女人妻在线视频| 蜜桃一区二区三区在线看| 自拍偷拍另类三级三色四色| 亚洲av天堂免费在线观看| 成人激情五月天| 久久久久成人精品免费播放| 国产免费一区二区三区在线观看| 国产av精品一区二区三区久久| 无码区a∨视频体验区30秒| 国产午夜影视大全免费观看| 国产精品制服一区二区| 精品老熟女一区二区三区在线| 成人午夜高潮a∨猛片| 欧美黑人性暴力猛交喷水黑人巨大| 青青草国产成人99久久|