微處理溫度控制模擬VI輸入階段的處理過(guò)程
輸入階段的處理過(guò)程完成以下功能:獲得輸入階段的當(dāng)前溫度;檢查定時(shí)循環(huán)結(jié)構(gòu)前一循環(huán)過(guò)程的輸出階段是否延遲完成功能;為本次循環(huán)過(guò)程即將執(zhí)行的計(jì)算階段設(shè)定截止時(shí)間和起始時(shí)間參數(shù);把本階段的起始時(shí)間和前一循環(huán)過(guò)程中的終止時(shí)間保存在矩陣中以備繪制定時(shí)圖。由于本階段是定時(shí)循環(huán)結(jié)構(gòu)每個(gè)循環(huán)的第一個(gè)階段,因此,需檢查前一循環(huán)過(guò)程中的循環(huán)結(jié)束是否延遲完成。同時(shí),完成輸入階段前面板處理過(guò)程定時(shí)界面及處理過(guò)程狀態(tài)界面相應(yīng)的數(shù)據(jù)更新功能。程序框圖如圖1所示。
圖1 輸入階段處理程序框圖 1.獲得輸入節(jié)點(diǎn)的當(dāng)前溫度(a) 此處通過(guò)pac_lo.vi子控件產(chǎn)生。該控件的輸入選項(xiàng)選擇獲取溫度數(shù)據(jù)“aquire temp.”,執(zhí)行時(shí)間則通過(guò)前面板輸入階段數(shù)據(jù)簇中的執(zhí)行時(shí)間“execution time(ms)”來(lái)輸入。這樣pac lo.vi子控件通過(guò)內(nèi)部邏輯處理過(guò)程,模擬產(chǎn)生此時(shí)微處理器的溫度數(shù)據(jù)。該溫度數(shù)據(jù)在過(guò)程處理狀態(tài)選項(xiàng)卡的當(dāng)前溫度“current temp”數(shù)值顯示控件中進(jìn)行數(shù)據(jù)顯示。 2.設(shè)定輸入階段幀的輸出節(jié)點(diǎn)(b) 此時(shí)通過(guò)前面板計(jì)算階段“computation stage”數(shù)據(jù)簇上設(shè)定的數(shù)據(jù)來(lái)設(shè)定該幀的輸出節(jié)點(diǎn)。需要設(shè)定的數(shù)據(jù)包括截止時(shí)間“deadline(ms)”和開始時(shí)間“start time(ms)”。| 3.襝查是否延遲完成(c) 在輸入節(jié)點(diǎn)中設(shè)置定時(shí)循環(huán)結(jié)構(gòu)前一循環(huán)的最后一幀(即輸出階段幀)是否延遲完成。此處產(chǎn)生一數(shù)據(jù)簇,其輸入為前一循環(huán)的輸出階段簇?cái)?shù)據(jù),輸出則為判斷循環(huán)之后的需要設(shè)定的輸出階段簇顯示數(shù)據(jù)。此幀輸入節(jié)點(diǎn)中的“延遲完成?[⒈l]”可以按照?qǐng)D2的方式來(lái)設(shè)定。通過(guò)“輸出選擇”,可以對(duì)循環(huán)定時(shí)結(jié)構(gòu)中的循環(huán)定時(shí)、幀及其他屬性進(jìn)行設(shè)定,設(shè)定的選擇過(guò)程可按同樣的方式進(jìn)行。在判斷是否延遲完成時(shí),創(chuàng)建了“按名稱捆綁”函數(shù),通過(guò)更換輸入簇中的若干元素,可以得到新的輸出簇。該函數(shù)的輸入輸出接線端如圖3所示。
圖2 設(shè)定不同的輸出端屬性 圖3 按名稱捆綁函數(shù)的輸入輸出 4.創(chuàng)建循環(huán)定時(shí)波形圖輸入數(shù)組(d) 循環(huán)定時(shí)波形圖的輸入數(shù)據(jù)通過(guò)幀之間的移位寄存器進(jìn)行傳遞。此處,在輸入階段幀的輸入端屬性中,根據(jù)上一幀(即上一循環(huán)中的輸出階段幀)的“實(shí)際結(jié)束[f-1]”數(shù)據(jù),來(lái)更新循環(huán)定時(shí)波形圖輸入數(shù)組所對(duì)應(yīng)的數(shù)據(jù)位置(x數(shù)組中位于11和12號(hào)位置),用于定時(shí)波形圖的顯示。而本次循環(huán)中,本幀(輸入階段幀)的“實(shí)際開始田”數(shù)據(jù)同樣也用于更新或替換進(jìn)行波形顯示后x數(shù)組中對(duì)應(yīng)的位置(此時(shí),位于x數(shù)組中的1和2號(hào)位置)。在數(shù)組更新或替換過(guò)程中,用到的ⅵ函數(shù)控件為“替換數(shù)據(jù)子集”?! ?.顯示循環(huán)定時(shí)結(jié)構(gòu)的上一循環(huán)是否延遲完成(e) 此處進(jìn)行判斷的數(shù)據(jù)由來(lái)自于輸入階段幀輸入端中的上一次循環(huán)定時(shí)是否“延遲完成?[i-1]”邏輯數(shù)據(jù)來(lái)進(jìn)行顯示。輸入端中的“延遲完成?[i-1]”節(jié)點(diǎn)的添加過(guò)程和圖2的添加過(guò)程相同?! ?.處理過(guò)程定時(shí)波形圖的繪制(f) 處理過(guò)程定時(shí)波形圖通過(guò)一個(gè)分支選擇結(jié)構(gòu)(case-switch)來(lái)選擇執(zhí)行,此處的選擇條件為“是否為首次”調(diào)用判斷,此控件通過(guò)圖4所示的選擇順序到達(dá)。條件為否時(shí),在該分子選擇結(jié)構(gòu)中實(shí)現(xiàn)波形圖的顯示更新。此處的顯示更新主要通過(guò)對(duì)處理過(guò)程顯示波形圖的數(shù)組進(jìn)行創(chuàng)建來(lái)實(shí)現(xiàn)。3個(gè)輸入階段曲線分別通過(guò)各自的矩陣與相應(yīng)的x數(shù)組進(jìn)行捆綁。由這3個(gè)捆綁數(shù)組創(chuàng)建新數(shù)組,該新數(shù)組直接輸入波形圖顯示控件進(jìn)行波形顯示即可。
圖4是否為首次調(diào)用函數(shù)的選擇順序 7.處理過(guò)程定時(shí)波形圖輸入階段截止時(shí)閭游標(biāo)的位置更新(f) 此處創(chuàng)建處理過(guò)程定時(shí)波形圖的屬性應(yīng)用,此屬性節(jié)點(diǎn)的創(chuàng)建過(guò)程在第14章和第15章中己經(jīng)作過(guò)詳細(xì)介紹。此處的屬性包括兩個(gè):活動(dòng)游標(biāo)(actcrsr)和活動(dòng)游標(biāo)的x位置(cursor.posx)。活動(dòng)游標(biāo)的序號(hào)為0,活動(dòng)游標(biāo)x位置的判斷邏輯通過(guò)輸入階段幀的輸入端中的執(zhí)行時(shí)間“期限”和實(shí)際開始時(shí)間“實(shí)際開始[g”相加來(lái)產(chǎn)生。 8,溫度曲線的繪制(f) 首先,使用本次循環(huán)的實(shí)際開始時(shí)間“實(shí)際開始[i]”進(jìn)行坐標(biāo)變換后,和移位寄存器所包含的溫度曲線的x數(shù)據(jù)組合得到新的x數(shù)據(jù)。而y數(shù)據(jù)則利用pac lo.vi控件所產(chǎn)生的溫度數(shù)據(jù)以及移位寄存器中的y數(shù)據(jù)共同構(gòu)成新的y數(shù)組。更新后的x和y數(shù)據(jù)捆綁后輸入到溫度曲線波形圖顯示控件,對(duì)溫度變化曲線進(jìn)行顯示。同時(shí),更新后的x和y數(shù)據(jù)通過(guò)移位寄存器傳送到下一幀