新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > labview的深入探索-----狀態機的基本類型順序結構

        labview的深入探索-----狀態機的基本類型順序結構

        作者: 時間:2017-01-09 來源:網絡 收藏
        前文介紹了LV編程的重要概念---狀態機,狀態機是個基本概念或者說理論,其具體表現形式多種過樣,很難具體分類,我根據個人在編程實踐中的體會,歸納幾種常見類型.


        一、順序結構

        LV本身是有順序結構的,而且有兩種方式,STACKED (堆疊)和FLAT FRAME(平鋪)。

        順序結構的狀態機更象是堆疊順序結構,不過二者的區別在于LV本身的順序結構是強制的,無法中間退出的,而狀態機的順序結構是采用的循環掃描的方式.我舉一個例子來說明一下:

        一個加工零件的程序,過程如下:

        等待啟動按鈕--->主軸啟動--->滑臺快進---->滑臺工作進給--->終點延時--->滑臺快速返回原位-------->等待啟動按鈕(下一次循環)

        這里的啟動按鈕可以是界面上的按鈕也可以是操作臺上的按鈕.用普通順序結構應該是(我們用平鋪更容易理解)

        本文引用地址:http://www.104case.com/article/201701/337231.htm

        我們注意到,每個動作(FRAME)內部都是一個循環結構,需要等待一定條件后,如果條件滿足,轉入下一個FRAME,我們沒有任何辦法改變它,比如我們有一個急停按鈕,則需要在每一個FRAME中檢測急停,如果急停生效,退出本FRAME,轉入下一個FRAME,依然要判斷急停,直到所有的FRAME都完成才能退出,
        在這個過程中,外層循環需要所有動作完成后才執行下一循環,對它改造一下,就可以形成順序狀態機結構.

        我曾經提到過,嚴格類型的枚舉是狀態機的核心要素,我們先構造一個嚴格類型的枚舉.枚舉變量有一個特點,當最后的元素執行加一操作時返回第一個元素.



        這個狀態機的功能和上面的順序結構完成的功能是相同的,區別在于每個CASE不存在循環等待了,

        整個循環過程都是在外層循環中實現的,外層循環不斷地更新,如果轉換條件(事件未發生),下一次循環仍然執行前一個CASE(狀態不變),如果轉換條件滿足(事件發生),采取加一的動作(ACTION),轉入下一個狀態.

        這樣做和上面的順序結構比較,好處是顯而易見的,整個過程只有一個循環,而上面的順序結構實際每個FRAME都是一個循環,這樣,如果有急停按鈕,我們可以在CASE外面檢測急停,如果急停,可以馬上停止循環,而在順序結構中,需要在每個FRAME檢測,并逐個退出.

        順序結構的狀態機是非常簡單的,但是實際控制中又是比較常見的,后續我將介紹其他類型的狀態機


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 高安市| 项城市| 昌都县| 沁阳市| 竹山县| 大名县| 上思县| 日喀则市| 远安县| 犍为县| 房产| 河北省| 响水县| 丹阳市| 乐至县| 安岳县| 大港区| 舟曲县| 贵州省| 吉水县| 无锡市| 双江| 宜川县| 临清市| 滦平县| 类乌齐县| 陆丰市| 仪征市| 青铜峡市| 洛隆县| 图们市| 张家川| 永康市| 历史| 金湖县| 永福县| 灵台县| 新闻| 柞水县| 德令哈市| 新巴尔虎左旗|