NI製品ディスカッション

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

LabVIEW NXG サブVIのフロントパネルの表示

解決済み
解決策を見る

NXGのサブvi(gvi)を呼び出したときにフロントパネルを表示するようにするにはどうすればいいのでしょうか?

以前のLabVIEWのファイル:プロパティで”呼ばれたらパネルを表示”のようなものが見当たりません。

0 件の賞賛
メッセージ1/6
2,365件の閲覧回数

平素よりNI製品をご愛顧頂きありがとうございます。
日本ナショナルインスツルメンツ技術部の上野です。

 

NXGには、サブパネルを開く機能はありませんので、LabVIEWでサブVIのフロントパネルを開く動作のように作成はできません。

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

@Y.Ueno(退職) さんは書きました:

平素よりNI製品をご愛顧頂きありがとうございます。
日本ナショナルインスツルメンツ技術部の上野です。

 

NXGには、サブパネルを開く機能はありませんので、LabVIEWでサブVIのフロントパネルを開く動作のように作成はできません。


了解しました。

御回答、ありがとうございます。

再度、類似する質問をするかもしれません。

その際は、お手数ですが宜しくお願い致します。

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

サブVIのフロントパネルの表示ですが、

①サブを独立したEXEにして「システム実行」にすればそれらしくはなりましたが、EXEの起動時間が個々に12秒(PC環境によって変わるとは思いますが)ほどかかり使い勝手に問題があります。
同一環境で起動時間を短縮する方法はありますでしょうか?

 

②別の方法として、
「VIを実行」のリファレンス入力端子にスタティックVIリファレンス(プロパティでサブVIを設定)をつないで実行させたとき、該当するサブVIが開かれている(タブに存在)場合に限りサブのフロントパネルが開きます。これは問題ないです。

 

ところが、アプリケーションビルド(サブVIは常に含めるにチェック)で作成したEXEを起動するとサブのフロントパネルが開きません。ただし、サブのプログラムは動作はしているようです。

このとき特にエラーも出ません。

 

対策として、「VIを実行」のリファレンス入力端子に「VIリファレンスを開く」にサブVIのフルパスを文字列化したものをつないで得られたものに変えてビルド(このときエラーはなし)して、実行し、サブを起動させると「VIリファレンスを開く」でエラーがでます。
LabVIEW:(Hex 0x3EC)VIはメモリ内にありませんとなります。

 

そもそもこのやり方でサブVIのフロントパネルを表示させること自体間違っているのでしょうか?
それとも「VIリファレンスを開く」の使い方が間違っているのでしょうか?

0 件の賞賛
メッセージ4/6
2,250件の閲覧回数
解決策
トピック作成者niziro77が受理

1. システム実行関数での起動速度を変える方法はありません。EXEよりは、VI相互運用性関数で従来のLabVIEWを起動して.viファイルを起動するほうが速いと思います。

 

2. 別の方法でよいのでしたら、ウィンドウを開く関数を使うというのはどうでしょうか?

下記のようにサブVIとなる.gviファイルをスタティックVIリファレンスで指定して、プロパティノードを2つ使ってウィンドウリファレンスを出力して、ウィンドウを開く関数に渡す方法です。

SS2.png

0 件の賞賛
メッセージ5/6
2,233件の閲覧回数

2の方法で上手く動きました。

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

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