シェア変数を使用するとエラーが発生する

更新しました Aug 1, 2023

問題

一般的なシェア変数のエラーコードおよび説明

シェア変数を使用しているときにエラーが発生したらどうすれば良いですか?

解決策

最も一般的なシェア変数のエラー:
エラー/警告説明および推奨
-1950679034 (0x8BBB0006)
(警告)
一般的な説明:
LabVIEW: シェア変数に値が含まれていません。

その他の表記:
Quality: IAQ_NO_KNOWN_VALUE (Quality bit 7)

典型的なソース: 
LabVIEW: ni_tagger_lv_Read
シェア変数モニタ: variable quality

推奨: 
この警告は、共有変数がソースにバインドされているが、変数がソースから値を受け取っていない場合に発生します。これは、ソースが更新された値を生成していると確信していても、変数がソースから更新を受け取ることがない場合にのみ問題になります。ほとんどの場合、この警告は無視できます。

関連リンク:
What Happens if the System Hosting my Shared Variables Crashes?
-1950679035 (0x8BBB0005)一般的な説明: 
LabVIEW: シェア変数エンジン(SVE)にシェア変数が見つかりません。このシェア変数のデプロイメントに失敗したか、SVEが開始されていないか、SVEがビジーでこの要求に応答できない可能性があります。

その他の表記:
Quality: IAQ_NONEXISTANT (Quality bit 6)

典型的なソース:
LabVIEW: ni_tagger_lv_Read
シェア変数モニタ: variable quality

推奨: 
このエラーは、変数がシェア変数エンジンで見つからないため、読み取りまたは書き込みが完了できなかったことを示しています。このエラーは、変数を含むライブラリがデプロイされたばかりで、変数がシステムで使用可能になる前に読み取りまたは書き込み操作が行われた場合によく発生します。したがって、VIがスタートアップ実行した際には、このエラーを無視することができます。

このエラーが通常のVI実行中に返された場合、次のいずれかを意味する可能性があります。共有変数が展開されていません
  1. シェア変数がデプロイされていない
  2. シェア変数が実行されていない
  3. ファイアウォールがシェア変数エンジンとのすべての通信をブロックしている
関連リンク:
Error -1950679035: Unable to Locate Variable in Shared Variable Engine
Error -1950679035 When Programmatically Changing Shared Variable Properties 
Windowsファイアウォールが動作するようにLabVIEW、LabVIEW DSC、NI変数エンジン、およびLookoutを構成する
-1950679036 (0x8BBB0004)一般的な説明: 
LabVIEW: 一般通信エラーです。

その他の表記:
Quality: IAQ_NETWORK_FAILURE (Quality bit 5)

典型的なソース: 
LabVIEW: ni_tagger_lv_Read
シェア変数モニタ: variable quality

推奨: 
このエラーは、エラー-1950679038と同じです。
-1950679037 (0x8BBB0003)一般的な説明: 
LabVIEW: バインディングURLで指定されたシェア変数はプロセスに存在しません。すべてのシェア変数がデプロイされており、変数識別子URLが正しいことを確認してください。

その他の表記:
Quality: IAQ_SERVER_FAILURE (Quality bit 4)

典型的なソース: 
LabVIEW: ni_tagger_lv_Read
シェア変数モニタ: variable quality

推奨: 
このエラーは、変数がバインドされているIOサーバが初期化中にエラーが発生したことを示します。たとえば、変数がOPC IOサーバにバインドされていて、このエラーが発生した場合、OPC IOサーバはOPCサーバに接続できませんでした。Modbus IOサーバを使用している場合は、Modbus IOサーバの設定に問題がある可能性があります。

問題をさらに診断するには、次の手順を行います。
  1. 読み取ろうとしているIOサーバと変数を含むライブラリをデプロイ解除します。
  2. パブリッシュ変数モニタ(ツール>>DSCモジュール>>モニタ変数)、変数マネージャユーティリティ、または分散システムマネージャを開きます。
  3. ライブラリを再デプロイします。これらのツールのアラームとイベントの概要にエラーが表示されます。このアラーム/イベントのエントリには、問題に関するより詳細な情報が含まれます。
関連リンク:
LabVIEW DSC Module Can’t Connect to OPC Server/No Values Returned
-1950679038 (0x8BBB0002)一般的な説明: 
LabVIEW: 一般デバイスのエラー応答です。

