2012-02-24 18 views
1

2つの異なるテストを連続して実行するスタックされたシーケンスがあります。 test1とtest2を呼び出します。つまり、whileループ内の2段積み重ねシーケンスです。 "Start Test1"というボタンがあり、whileループにジャンプしてtest1、test2、test1、test2などを実行します。 test2を最初に起動し、次にtest1を起動する「Start Test2」と言う別のボタンを追加します。 。だから、基本的には、私の積み重ねられたシーケンスの順序を変更してtest1コード(test2、test1、test2、test1など)の代わりにtest2コードを実行してください。状態マシンLabviewを使用

これを行う簡単な方法はありますか?助けてくれてありがとう!

答えて

4

私はLabVIEWを使用して以来、しばらくしていますが、ここでは...スタック構造をケース構造に置き換えることを試みます。ケースストラクチャにはTest1ケースとTest2ケースが必要です。それはまだあなたのwhileループの中に置かれます。

最初にTest1(またはTest2を最初に実行する2)を実行する場合、Case Structureの入力は1になります。 Test1が実行された後、whileループのシフトレジスタ(here)を使用して、この値を入力に戻して2を出力します。同様に、Test2の場合、完了したら1を出力し、これをシフトレジスタを介してフィードバックします。


パーYairさんのコメントは、ここに私の提案を引き出したときに、あなたのプログラムのフローチャートのようになります、State Machine、として知られている一般的なデザインパターンです。 NIのチュートリアルは、hereと書かれています。実際には、whileループ内にネストされたケースストラクチャが含まれています。それが役に立てば幸い!

+5

この回答の意味は「ステートマシン」です。これは、LabVIEW自体とオンラインの両方で多くの例があります。私は、あなたがそれを感じるためにいくつかを見てみることをお勧めします。 – Yair

+0

ありがとう@Yair!私の答えを編集して改善するよう促しました。 (たぶん私は "あなたはYとZ *を使ってXを解くことができますが、私が提供しているものは共通のパターンであるとは考えません。"と言います) – gary

+0

返事が遅れました。しかし、私はそれで作業を終了し、それは正常に動作します。皆さんのように、それはシンプルな2ステートのステートマシンです。ありがとう:) – serge2487

関連する問題