ネットワーク共有シェア変数のトラブルシューティング

更新しました Feb 26, 2024

使用製品

ハードウェア

  • FP-2000
  • FP-2010
  • FP-2015

ソフトウェア

  • LabVIEW Real-Time Module
  • LabVIEW

ドライバ

  • NI-RIO

問題

  • ネットワークでネットワーク共有シェア変数での通信時に問題が発生しています。シェア変数は開発環境では動作しますが、実行可能ファイルに組み込まれているときには動作しません。
  • ネットワークで公開されているシェア変数は、期待する方法では機能しません。変数に書き込まれている値と読み取られている値との間に矛盾があります。
  • コード内の共有変数にアクセスしようとすると、エラーが発生します。 エラー-1950679034:共有変数に値がありません。

解決策

ネットワークにある他のマシンからのアップデートしているネットワーク共有シェア変数を阻むいくつかの要因があります。


 

一般的なトラブルシューティング

  1. シェア変数がネットワークパブリッシュに設定されているかを確認します。これを確認するには、変数を右クリックしてプロパティを選択します。
     
  2. シェア変数を含むライブラリがデプロイされているかを確認します。これを確認するには、ホスティングしているシェア変数のライブラリを右クリックして、デプロイオプションの1つを選択します。変数がデプロイされている場合、分散システムマネージャ(ツール>>分散システムマネージャ)を使用して確認することができます。LabVIEW 8.5以前を使用している場合は、変数マネージャ(ツール>>シェア変数>>変数マネージャ)を使用することができます。
     
  3. どちらか一方のコンピュータでNI-PSPパケットをブロックするファイアウォールが有効でないことを確認します。コントロール パネルのWindowsファイアウォールで設定を確認することができます。ファイアウォールの問題については、ソフトウェアおよびハードウェアファイアウォールを構成してナショナルインスツルメンツ製品をサポートするを参照してください。ファイアウォールが問題の場合は、エラー -1950679034、シェア変数に値が含まれていません。が発生します。
     
  4. ウィルス対策ソフトウェアにファイアウォールがある場合は、ファイアウォールを無効にするか、または例外にLabVIEWを含めます。
     
  5. シェア変数が、同じIPサブネットにあるコンピュータでホストされているかどうかを確認します。そうでない場合は、ツール>>シェア変数>>コンピュータを登録...よりリモートコンピュータを登録することができます。
     
  6. シェア変数へアクセスしようとしているPCに複数のネットワークカードがある場合、使用しないネットワークカードを無効にします。また、適切なネットワークカードがプライマリネットワークとして設定されているかを確認します。 確認方法は、ホストPCのネットワークカードを複数使用してイーサネットターゲットに接続する方法を参照してください。
     
  7. シェア変数エンジンが実行中であることを確認します。Windowsサービスに移動して、NI変数エンジンプロセスが存在し、実行中であることを確認します。存在しない場合は、LabVIEWランタイムをインストールします。存在していても実行されていない場合は、プロセスを右クリックして開始します。自動的に開始されるようにするには、サービスのプロパティを開き、スタートアップの種類が自動に設定されていることを確認します。サービスプロパティの回復タブでは、シェア変数エンジンの起動に失敗した場合に、変数エンジンを1回目、2回目、およびそれ以降のすべての試行で再試行するように設定することもできます。
     
  8. NIサービスを再起動します。



 

Real-Time (RT)システムに対するトラブルシューティング

  1. DIPスイッチがReal-Timeターゲット上で正しく設定されているかを確認します。特に、シェア変数が開発環境では動作するがスタートアップ実行ファイルに設定されていない場合、NO APPのDIPスイッチがOFFになっているを確認します。
     
  2. RTターゲットのDNS IPを確認します。このIPが有効なDNSサーバではないものに設定されている場合、シェア変数はDNSタイムアウトの発生によりゆっくり更新されます。このエントリを0.0.0.0に変更すると、シェア変数が適切なレートで更新されます。
     
  3. シェア変数に書き込むタイミングループのタイミングを調整するか、遅延を追加します。タイミングループが高速で動作していて他のプロセスを不足させている場合、変数は非常にゆっくりアップデートするか、すべてアップデートされません。
     
  4. Real-Time実行ファイルでシェア変数を使用している場合、フロントパネルのオブジェクトがシェア変数にバインドされていないことを確認します。Real-Time実行ファイルをビルドする際にフロントパネルオブジェクトが削除されると、シェア変数がアップデートされない原因となります。実行ファイルとしてアプリケーションをデプロイするつもりである場合は、ブロックダイアグラムでシェア変数ノードを使用します。
     
  5. Real-Timeターゲットからシェア変数を読み取ろうとしている場合、変数クライアントサポートがターゲットにインストールされていることを確認します。これは、NI MAXでリモートシステムの下においてReal-Timeターゲットの横にある[+]を展開して、さらにソフトウェアの横にある[+]を展開すると確認することができます。シェア変数がReal-Timeターゲットによってホストされている場合、ネットワーク変数エンジンがインストールされているかを確認します。ネットワーク変数エンジンは、FieldPoint 2000、2010、および2015コントローラではメモリ不足のため正しく動作しません。