10-08-2019 12:34 AM
NXGのサブvi(gvi)を呼び出したときにフロントパネルを表示するようにするにはどうすればいいのでしょうか?
以前のLabVIEWのファイル:プロパティで”呼ばれたらパネルを表示”のようなものが見当たりません。
解決済! 解決策の投稿を見る。
10-08-2019 03:02 PM
平素よりNI製品をご愛顧頂きありがとうございます。
日本ナショナルインスツルメンツ技術部の上野です。
NXGには、サブパネルを開く機能はありませんので、LabVIEWでサブVIのフロントパネルを開く動作のように作成はできません。
10-08-2019 03:30 PM
@Y.Ueno(退職) さんは書きました:
平素よりNI製品をご愛顧頂きありがとうございます。
日本ナショナルインスツルメンツ技術部の上野です。
NXGには、サブパネルを開く機能はありませんので、LabVIEWでサブVIのフロントパネルを開く動作のように作成はできません。
了解しました。
御回答、ありがとうございます。
再度、類似する質問をするかもしれません。
その際は、お手数ですが宜しくお願い致します。
10-08-2019 11:17 PM
サブVIのフロントパネルの表示ですが、
①サブを独立したEXEにして「システム実行」にすればそれらしくはなりましたが、EXEの起動時間が個々に12秒(PC環境によって変わるとは思いますが)ほどかかり使い勝手に問題があります。
同一環境で起動時間を短縮する方法はありますでしょうか?
②別の方法として、
「VIを実行」のリファレンス入力端子にスタティックVIリファレンス(プロパティでサブVIを設定)をつないで実行させたとき、該当するサブVIが開かれている(タブに存在)場合に限りサブのフロントパネルが開きます。これは問題ないです。
ところが、アプリケーションビルド(サブVIは常に含めるにチェック)で作成したEXEを起動するとサブのフロントパネルが開きません。ただし、サブのプログラムは動作はしているようです。
このとき特にエラーも出ません。
対策として、「VIを実行」のリファレンス入力端子に「VIリファレンスを開く」にサブVIのフルパスを文字列化したものをつないで得られたものに変えてビルド(このときエラーはなし)して、実行し、サブを起動させると「VIリファレンスを開く」でエラーがでます。
LabVIEW:(Hex 0x3EC)VIはメモリ内にありませんとなります。
そもそもこのやり方でサブVIのフロントパネルを表示させること自体間違っているのでしょうか?
それとも「VIリファレンスを開く」の使い方が間違っているのでしょうか?
10-09-2019 01:53 AM
1. システム実行関数での起動速度を変える方法はありません。EXEよりは、VI相互運用性関数で従来のLabVIEWを起動して.viファイルを起動するほうが速いと思います。
2. 別の方法でよいのでしたら、ウィンドウを開く関数を使うというのはどうでしょうか?
下記のようにサブVIとなる.gviファイルをスタティックVIリファレンスで指定して、プロパティノードを2つ使ってウィンドウリファレンスを出力して、ウィンドウを開く関数に渡す方法です。
10-09-2019 04:05 AM
2の方法で上手く動きました。
ありがとうございました。