LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

サブVIに値を保存するには?

Solved!
Go to solution

複数の入力端子があるサブVIがあり,呼び出しごとに使う端子が異なります.
入力を接続した端子のみ値を変更し,ほかの値は変更したくないのですが,
接続しないとデフォルト値になってしまいます.

もちろん,変更したくない値を接続しておけばいいのですが,
接続しなくてもいいようなものぐさな方法はありますでしょうか?

0 Kudos
Message 1 of 5
(3,613 Views)

QDO様

 

サブVI内にデータを保存されたいとのことですが、

一度きりしか動作しないWhileループにシフトレジスタをつけてデータの値を保持するのは如何でしょうか。

 

機能的グローバル変数に近い動作ですが、

メモリ上にデータを保持しますので、お求めになられている動作に近いかと思います。

 

初期化されていないシフトレジスタを使用するため、

サブVI自体を一度初期化する必要はございます。

また、入力があったかどうかを確認する必要があるため、

条件式を設けなければなりません。

呼び出す回数には依りますが、

一つ一つにワイヤ配線をした方が楽かもしれません。

 

ご確認願います。

 

0 Kudos
Message 2 of 5
(3,566 Views)

Ohara様:

コメントありがとうございます.

機能的グローバル変数も検討したのですが,どうやって値を保存したらよいのかわかりませんでした.

その代わり,ケースストラクチャを使って実現することができました.

右がサブVIで左のVIから呼び出しています.

Falseの数値表示器0の値が保存されています.

 

sub VI cond loop 2.png

 

このようなやり方に問題があるかどうか,

それから機能的グローバル変数を使ったやり方について,教えていただければ幸いです.

0 Kudos
Message 3 of 5
(3,537 Views)
Solution
Accepted by topic author QDO

QDO様

 

ご返信遅くなり、申し訳ございません。

ケースストラクチャを使用した方法で全く問題ないと思います。

 

基本的には行われたい動作が出来るのであれば間違っているプログラムと云うものはないと思っております。

 

先日ご案内差し上げた機能的グローバル変数のようなプログラムですが、

添付しましたviがそちらになります。

 

ご入り用でしたら、ご確認いただければ幸いです。

0 Kudos
Message 4 of 5
(3,489 Views)

Ohara様:

機能的グローバル変数的なやり方を教えていただき,ありがとうございます.

これはいいですね.いちいちケースを選択しなくてもいいですので.

今後使わせていただきます.

 

0 Kudos
Message 5 of 5
(3,478 Views)