2012-02-24 90 views
1

我有一個連續運行2個不同測試的堆棧序列。讓我們稱他們爲test1和test2。所以它是一個while循環中的2階段堆棧序列。我有一個按鈕「Start Test1」,它跳轉到while循環並執行test1,test2,test1,test2等。 我想添加另一個按鈕,指出「Start Test2」,它將首先啓動test2,然後再啓動test1 。所以它基本上會改變我的堆棧序列的順序來開始執行test2代碼而不是test1代碼(test2,test1,test2,test1等)。使用Labview的狀態機

有沒有簡單的方法來做到這一點?謝謝你的幫助!

回答

4

自從我使用LabVIEW以來,我已經有一段時間了,但是這裏呢......我會嘗試用一個案例結構來替換堆疊序列。案例結構應該有一個Test1案例和一個Test2案例;它仍然會放在你的while循環中。

當您想先運行Test1(或者先運行Test2)時,Case Structure的輸入應該是1。 Test1運行後,它會通過在while循環中使用移位寄存器將該值反饋給其輸入,從而輸出2(示爲here)。同樣,Test2的情況下,它會輸出一個1,並通過移位寄存器反饋回來。


每亞伊爾的評論,在這裏我的建議是被稱爲State Machine,當被拉出,看起來像你的程序的流程圖一個常用的設計模式。 NI的教程寫成here,實際上它涉及一個嵌套在while循環中的case結構。希望能幫助到你!

+5

這個答案描述的相關術語是「狀態機」。在LabVIEW本身和在線中都有很多這樣的例子,我建議你看看一些例子來感受它。 – Yair 2012-02-26 09:01:47

+0

謝謝@Yair!你促使我編輯和改進我的答案。 (通常我會說「*你可以通過使用Y和Z *來解決X」,但不會認爲我提供的是一種常見模式,應該參考它。) – gary 2012-02-26 15:02:42

+0

對於遲到回覆感到抱歉。但是我已經完成了它的工作,它工作得很好。就像你們說的那樣,這是一個簡單的2態狀態機。謝謝:) – serge2487 2012-03-01 16:52:28