可變動的case structure執行的順

我有a b c d 4個sub vi可呢會執行,要看讀自己做的設定檔而定,

設定檔有可呢如下

a

b

d

所以執行次序如下 a  > b > d

也可呢如下

d

a

c

b

所以執行次序如下 d  > a > c > b

請問要如何用structure因為是一個可變動的structure

 

你的程式架構我沒有去想過

不過就LabVIEW的Case structure用法

應該是沒有辦法在程式中去變動

 

用 Sequences Structure 依序安排 d-->a-->b-->c 四個流程,

並在 d Sequence 中嵌入 Cases Structure 作為是否執行此 Sequence 的判斷。

不知道這要的作法是否符合 Buu 大大的需求呢?

我認為,可以先將「a、b、d」或是「a、c、d、b」放進array,然後使用case select,選擇要執行的vi。這樣就可以解決你的問題了。至於要執行幾次,3次or4次,你可以在外面放一個for loop。就可以了。

![](upload://uYrRScKhfuU8QBKsKEv0EEJVZqM.jpeg)

[QUOTE=yao]你的程式架構我沒有去想過

不過就LabVIEW的Case structure用法

應該是沒有辦法在程式中去變動[/QUOTE]

就我所知,的確無法在程式進行中更改Case structure。

不過Buu要的功能仍可以用其他的方式達成。

針對 Buu 本人有以下假設:

第一他的程序需不斷輪詢,

否則只要初始設定便可解決,

而無須判斷功能。

第二假設

Case_1:執行『a --> b --> d --> a --> b --> 循環...』

Case_2:執行『d --> a --> c--> b --> d --> a --> c --> b --> 循環...』

在輪詢的條件下 Case_1 與 Case_2 的差別只在於 'a' 後面接的是 'b' 或 'c' 而已。

根據以上假設在下完成一個範例供各位參考:

2004-04-07_184530_CaseSelection2.vi

若假設二不成立的話我們亦可完成以下範例:

2004-04-07_184739_CaseSelection.vi

 

也許還有更好的方法可解決,

僅供各位大大參考!

我可能行太多了~~

Case_1:執行『a --> b --> d 循環...』

Case_2:執行『d --> a --> c--> b --> d 循環...』

Case_3:執行『 a --> c 循環...』

Case_4:執行『b --> d循環...』

:

:

Case_n:執行『b --> d循環...』

但是到底有幾個case呢!

我會建一個設定檔如cfg1.txt

a

b

b

做case 1

cfg2.txt

d

a

c

b

d

 

做case 2

cfg3.txt

a

c

做case 3

這樣的方式可以嗎?

 

 

 

[QUOTE=Buu]

我有a b c d 4個sub vi可呢會執行,要看讀自己做的設定檔而定,

設定檔有可呢如下

a

b

d

所以執行次序如下 a  > b > d

也可呢如下

d

a

c

b

所以執行次序如下 d  > a > c > b

請問要如何用structure因為是一個可變動的structure

 

[/QUOTE]

Sequence程序流程有很多方式可以做到,所以您所需要的功能,您可將輸入端(Step)以讀取檔案方式判斷程序的順序.程 序定出來後,按下OK,應該可以達到您所需要的功能.

您可以將SubVI放在指定位置.請試試看吧!

2004-04-10_133317_Sequence_Test.vi

上面的大大是否可以將您的程式改成6.1,謝謝

程式里只使用簡單的For loop迴圈,參考看看吧~

2004-08-19_170740_2004-04-10_133317_Sequence_Test1.vi