NI製品ディスカッション

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

フロントパネル上制御器の状態保存


Labviewフロントパネル上に設置した制御器や表示器の
状態(数値やTrue or False)をファイルとして入出力することは可能でしょうか?
viを再実行するたびにデフォルト値に戻されてしまうため、状態の保存が出来ると助かります。
0 件の賞賛
メッセージ1/12
8,977件の閲覧回数
メニューから「編集」→「現在のすべての値をデフォルト設定にする」
で値を保存できると思います。

0 件の賞賛
メッセージ2/12
8,966件の閲覧回数

御回答ありがとうございます。
デフォルト値を設定するのではなく
フロントパネルの状態(値)をファイルとして保存したいのですが
可能でしょうか?
LabViewのバージョンは6.0です。

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

横槍で恐縮です。

例えばこんなのはどうでしょうか?(汎用的です)

このviは、走らせるとまずファイル名を聞いてきますが、とりあえずキャンセルで無視してContinueして下さい。そのあと、制御器の数値や文字列をいじって値を入力し、停止ボタンを押すと、再度ファイル名を聞かれますので、ここで適当なファイル名を入れてください(ファイルが1つ作られます)。

次に、viを閉じ、再度viをロードします。ロード直後は通常のデフォルト値ですが、もう1度走らせた時に最初に聞かれるファイル名で、先ほど保存したファイル名を入れてください。すると前回終了時の値が再現されていると思います。

具体的には「Get All Control Values」で制御器と表示器の情報を一手に受け取り、文字列に平坦化してファイルに書き出してしまいます。次に読むときは、このファイルを読んで所定の形式に直してから、各々の名前の制御器と表示器に値をセットしています。この方法であれば、画面上にどんな制御器がいくつ存在しても対応できるかと思います。

この例ではいちいちファイルダイアログが開きますが、決まったファイルから読むようにも出来ると思いますし、読み込むかどうか選択して読み込んだり、実行中に読み込んだり、といったことも出来るかと思います。

なお、LabVIEW6.0.2で組んでいます。

 

0 件の賞賛
メッセージ4/12
8,957件の閲覧回数
バージョン6.0を持っていないので同じかどうかわかりませんが
バージョン8.0ではファイルIOで値が保存できます。

バージョン6.0をお持ちの方、フォローいただけると幸甚です。
0 件の賞賛
メッセージ5/12
8,955件の閲覧回数
白石様

ずいぶん便利な機能があるのですね。勉強になりました。

感謝、感謝です。  ( ^)o(^ ) 

tpkk
0 件の賞賛
メッセージ6/12
8,950件の閲覧回数

ありがとうございました。
参考にさせていただきます。

脱線になってしまうのですが、ファイルダイアログが表示されたときに
"キャンセル"を選択すると、新たにメッセージが表示されますが("Continue"or"Stop"ボタンのあるウィンドウ)
このメッセージを表示させずに、通常WINDOWSのダイアログ操作のようにキャンセルボタンのみで操作を続行することは可能でしょうか?
0 件の賞賛
メッセージ7/12
8,945件の閲覧回数
キャンセル時のContinue/Stopのダイアログですが、「Write Characters to File.vi」の中身を開いてみると分かるように、すでにここにそういうダイアログが開くように書いてあるので、このviを使う限りはキャンセルするとこうなってしまいます。こうならないようにするには、一番手っ取り早いのはこのviからこの部分を消してしまうことですが、標準関数なのでこの関数をいじらずにすますなら、この関数に食わせる前にダイアログが出ない条件にするのが良さそうです。
 
エレガントな書き方はいろいろあるのかも知れませんが、私がよくやるのは添付のようなやつです(実行するのではなくダイアログのご参考に)。
ファイル選択のダイアログには「File Dialog.vi」の関数を使い、それの「キャンセルされた」「存在する」の出力を使って場合分けします。(1)読み込むファイル選択ダイアログで、キャンセルされた場合とファイルが存在しない場合は空の文字列で返します。(2)書き込むファイル選択ダイアログで、キャンセルされた場合は何もせず、またファイルが既に存在した場合は一度消すことで「ファイル置換」のダイアログを抑制します(抑制せずダイアログを出したければそのまま配線すれば良い)。(3)ファイル選択ダイアログを開かず、指定したファイルに書き込みたい場合で同じファイルに書き込む時の「ファイル置換」のダイアログを抑制する場合です(無ければ作り、あれば上書き)。
 
他にも、下位レベル関数の組合せでエラークラスタから取り出す(キャンセルはエラー43、ファイル無しはエラー7)などの方法もあるかと思います。
 
0 件の賞賛
メッセージ8/12
8,935件の閲覧回数

度々ありがとうございました。

参考にさせていただきます。
0 件の賞賛
メッセージ9/12
8,912件の閲覧回数

お世話になります。

以前、フロントパネル上制御器の状態保存の件で質問したのですが
前回質問した際には、フロントパネル上の全ての制御器、表示器を保存するVIを紹介していただいたと思いますが
個別に制御器、表示器を保存するにはどのような記述をすればよいのでしょうか?
以上、宜しくお願いします。

0 件の賞賛
メッセージ10/12
8,705件の閲覧回数