Error -1074384883 Occurs When I Create an XNET Session

Updated May 4, 2023

Reported In

Hardware

  • 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

Driver

  • NI-XNET

Issue Details

I'm developing a CAN communication application with NI-XNET driver functions. I get error -1074384883 (as shown below) when I call XNET Create Session.vi for the second time.

Error -1074384883 occurred at XNET Create Session.vi
Possible reason(s): NI-XNET:  (Hex 0xBFF6300D) You tried to open the same frame twice. This is not permitted. Solution: Open each frame only once.

 

 

Solution

This error occurs because you create a new session using the same frame or signal as an existing XNET session.
  • If you already have a session open using a frame from your database, you will need to clear that session before opening a new session using that frame. To do this, you can add XNET Clear.vi to releases all resources the session before opening another one. 
  • If you are trying to open a session to two different frames but you are still getting this error, this could be because two frames in your database have the same arbitration ID.
    1. Open NI-XNET Database Editor from the Start menu.
    2. Open the database that you are using in your application.
    3. Click on the different frames in your cluster and make sure that each frame has a different Arbitration Id

Additional Information

You typically use the XNET Clear.vi when you need to clear the existing session to create a new session that uses the same objects. For example, if you create a session for a frame named frameA using Frame Output Single-Point mode, then you create a second session for frameA using Frame Output Queued mode, the second call to the XNET Create Session.vi returns an error because frameA can be accessed using only one output mode. If you call the XNET Clear.vi before the second XNET Create Session.vi call, you can close the previous use of frameA to create the new session.

When your application is finished (the top-level VI is idle), LabVIEW automatically clears all XNET sessions within that VI and its subVIs. Therefore, the XNET Clear.vi is rarely needed in your application.