LabVIEWでサブVIのフロントパネルがポップアップするように制御する

更新しました Nov 23, 2018

使用製品

Software

  • LabVIEW

問題

  • LabVIEWでトップレベルVIから呼び出すサブVIがあります。サブVIのフロントパネルが呼び出されたときにポップアップするかどうかを制御できるようにしたいです。 これを行うにはどうすれば良いですか?
  • サブVIのフロントパネルをアプリケーションで呼び出すときに開くように設定するにはどうすればよいですか?どのように表示するかを制御するにはどうすればよいですか?
  • メインVIをロードしており、アプリケーションを実行する前にサブVIがしばらくポップアップしています。モニタにポップアップ表示されないようにするにはどうすればいいですか?

解決策

サブVIのフロントパネル動作を制御する方法は、3種類あります。

 

VIが呼び出されたときにそのフロントパネルを開くようにVIを設定する

サブVIのフロントパネル動作を呼び出すたびに同じにするには、サブVIのウィンドウの外観プロパティを変更する必要があります。
 
  1. トップレベルVIのブロックダイアグラムでサブVIアイコンをダブルクリックします。
  2. 次のいずれかを行い、サブVIのプロパティを開きます。
    1. ファイル>>VIプロパティに移動します。
    2. フロントパネルまたはブロックダイアグラムの右上にあるサブVIアイコンを右クリックし、VIプロパティを選択します。
    3. サブVI上で<Ctrl-I>を押します。

       
  3. カテゴリドロップダウンメニューでウィンドウの外観を選択します。
  4. カスタマイズ... ボタンをクリックします。
  5. ここでは、左下にサブVIのフロントパネル動作を制御する3つのオプションがあります。
    • 呼び出されたらフロントパネルを表示 - サブVIが実行されるときにフロントパネルを開く
    • 元々閉じていたら実行後に閉じる - サブVIの実行が終了したらフロントパネルを閉じる
    • ロードされたらフロントパネルを表示 - サブVIがメモリにロードされたときにフロントパネルを開く

 

特定のサブVIインスタンスのフロントパネルを開く場合

サブVIフロントパネルを呼び出すときに開く場合は、トップレベルVIを設定する必要があります。この2つ目の方法は、サブVIがトップレベルVIに数回表示され、フロントパネルをある時間だけ開くようにしたい場合に便利です。
  1. トップレベルVIのブロックダイアグラムから、サブVIを右クリックし、サブVIノード設定を選択します。

 

  1. サブVIノード設定には、サブVIフロントパネルの動作を制御するための4つのオプションがあります。
    • ロードされたらフロントパネルを開く - サブVIがメモリにロードされたときにフロントパネルを開く
    • 呼び出されたらフロントパネルを表示 - サブVIを実行するとフロントパネルが開く
    • 元々閉じていたら実行後に閉じる - サブVIの実行が終了するとフロントパネルを閉じる
    • 呼び出されたら中断 - 実行を一時停止して、ユーザによる操作を待機する

 
 

実行時にフロントパネルが開くかどうかをプログラム的に判断する

実行時にフロントパネルがロードされているかどうかをプログラム的に判断するには、サブVIのブロックダイアグラムでインボークノードを使用してフロントパネルの動作を制御します。
  1. ​ブロックダイアグラムにVIサーバリファレンスを作成する、もしくはサブVIのフロントパネルにVI Refnumを作成します。
  2. インボーグノードを配置し、フロントパネル>>開くまたはフロントパネル>>閉じるメソッドを選択して、フロントパネルを開いて閉じます。
  3. 下図は、サブVIのフロントパネルをプログラムで開いたり閉じたりする方法を示しています。各ケースストラクチャのFalseケースには関数が含まれていません。
     

追加情報

非同期呼び出しを開始VIを使用している場合は、そのコネクタペーンが呼び出すVIのコネクタペーンと一致していることを確認します。詳細については、LabVIEWヘルプでVIを非同期で呼び出し、結果を収集するを参照してください。このトピックおよびその他のトピックは、LabVIEW 上級設計コースでも説明しています。

この記事はお役に立ちましたか?

いいえ