NI-VISAエラー -1073807246: リソースにアクセスできません

更新しました Oct 22, 2024

使用製品

ハードウェア

  • CompactRIO Controller
  • Serial Interface Device
  • PXI Serial Interface Module
  • C Series Serial Interface Module
  • USB Cable

ソフトウェア

  • LabVIEW

ドライバ

  • NI-VISA

問題

サードパーティ製機器と通信しようとしています。NI MAXでVISAテストパネルは動作していますが、VISAサンプルVIを使用すると次のようなエラーメッセージが表示されます。

エラー -1073807246 が VISA オープン時に発生しました...
考えられる理由:
VISA: (16 進数 0xBFFF0072) リソースは有効ですが、VISA は現在アクセスできません。

                                                                                                             
 
また、VISAインタラクティブ コントロール ツールでは、インターフェイスが不明として表示され、黄色の疑問符アイコンが表示されることにも気付きました。

visainteractive control.jpg 
 

下の画像に示すように、NI Measurement & Automation Explorer (MAX) の VISA テスト パネルを使用してインターフェイスにアクセスしようとすると、同様なエラーが発生します。

error openingvisa.jpg 
シリアル互換VIを使用していると、エラー37: デバイスが見つかりませんが発生します。どうすればエラーを解決できますか?

解決策

このエラーは、VISAリソース (シリアル ポート、GPIBポート、イーサネット ポートなど) の制御を取得できなかったことを示します。このエラーは、LabVIEW 開発環境、ビルドされた実行ファイル、リモート ターゲット、またはNI-MAXで発生する可能性があります。この記事では、各環境のトラブルシューティング ガイダンスを提供します。

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

  • 別のプログラムが VISA リソースを制御している可能性があります。一度にリソースを使用できるのは 1 つのプログラムのみです。NI MAX VISA テスト パネル、PuTTY、HyperTerminal など、リソースを使用している可能性のある他のプログラムを閉じてください。
  • アプリケーションでNI-VISA セッションを必ず閉じてください。NI-VISAアプリケーションを実行した後、LabVIEWはデフォルトでVISAリソースを解放しません。
    • プログラムの最後にデバイス セッションを閉じるには、VISA Close を使用します。
    • LabVIEW上でツール >>オプションをクリックして環境タブにて「VISA セッションを自動的に閉じる」にチェック することで、VISAセッションを自動的に閉じるようにLabVIEW環境を構成できます。
    • LabVIEW を完全に終了すると、すべての VISA セッションも閉じられます。
  • VISAリソースが切断されている場合は、VISAセッションを閉じてからアプリケーションを再度実行してください。
  • オペレーティング システム(OS)と NI-VISA ドライバの互換性を確認してください。これは、NI-VISAのバージョンのreadmeに記載されています。 NI-VISAのバージョンがOSと互換性がない場合は、これがエラーの原因である可能性があり、ドライバーをアップグレードする必要があります。
  • このエラーは、ドライバーのインストールの問題または破損によって発生する可能性があります。NI-VISAの強制再インストールを試してください。
  • システムアップデートを実行して、Windows  OSが最新であることを確認してください。

 

Serialトラブルシューティング 
  • シリアル コンバータを使用している場合、または独自のカスタムシリアルコンバータを作成した場合は、シリアルポートラインを正しく接続していることを確認します。
  • シリアル デバイスを使用している場合は、コンピューターを再起動してください。これにより、オペレーティング システムがシリアル リソースを強制的に解放します。
  • Windows デバイス マネージャーを使用して COM ポート番号を変更してみてください。これを行うには、Windows デバイス マネージャーを開き、ポート (COM と LPT) を展開し、 COM デバイスを右クリックして  プロパティ>> ポートの設定タブ>> 詳細設定 ウィンドウで COM ポート番号を選択します。

comportsetting.PNG

注: COMポート番号を変更すると、同じリソースを使用する他のアプリケーションで予期しない動作が発生する可能性があります。

 

実行ファイル(EXE)

  • serpdrvファイルが存在しません(LabVIEW 6.1以前でSerial Compatibility VIを使用している場合のみ)。
    • LabVIEWでVIを実行している際、serpdrvはlibdirによって指定されたディレクトリに存在する必要があります(通常、National Instruments\LabVIEW\)。
    • LabVIEWで作成した実行ファイルを使用している際、serpdrvは実行ファイルと同じディレクトリ、もしくはランタイムエンジンと同じディレクトリに存在する必要があります。ランタイムエンジンのデフォルトディレクトリは、次のとおりです。
      National Instruments\Shared\LabVIEW Run-Time
  • LabVIEW開発環境と実行ファイルの構成が一致していない可能性があります。

    1.  

      LabVIEW.iniファイル(Program Files\National Instruments\LabVIEW 20[XX]\LabVIEW.iniにあります)を実行ファイルのあるフォルダへコピーします。

    2. 実行ファイルと同じ名前(name.ini)に変更します。

    3. 最初の行を[LabVIEW]から[name]に編集します。

 

リモート ターゲット (CompactRIO または PXI(e) デバイス)

  • アクセスしようとしているシリアル ポートを使用するプロセスがターゲットにデプロイされていないことを確認します。たとえば、Modbusシリアルを使用するIOサーバなどのライブプロセスをNI Distributed System Managerで監視できます。
  • NI-MAX システム設定でコンソール出力を有効にするがチェックされていないことを確認します。これが有効になっていると、VISAはシリアル ポートを制御できません。
    • 一部のcRIOなどのデバイスには、コンソール出力オプションを有効または無効にするための物理的なDIPスイッチがあります。NI-MAXにコンソール出力設定が表示されない場合は、デバイスのマニュアルを参照してください。

 

追加情報

  • ご使用のオペレーティングシステム(OS)とNI-VISAドライバの互換性を確認してください。これは、使用しているNI-VISAのreadmeにあります。NI-VISAのバージョンがお使いのオペレーティングシステムと互換性がない場合、これが原因の可能性がありますので、ドライバをアップグレードする必要があります。
  • このエラーは、ドライバの問題によりCOMポートがドライバによって正しく認識されていない場合にも発生する可能性があります。 NI-VISAを強制的に再インストールしてみます。

 

  • これらの解決策は、Serial関連のVIを使用しているときに発生する「エラー37:デバイスが見つかりません」の解決にも役立ちます。これらのVIは推奨されなくなりましたので、エラーはここでは注釈としてのみ記載されています。NI-MAXで同じエラーメッセージが表示された場合、またはその他のトラブルシューティング手順については、MAXのCOMポートに感嘆符が表示されてテストパネルにエラーが表示されるを参照してください。

 

  • CompactRIOを使用している場合は、Console Outを有効にすることによって発生します。cRIOの起動設定またはディップスイッチを確認してください。