labview的深入探索-----狀態(tài)機(jī)的基本類型之標(biāo)準(zhǔn)狀態(tài)機(jī)
標(biāo)準(zhǔn)狀態(tài)機(jī)是使最為廣泛的狀態(tài)機(jī),也稱為古典狀態(tài)機(jī)或者經(jīng)典狀態(tài)機(jī)。LV的標(biāo)準(zhǔn)狀態(tài)機(jī)VI模板用的就是這種。

我把標(biāo)準(zhǔn)型狀態(tài)機(jī)理解成條件跳轉(zhuǎn)型狀態(tài)機(jī),也就是在一個(gè)狀態(tài)中,根據(jù)不同的條件,跳轉(zhuǎn)到另一個(gè)狀態(tài)。標(biāo)準(zhǔn)型狀態(tài)機(jī)非常適合用圖形方式來(lái)描述,PLC的SFC流程圖就是我們說(shuō)的標(biāo)準(zhǔn)狀態(tài)機(jī)。
NI提供了一個(gè)狀態(tài)機(jī)的組件,它就是典型的標(biāo)準(zhǔn)狀態(tài)機(jī)??纯此挠梅?。
NI 狀態(tài)圖組件,提供一個(gè)狀態(tài)圖編輯器,在編輯器中,可以設(shè)計(jì)各種狀態(tài)和狀態(tài)之間的轉(zhuǎn)換條件,如圖

上面是我模擬了提款機(jī)做的示意程序,根據(jù)我們繪制的狀態(tài)圖,LV可以自動(dòng)生成狀態(tài)機(jī),可以選擇兩種方式.做為連續(xù)運(yùn)行的VI和單次運(yùn)行的子VI

上面的圖是連續(xù)運(yùn)行模式.

這是單步運(yùn)行方式,可以做為一個(gè)子VI,由上一級(jí)VI調(diào)用
NI的狀態(tài)圖組件顯得比較煩瑣,比較適合狀態(tài)很多,條件跳轉(zhuǎn)比較復(fù)雜的情況.
常用的標(biāo)準(zhǔn)狀態(tài)機(jī),自己編寫(xiě)用的比較多.下面已常用方式演示一下這種類型的狀態(tài)機(jī)

標(biāo)準(zhǔn)類型狀態(tài)機(jī)使用非常廣泛,它的狀態(tài)和轉(zhuǎn)換條件都是可以預(yù)期的,而不隨機(jī)的,對(duì)于類似于WINDOWS消息驅(qū)動(dòng)的情況,由于狀態(tài)是不可預(yù)期的,比如我們預(yù)料和控制用戶對(duì)人機(jī)交互界面操作的
先后次序,這種情況下,使用隊(duì)列狀態(tài)機(jī)是最為合適的,后續(xù)文章將專門介紹隊(duì)列狀態(tài)機(jī)
評(píng)論