エラー -1950678968: Real-Time ターゲットでシェア変数を使用するプログラムをデプロイまたは実行しようとするとエラーが発生する

更新しました Apr 21, 2023

使用製品

ハードウェア

  • CompactRIO Controller

ソフトウェア

  • LabVIEW
  • LabVIEW Real-Time Module

ドライバ

  • NI-RIO

問題

Real-Time(RT)ターゲット用のプログラムを作成した後、VIを実行またはデプロイしようとすると以下のエラーが発生します。
 

ni_tagger_lv_Write.viのダウンロードに失敗しました
LabVIEW: 共有ライブラリnitaglv.dllのロードに失敗しました。


または、
 

エラーコード-1950678968が<VI名>で発生
 

考えられる理由:
LabVIEW: (Hex 0x8BBB0048) ネットワーク共有シェア変数に必要なnitaglvのロードに失敗しました。


 

これはどういう意味ですか?そして、修正するにはどうすればよいですか?

解決策

RTターゲットでシェア変数を使用する場合、最初にシェア変数ソフトウェアコンポーネントをインストールする必要があります。インストールしないとRTプログラムの実行時に、上記のエラーが発生します。
 

RTターゲットのシェア変数エンジンには、ネットワーク変数エンジンと変数クライアントサポートの2つのコンポーネントがあります。RTターゲットでシェア変数をホストする場合は、ネットワーク変数エンジンをRTターゲットにインストールする必要があります。別のマシン(RTOSまたはWindows OS)でホストされているシェア変数にアクセスする場合は、変数クライアントサポートコンポーネントをインストールする必要があります。
 

これらのコンポーネントをインストールする手順は、以下のとおりです。
 

  1. Measurement&Automation Explorer(MAX)を開きます。
  2. リモートシステムでRTターゲットを見つけます。
  3. RTターゲットを展開して、ソフトウェアを右クリックします。
  4. ソフトウェアの追加と削除を選択します。
  5. シェア変数コンポーネントをインストールします(ネットワーク変数エンジンおよび変数クライアントサポート)。

 

シェア変数エンジンとシェア変数クライアントをRTターゲットにインストールしている場合、メモリ問題が発生している可能性があります。これを解決するには、ターゲットに対してフォーマットして最小限のインストールを実行します。たとえば、CompactRIOでは、以下に示すNI CompactRIOソフトウェアスタックのみをインストールします(上記のネットワーク変数エンジンと変数クライアントサポート以外のソフトウェアを追加しないでください)。


 

フォーマットと最小限のソフトウェアの再インストールで問題が解決しない場合、LabVIEWプログラムにメモリの問題を引き起こしているものがある可能性があります。メモリ使用量を監視する、新しいプロジェクトを最初から作成する、または一度にコードの小さな要素を実行してメモリ問題が発生する箇所を探します。