NI製品ディスカッション

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

複数VIの平行処理

いつもお世話になっております。
 
現在、LabVIEW6.1を使用しております。
 
複数のVIの平行処理の方法について教えてください。
現状のプログラムは、メインのVIがあり、このメインVIである条件を満たすとサブVIをバックグラウンドで起動するようになっています。
(サブVIはWhileループでまわしています。)
サブVIの終了条件をメインVIのほうで制御したいのですが、一度サブVIに入ってしまうとメインVIからは終了条件を制御できなくなってしまいます。
 
どのようにすればうまくいくのでしょうか?
現状のプログラムを簡易化したものを参考に添付します。
 
宜しくお願いいたします。
0 件の賞賛
メッセージ1/3
3,477件の閲覧回数

現行の姿を生かすとすると、添付のようになるでしょうか(少し書き換えたものです)。

一度サブviに入ってしまうと、そこから帰ってくるまでメイン側の処理が進行しないのは元々と同じですが、おそらく、この状態でメイン側の制御器の値を変えたときに、サブvi側でそれに追随した値を取得したい、ということかと思われましたのでこのようにしてみました。

サブviに入る際に、メインの制御器のリファレンスをサブに渡しておくことで、サブvi側で「現在のメインの制御器の値」を得ることができます。この場合、グローバル変数を介する必要もありません。

(サブviが走っている時も、メイン側で別の処理を進行させたい場合は、書き方の構造自体を変える必要があると思われます)

以上、ご参考下さい。

 

0 件の賞賛
メッセージ2/3
3,462件の閲覧回数

白石様

アドバイスありがとうございました。

0 件の賞賛
メッセージ3/3
3,451件の閲覧回数