實現(xiàn)試驗臺測控系統(tǒng)中多線程方法
實現(xiàn)試驗臺測控系統(tǒng)中多線程方法
試驗臺測控中,加載控制系統(tǒng)對實時性的要求很高,對于該類系統(tǒng)一般采取多線程編程的處理方法,因此需要考慮多線程之間的數(shù)據(jù)安全問題。
多線程實時采集處理相對于CVI的Timer控件,異步定時器基于多線程處理,以Windows多媒體定時器來執(zhí)行定時操作,具有較高的優(yōu)先級。但是不同的機器可設(shè)置的Z小間隔是不同的博山消防泵,如果設(shè)置一個比系統(tǒng)可用的Z大分辨率還小的時間間隔,則行為不可預(yù)知。同時,一個多媒體定時器線程來運行單個程序中注冊的所有異步定時器回調(diào)函數(shù),要使用多個線程,必須使用線程池。
CVI提供了線程池和異步定時器機制實現(xiàn)多線程的方法。靜脈顯示儀線程池適用于不連續(xù)地執(zhí)行多次或在循環(huán)中執(zhí)行的任務(wù),而異步定時器適用于在固定時間間隔內(nèi)執(zhí)行的任務(wù)。另外,測控系統(tǒng)本身對采集頻率的要求較高,需要高精度的定時器。
上位機軟件的控制流程包括了3個副線程。其中,主線程的優(yōu)先級Z高,其次考慮到要實時接受總控機的指令和下位機接收到并傳送給上位機的報警信號,通訊模塊優(yōu)先級僅次于主線程。顯示并繪圖線程優(yōu)先級Z低,在CPU空閑時才給與執(zhí)行,既能滿足系統(tǒng)的要求,也更好的保證了測控系統(tǒng)的實時性要求。