その他の表記:
Quality: IAQ_DEVICE_FAILURE (Quality bit 3)

典型的なソース: 
LabVIEW: ni_tagger_lv_Read
シェア変数モニタ: variable quality

推奨: 
このエラーは、シェア変数がバインドされたIOサーバ(Modbus、OPCなど)がエラーを検出したことを示しています。パブリッシュ変数モニタ(ツール>>DSCモジュール>>モニタ変数)または分散システムマネージャを使用して、問題を診断します。ハードウェア構成を確認し、すべてのケーブルが接続されていることを確認します。
-1967362038 (0x8ABC700A)一般的な説明: 
OS and Network Services: オブジェクトが見つかりません。オブジェクト用に指定された名前またはURLが存在する事を確認してください。オブジェクトはコンピュータ、プロセス、シェア変数、Citadelデータベース、またはNI ドメインです。

その他の表記:
Variable Engine Class Not Found

典型的なソース: 
LabVIEWデプロイダイアログ: Deployment of shared variables failed

推奨: 
このエラーは、LabVIEWを起動し、LabVIEWのインストール後に再起動する前にシェア変数をデプロイしようとした場合に発生する可能性があります。この場合、システムを再起動すると問題が解決されます。
それ以外の場合、このエラーはシェア変数エンジンの設定が見つからないか、ロードできないことを意味し、MAXの問題に関連している可能性があります。

追加情報

LabVIEWシェア変数は、2つのタイプに分類されます。
  • 単一プロセスシェア変数: LabVIEWのグローバル変数と似ていますが、一般的にエラーは返しません。
  • ネットワーク共有されるシェア変数: ネットワークに関連して変数をバインドできるのでエラーが多く返されるため、より複雑です。

このドキュメントでは、ネットワーク共有されるシェア変数によって返されるエラーに焦点を当てています。



シェア変数エラーの解釈方法:
ブロックダイアグラムでシェア変数のリファレンスノードを使用すると、シェア変数がエラーを返すことがあります。ほとんどの場合、エラークラスタにはエラーソースが含まれています。

ni_tagger_lv_Read

または

ni_tagger_lv_Write

これは必ずしもこれらのノードでエラーが発生したことを意味するものではありません。関連する品質(その他の表現にある注記を参照)を持つ下記のエラーは、実際に共有変数エンジンによって返され、ni_tagger_lv_Readまたはni_tagger_lv_Writeによって返されたエラーが発生します。

フロントパネルのバインディングを使用してシェア変数に接続すると、フロントパネルにある制御器の横に透明、緑色、または赤色の三角形が表示されます。透明な三角形は、制御器が変数に接続されていないか、またはVIがアイドル状態であることを示しています。緑色の三角形は、ソースとの良好な接続状態を示しています。赤色の三角形はエラーを示しています。三角の上にマウスを置くと、エラーの詳細な説明が表示されます。



シェア変数デプロイエラーの解釈方法:
ライブラリのデプロイ中にエラーが発生することがあります。ほとんどのデプロイメントエラーは下記の2つに分類できます。

  • 1つ目は、ライブラリ内のシェア変数の設定に問題があることを示すエラーが表示されることがあります。この場合は、最初のエラーが見つかるまでデプロイメントウィンドウのデプロイメント状況テキストフィールドを上にスクロールします。最初のエラーから解決するようにします。
     
  • 2番目は、より高いレベルのエラー(エラー -1967362038など)です。 この場合は、分散システムマネージャまたは変数マネージャユーティリティを使用して、シェア変数エンジンが実行されていることを確認します。次に、シェア変数エンジンを再起動し、ライブラリを再デプロイします。
     
シェア変数エラーを処理するための一般的なヒント:
  • シェア変数を使用するVIを実行する前に、変数マネージャユーティリティを開き、シェア変数が正しく機能していることを確認します。
  • ネットワーク共有されたシェア変数は、コード実行中のある時点でエラーを返すことが予想されます。コードはすべてのシェア変数エラーを処理する必要があります。
  • 自動エラー処理が有効でシェア変数がエラーを返す場合、VIは停止してエラーを処理するように求められます。シェア変数エラーを処理する必要がない場合は、VIプロパティダイアログボックスの実行カテゴリでこのオプションをオフにして、VIの自動エラー処理を無効にすることができます。