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

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

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

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

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

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