LabVIEW設(shè)計模型——事件狀態(tài)機
上一篇文章說了說標(biāo)準(zhǔn)狀態(tài)機,這種模型在自動測試系統(tǒng)(ATS)和自動控制系統(tǒng)(ACS)的編程應(yīng)用中應(yīng)用非常方便。因為在ATS和ACS系統(tǒng)運行的過程中幾乎不需要與用戶互動,只要按照事先設(shè)定好的邏輯來判斷程序的走向,直到程序結(jié)束。但是,在大部分桌面應(yīng)用和部分工業(yè)應(yīng)用中,程序都需要和用戶互動。比如說,需要用戶輸入?yún)?shù)、下達命令甚至判斷程序走向。 如果程序的用戶互動環(huán)節(jié)比較多,用標(biāo)準(zhǔn)狀態(tài)機來實現(xiàn)就回比較困難,即使實現(xiàn)了也會使程序代碼臃腫、結(jié)構(gòu)混亂。 那么如何來方便的實現(xiàn)狀態(tài)機與用戶互動的完美結(jié)合呢?那就要用到狀態(tài)機的一個變種——事件狀態(tài)機。 與標(biāo)準(zhǔn)狀態(tài)機相比,事件狀態(tài)機要稍微復(fù)雜一些。他們都包含一個While循環(huán),所不同的是移位寄存器和條件結(jié)構(gòu)換成了用戶定義事件和事件結(jié)構(gòu)。 下面這個黑白棋的小程序就使用了這種事件狀態(tài)機的設(shè)計模型。程序界面:主VI:注冊狀態(tài)事件子VI: