VIサーバアプリケーションのプログラミングモデルはRefnumをベースにしています。RefnumはファイルI/O、ネットワーク接続、およびLabVIEWの他のオブジェクトでも使用されます。

通常、RefnumはアプリケーションインスタンスまたはVIに対して開きます。一度開いたRefnumは、他のVIに対するパラメータとして使用します。VIはプロパティを取得 (読み取り) または設定 (書き込み) し、メソッドを実行したり、参照されているVIを動的にロードおよび呼び出します。最後に、Refnumを閉じ、参照されているVIをメモリから解放します。

VIサーバアプリケーションを作成するには、以下のアプリケーション制御の関数およびノードを使用します。

  • 「アプリケーションリファレンスを開く」関数―ローカルまたはリモートのアプリケーションインスタンスへのリファレンスを開きます。
  • 「VIリファレンスを開く」関数―ローカルコンピュータまたはリモートコンピュータ上のVIへのリファレンスを開くか、ディスクからVIを動的にロードします。
  • プロパティノード―VI、オブジェクト、またはアプリケーションのプロパティを取得または設定します。
  • インボークノード―VI、オブジェクト、またはアプリケーション上のメソッドを呼び出します。
  • リファレンス呼び出しノード―動的にロードしたVIを呼び出します。
  • 非同期呼び出しノードを開始―動的にロードされたVIの非同期呼び出しを開始します。
  • 非同期呼び出しを待機ノード―非同期で呼び出されたVIの結果を収集します。
  • リファレンスを閉じる―VIサーバを使用してアクセスしたVI、オブジェクト、またはアプリケーションに対して開いているリファレンスを閉じます。

アプリケーションリファレンスとVI リファレンス

VIサーバ機能へのアクセスは、アプリケーションオブジェクトとVIオブジェクトの2つの主要クラスオブジェクトのリファレンスを通じて行います。これらのオブジェクトのいずれかに対するリファレンスを作成すると、そのオブジェクト上で操作を実行するVIや関数にそのリファレンスを渡すことができます。

アプリケーションリファレンスはローカルまたはリモートのアプリケーションインスタンスを参照します。アプリケーションプロパティおよびメソッドを使用して、LabVIEWの環境設定を変更したり、システム情報を返すことができます。VI Refnumはアプリケーションインスタンス内のVIを参照します。

アプリケーションインスタンスに対するリファレンスを使用すると、LabVIEWを実行しているプラットフォーム、バージョン番号、現在メモリに常駐するすべてのVIのリストなど、LabVIEW環境についての情報を取得することができます。他のアプリケーションインスタンスにエクスポートされたVIのリストなどの情報を設定することもできます。一度に複数のアプリケーションインスタンスを開くことができるので、1つのアプリケーションインスタンスでVIサーバプロパティおよびメソッドを使用している場合、また、別のアプリケーションインスタンスと操作したい場合は、アプリケーションリファレンスを使用する必要があります。たとえば、LabVIEWプロジェクトまたはLabVIEWプロジェクトのターゲットを作成する場合、新規のアプリケーションインスタンスが開かれます。

VIに対するRefnumを作成すると、メモリにVIがロードされます。このVIは、リファレンスを閉じて以下の条件が満たされるまでメモリに常駐します。

  • 同じVIに対する他のリファレンスが開いていない。
  • VIのフロントパネルが開いていない。
  • VIはメモリ内の別のVIのサブVIでない。
  • VIが開いているプロジェクトライブラリのメンバーでない。

VIに対するRefnumを使用すると、ペーンの位置などのダイナミックプロパティだけでなく、VIプロパティダイアログボックスで使用可能なVIのすべてのプロパティを更新できます。また、プログラム的にVIのドキュメントを印刷したり、別の場所にVIを保存したり、VIの文字列をエクスポートおよびインポートして他の言語に変換したりすることもできます。