NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

複数ループのコントロール

解決済み
解決策を見る

こんにちは。

 

複数のループをケースストラクチャを用いて任意のタイミングでコントロールしたいと考えています。

 

1、【ケースストラクチャFalse】False内の①ループ(フラットシーケンスストラクチャ)を60秒実行。

 

2、①ループ実行の後、スタートボタンを押されるまで待機。

 

3、スタートボタンで開始。【ケースストラクチャTrue】True内の②ループを実行

 

できますでしょうか。。。

 

もしくは、他の手法はありますでしょうか、よろしくお願い致します。

 

0 件の賞賛
メッセージ1/3
4,659件の閲覧回数
解決策
トピック作成者KSSiS3939が受理

>> 1、【ケースストラクチャFalse】False内の①ループ(フラットシーケンスストラクチャ)を60秒​実行。

>> 2、①ループ実行の後、スタートボタンを押されるまで待機。

>> 3、スタートボタンで開始。【ケースストラクチャTrue】True内の②ループを実行

 

スタートボタンは、viの「白い⇒」のことではなくて、フロントパネルに配置された制御器のボタンですよね。

 

上記1、2、3の通りに書けば、そのように実行できます。

 

ただ、気になるのは、1と3でわざわざcaseストラクチャのFalseとTrueにする意味は何でしょうか。

 

1と3でcaseストラクチャで分けるということは、3の実行時にはダイアグラム的には1に戻るような

(そしてcaseに入るbooleanをFalseからTrueに切り替えるような)書き方になりますが、

1と3でやることが違うわけですから、そもそもcaseストラクチャのFalseとTrueに分けるのでなく、

上記の「1の①」、「2」、「3の②」を、フラットシーケンスストラクチャに入れれば良いように思います。

 

大きいフラットシーケンスストラクチャで、

1番目に、①ループ(小さいフラットシーケンスストラクチャ)を60秒実行、

2番目に、Whileループを置いて、スタートボタンが押されるまでWhileループ

3番目に、②ループを実行

で良さそうですが、如何でしょうか。

 

(もちろん、お書きになったようにcaseストラクチャを使って1、2、3のような動作になるように書くことも可能ですが)

メッセージ2/3
4,635件の閲覧回数
フラットシーケンスストラクチャーを使用してみようと思います!

ありがとうございます!
0 件の賞賛
メッセージ3/3
4,628件の閲覧回数