NI製品ディスカッション

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

異なるWhileループ間での数値のやりとり

私は今大学の研究室でLabViewを学んでいるものです。質問があります。

初心者なので説明に不慣れなのはご了承ください

 

今1つのWhileループの間で表示されている数値をもう一方のWhileループの表示器にローカル変数を使って表示させようと思っています。

その2つのWhileループですがそれぞれループを繰り返すタイミングをタイマによって定めています。それぞれのタイマ値は異なっています。

その異なるタイミングを持つループで数値を読み込もうとすると表示させたい表示器には現在のループの値ではなく過去のループの値が表示されてしまいます。

現在のループの値を一方のwhileループの表示器に表示させるためにはどのようなプログラミングを組めばいいのでしょう?現在作っているVIを載せておきます。教えてくださいよろしくお願いします。

0 件の賞賛
メッセージ1/4
4,574件の閲覧回数

ご懸念の問題については、「どのタイミングでローカル変数が値を読み取るか」が重要になるかと思います。

ローカル変数は値を保持するバッファ機能を持っていないため、読み取りに行ったときの値のみを表示します。

 

今回は、2回目の値のみを読み取っているためこのような状態になっていると思います。

いわゆる「競合状態」というものです。

下記を参考にしてください。

ローカル変数とグローバル変数を慎重に使用する - LabVIEW 2014ヘルプ - National Instruments

 

どうしてもすべての値を表示させたければ、ループの実行タイミングを調整する、

キューを使うなどが考えられます。

Certified LabVIEW Developer
There are only two ways to tell somebody thanks: Kudos and Marked Solutions

GCentral
0 件の賞賛
メッセージ2/4
4,563件の閲覧回数

返答ありがとうございました。丁寧なアドバイスでとても参考になりましたありがとうございます。


Tepig さんは書きました:

ご懸念の問題については、「どのタイミングでローカル変数が値を読み取るか」が重要になるかと思います。

ローカル変数は値を保持するバッファ機能を持っていないため、読み取りに行ったときの値のみを表示します。

 

今回は、2回目の値のみを読み取っているためこのような状態になっていると思います。

いわゆる「競合状態」というものです。

下記を参考にしてください。

ローカル変数とグローバル変数を慎重に使用する - LabVIEW 2014ヘルプ - National Instruments

 

どうしてもすべての値を表示させたければ、ループの実行タイミングを調整する、

キューを使うなどが考えられます。




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

これからもLabVIEWをご使用になられるご予定でしたら、LabVIEWの参考書を読まれるか、

NIさんが開催されているセミナーに参加されると良いかもしれません

Certified LabVIEW Developer
There are only two ways to tell somebody thanks: Kudos and Marked Solutions

GCentral
0 件の賞賛
メッセージ4/4
4,486件の閲覧回数