新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > labview的深入探索-----狀態機的基本概念

        labview的深入探索-----狀態機的基本概念

        作者: 時間:2017-01-09 來源:網絡 收藏
        狀態機不是LABVIEW獨有的概念,早在LABVIEW誕生之前,就有了狀態機(STATE MACHINE)的概念,只所以在LABVIEW編程中經常強調狀態機是因為LABVIEW特有的圖形編程方式特別適合于采用狀態機模式編程,在PLC中有流程圖的編程方式,從本質上說,那是一種特殊的狀態機。

        STATE MACHINE包括三個基本要件,STATE、EVENT 、ACTION,狀態、事件和動作

        狀態:是一個抽象的概念在一定條件下或者一定時間內保持不變,等待一個或幾個事件的發生,命名狀態時,往往可以用等待--來定義。

        事件:是一個瞬時的概念,表示某件事情發生了,一旦有關的事件發生了,勢必要采取某種動作。

        動作:表示一旦事件發生,采取何種處理方式,處理的結果就是另一個穩定的狀態。

        狀態(等待事件)---》事件發生----》采取動作----》另一個狀態。

        狀態機的概念是非常簡單的,越是簡單的東西越不容易處理,原因是簡單則限制少,則靈活,狀態機設計的好壞完全取決于編程者的水平,這不僅僅指LABVIEW編程的水平,更重要的是編程者的邏輯思維,一個好的狀態機的設計,關鍵是如何定義狀態,狀態少了,則意味著每一個狀態中要處理的事務多了,狀態多了,則整個狀態機就變的復雜了。

        以一個簡單的紅綠燈控制來說,簡單地說有兩個狀態,紅色狀態和綠色狀態,事件是綠燈時間到和紅燈時間到,綠色時間到觸發的動作是,綠色燈滅,紅色燈量,紅色時間到觸發的動作是紅色滅,綠燈量。

        我過去的文章中多次提到ACTION ENGINE的概念,它與狀態機的區別是,它僅僅定義了ACTION,而沒有定義STATE和EVENT,因此,它的ACTION完全取決于編程者,而狀態機自己本身就可以根據內部或者外部條件的變化,自動采取相應的動作,轉入其它的狀態,實現控制自動化。

        有多種形式的STATE MACHINE,我將在后續的文章中陸續介紹,先看一下紅綠燈的實現過程,假如綠燈亮20秒,紅燈亮10秒。

        先定義三個基本狀態:初始化(僅在第一次調用時發生),等待綠燈結束和等待紅燈結束。
        LABVIEW的嚴格枚舉數據類型是LABVIEW狀態機定義狀態的最好工具,使用狀態機時,必須要使用這種數據類型,好處是增加或者減少狀態,程序可以自動更新。





        評論


        技術專區

        關閉
        主站蜘蛛池模板: 巴彦县| 喀什市| 西昌市| 随州市| 林口县| 漳浦县| 建德市| 安丘市| 慈溪市| 巴塘县| 稻城县| 抚顺市| 瓮安县| 长海县| 利津县| 阿尔山市| 永仁县| 乐清市| 江安县| 行唐县| 建宁县| 尉氏县| 江北区| 黑河市| 奈曼旗| 衡东县| 常宁市| 桐柏县| 安义县| 商城县| 凤阳县| 浙江省| 灵丘县| 汉中市| 玉溪市| 资溪县| 晋中市| 和平县| 正定县| 襄城县| 英超|