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