コンパイルされた実行ファイルからのネットワークシェア変数をデプロイする

更新しました Jul 27, 2023

環境

ソフトウェア

  • LabVIEW Real-Time Module
  • LabVIEW Datalogging and Supervisory Control Module
  • LabVIEW

ネットワークシェア変数を含む実行ファイルを作成したのですが、実行した時にそれらの変数が自動的にデプロイされません。どのようにシェア変数をデプロイすればよいですか? 

LabVIEW 2009以降

LabVIEW 2009でランタイム時にシェア変数ライブラリをデプロイする機能がアプリケーションビルダに搭載されました。このオプションは、コンパイルする実行ファイルのビルド仕様で利用可能で、コンパイルした実行ファイルでシェア変数を仕様するために必要なコードを削減し、簡略化ができます。

LabVIEW 2009以降でシェア変数を含む実行ファイルをデプロイするには、以下の手順をおこないます。
  1. ビルド仕様のアプリケーションプロパティで、シェア変数のデプロイカテゴリを選択します。
  2. アプリケーション実行時にライブラリをデプロイするには、アプリケーションの実行時にシェア変数ライブラリをデプロイのチェックボックスにチェックを入れます。
  3. アプリケーション終了時にライブラリをデプロイ解除するには、アプリケーションの終了時にシェア変数ライブラリをデプロイ解除のチェックボックスにチェックを入れます。
     


メモ: LabVIEW 8.6.1以前の方法は、LabVIEW 2009以降でも有効です。また、8.6.1以前のバージョンで書かれたコードをLabVIEW 2009以降にアップグレードして上記の方法に変更する必要はありません。

 

 

LabVIEW 8.6.1以前

LabVIEW 8.6.1以前のバージョンでシェア変数を含む実行ファイルを作成するには、まずプログラムが使われる前にシェア変数をデプロイする必要があります。新しいアプリケーション(EXE)を作成する際、ビルド仕様>>アプリケーション(exe)>>ソースファイルで, スタートアップVIとしてトップレベルVIを追加し、常に含む(旧名: サポートファイル)のリストにネットワークシェア変数を含むすべてのライブラリを追加します。また、ソースファイル設定カテゴリで、ライブラリの出力先がSupport Directoryに設定されているかを確認します。

 

 

Windowsからシェア変数をデプロイする

これは、アプリケーション制御のパレットにある関数を使用する方法です。ライブラリをデプロイする方法は、以下のとおりです。
  1. ブロックダイアグラムで右クリックして関数パレットを表示し、プログラミング>>アプリケーション制御にあるインボークノードをブロックダイアグラムに配置します。
  2. 操作ツールを使用して、メソッドをクリックし、ライブラリ>>ライブラリをデプロイ(単一)を選択します。
  3. ライブラリをデプロイ(単一)インボークノードのLibrary Path入力にシェア変数を含むライブラリを指定します。上記の方法でライブラリを実行ファイルのSupport Directoryに含めた場合、ライブラリは実行ファイルのdataフォルダにコピーされます。パス入力をこれらのライブラリを指定します。


LabVIEW Datalogging and Supervisory Control Moduleを使用している場合、Deploy Library関数を使用してシェア変数をデプロイする必要があります。Deploy Library VIは、以下の場所にあります。

  1. ブロックダイアグラムで右クリックして関数パレットを表示し、DSC Module>>Engine Control>>Libraries & Processes(LabVIEW 8.5以前ではDSC Module>>Engine Control)からDeploy Library VIをダイアグラムに配置します。
  2. Deploy Library VIのlibrary path入力にシェア変数を含むライブラリを指定します。



メモ: VIサーバプロパティとメソッド、ライブラリを変更するDSC VI、またはライブラリがあるシェア変数を使用するアプリケーションをビルドしたい場合、アプリケーションプロパティの上級カテゴリで拡張されたDSC Run-Timeサポートを有効にするのチェックボックスにチェックを入れます。LabVIEW DSCがインストールされていないマシンにアプリケーションを配布する場合、インストーラプロパティの追加のインストーラカテゴリでNI機能強化型DSCデプロイメントサポートチェックボックスにチェックが入っていることを確認します。


 

Real-Time(RT)ターゲットにシェア変数をデプロイする (すべてのLabVIEWバージョン)

Real-Timeターゲット上で実行するために実行ファイルをコンパイルしている場合、プロジェクトエクスプローラウィンドウからシェア変数を手動でデプロイするか、アプリケーションインボーグノードを使用してPCからReal-Timeターゲットへシェア変数をプログラム的にデプロイします。

プロジェクトエクスプローラで、Real-Timeターゲットでデプロイしたい各ライブラリを右クリックして、すべてをデプロイを選択します。Real-Timeターゲットにデプロイされたネットワークシェア変数は、手動でデプロイ解除するまで持続します。ネットワークシェア変数をデプロイ解除する方法は以下のとおりです。
  1. LabVIEWでツール>>分散システムマネージャを選択します。
  2. ネットワーク項目を展開して、RTターゲットのIPアドレスを選択します。
  3. デプロイ解除したいライブラリを右クリックして、プロセスを削除を選択します。


アプリケーションインボーグノードを使用してホストPCからReal-Timeターゲットへプログラム的にシェア変数をデプロイすることもできます。
  1. ブロックダイアグラムで右クリックして関数パレットを表示し、プログラミング>>アプリケーション制御にあるインボークノードをブロックダイアグラムに配置します。
  2. 操作ツールを使用して、メソッドをクリックし、ライブラリ>>ライブラリをデプロイ(単一)を選択します。
  3. ライブラリをデプロイ(単一)インボークノードのLibrary Path入力にシェア変数を含むライブラリを指定します。また、「ターゲットIPアドレス」入力を使用してリアルタイムターゲットのIPアドレスを指定します。

Real-Time(RT)ターゲットに接続しているPCにLabVIEW開発システムがない場合:
  1. LabVIEW開発システムがインストールされているPCで、上記のインボークノードを持つVIを作成し、実行ファイル(EXEファイル)をビルドします。
  2. 実行ファイルを、LabVIEW開発システムがないPCにコピーします。 
  3. 実行ファイルと同じフォルダにデプロイしたいシェア変数をコピーします。
  4. RTターゲットに接続している状態で、LabVIEW開発システムがないPCで実行ファイルを実行します。
  5. NI MAXからターゲットを再起動します。
  6. 分散システムマネージャを使用して、シェア変数が正しく展開されていることを確認します。

Additional Information

このページで説明したすべての方法は、システムにライブラリを配備する時間が必要なため、配備と変数への最初のアクセスの間に遅延を置く必要があります。