LabVIEW設(shè)計模型——狀態(tài)機(jī)之狀態(tài)轉(zhuǎn)換圖
狀態(tài)機(jī)是由一系列的狀態(tài)構(gòu)成的,其中包括一個“初始化”狀態(tài),和一個“停止”狀態(tài)。程序油“初始化”狀態(tài)開始,由“停止”狀態(tài)結(jié)束。一般來說,在“初始化”狀態(tài)中進(jìn)行控件與變量的初始化、打開文件以及創(chuàng)建引用等操作,而在“停止”狀態(tài)中進(jìn)行清除臨時數(shù)據(jù)、關(guān)閉文件和結(jié)束引用等操作。在狀態(tài)機(jī)中,每一個狀態(tài)都可能導(dǎo)致一個或多個狀態(tài)的發(fā)生,其下一狀態(tài)是由用戶的輸入信息和當(dāng)前狀態(tài)所決定的。
在決定使用狀態(tài)機(jī)作為我們的設(shè)計模型后,我們首先要畫出一個狀態(tài)轉(zhuǎn)換圖。在圖中要列出系統(tǒng)中的所有狀態(tài),以及各個狀態(tài)之間的轉(zhuǎn)換關(guān)系。而且要標(biāo)明轉(zhuǎn)換所需要的條件。
舉個例子,要編程實現(xiàn)以下功能:隨機(jī)生成100個[0,100]內(nèi)的自然數(shù),并判斷生成的自然數(shù)是否在[30,60]的區(qū)間內(nèi)。如果不在該區(qū)間內(nèi)給出報警信息,如果在區(qū)間內(nèi)則將該數(shù)累加。
實際上如果我們把生成的隨機(jī)數(shù)看作系統(tǒng)采集到的數(shù)據(jù)的話,這到題就是模擬了一個采集數(shù)據(jù)并且在數(shù)據(jù)不符合要求時報警,并將復(fù)合要求的數(shù)據(jù)進(jìn)行進(jìn)一步分析的系統(tǒng)。
要完成這道題目,需要要先畫出它的狀態(tài)轉(zhuǎn)換圖:
有了這個狀態(tài)轉(zhuǎn)換圖,我們就可以清晰的看到程序要實現(xiàn)的所有狀態(tài)以及狀態(tài)之間的關(guān)系。
評論