XNET セッションを作成するとエラー -1074384883 が発生する

更新しました Aug 22, 2024

使用製品

ハードウェア

  • NI-9860
  • NI-9861
  • NI-9862
  • NI-9866
  • PCI-8511
  • PCI-8512
  • PCI-8513
  • PCI-8516
  • PCI-8517
  • PXIe-8510
  • PXI-8511
  • PXI-8512
  • PXI-8513
  • PXI-8516
  • PXI-8517
  • USB-8502
  • USB-8506

ドライバ

  • NI-XNET

問題

NI-XNET ドライバ関数を使用して CAN 通信アプリケーションを開発しています。 XNET Create Session.vi を2 回目に呼び出すと、エラー -1074384883 が発生します。

XNET Create Session.vi でエラー -1074384883 が発生しました
考えられる理由: NI-XNET: (Hex 0xBFF6300D) 同じフレームを2回開こうとしました。これは許可されません。解決策: 1度に1つのフレームを開いてください。

解決策

このエラーは、既存の XNET セッションと同じフレームまたは信号を使用して新しいセッションを作成したために発生します。
  • データベースのフレームを使用してセッションをすでに開いている場合は、そのフレームを使用して新しいセッションを開く前に、そのセッションをクリアする必要があります。これを行うには、 XNET Clear.viを追加して、別のリソースを開く前にセッションのすべてのリソースを解放します。
  • 2 つの異なるフレームへのセッションを開こうとしてもこのエラーが発生する場合は、データベース内の 2 つのフレームが同じアービトレーション ID を持っていることが原因である可能性があります。
    1. スタートメニューからNI-XNETデータベースエディタを開きます。
    2. アプリケーションで使用しているデータベースを開きます。
    3. クラスター内のさまざまなフレームをクリックし、各フレームに異なるアービトレーション ID があることを確認します。
2024-08-22_13h31_51.png

追加情報

通常、既存のセッションをクリアして同じオブジェクトを使用する新しいセッションを作成する必要がある場合は、 XNET Clear.viを使用します。たとえば、フレーム出力シングルポイントモードを使用してframeAという名前のフレームのセッションを作成し、フレーム出力キューモードを使用してframeAの2番目のセッションを作成すると、frameAは一つの出力モードからしかアクセスされることができないため、 XNET Create Session.viの2番目の呼び出しでエラーが返されます。 2回目のXNET Create Session.vi呼び出しの前にXNET Clear.viを呼び出すと、以前のframeAの使用を閉じて新しいセッションを作成できます。

アプリケーションが終了すると(最上位VIがアイドル状態になると)、LabVIEWはそのVIとそのサブVI内のすべてのXNETセッションを自動的にクリアします。したがって、アプリケーションでXNET Clear.vi が必要になることはほとんどありません。