From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

Missing DLL for ndOpenDiagnostic().

Solved!
Go to solution

I am getting a status = -8005 response from the ndOpenDiagnostic() function.

-8005 means - A DLL required for communication with the ECU could not be loaded. Probably this library is not installed. What DLL am i missing?

 

Using the following:

NI-9860 LIN interface device (XNET device)

LabWindows 2015, Automotive Diagnostic Command Set  15.0,  CAN  14.0 , XNET 16.0

Code:

#define MasterRequestFrame  ""  // "" takes the default value "MasterReq"

#define SlaveResponseFrame   ""  // "" takes the default value "SlaveResp"

TD1 DiagStruct = {0,0,0,0,0,0};

WriteData[0] =  0x62;          

WriteData[1] =  0x03;      

WriteData[2] =  0x22;      

WriteData[3] =  0x01;                       

WriteData[4] =   0x00;       

WriteData[5] =   0xFF;                      

WriteData[6] =   0xFF;     

WriteData[7] =   0xFF;                                                                                   

status = ndOpenDiagnostic (“LIN1@nixnet: ADCS_LIN_database”, 10417, 0x62, MasterRequestFrame, SlaveResponseFrame, &DiagStruct);

  status2 = ndDiagnosticService (&DiagStruct, 1, &WriteData, word_size, &ReadData, size_word);

0 Kudos
Message 1 of 18
(3,797 Views)

Hey, 

 

Are you using this module within a cRIO, or cDAQ chassis? If so, do you have the NI RIO driver or the DAQmx driver installed? 

 

Regards, 

 

Shezaan Noorani 

0 Kudos
Message 2 of 18
(3,766 Views)

 its actually  "ndOpenDiagnosticOnLIN()" and I have both drivers installed.

I changed the interface name to LIN6

 

0 Kudos
Message 3 of 18
(3,764 Views)

Hey, 

 

Thank you for providing that image, I was wondering if you have tried to uninstall the XNET or CAN driver and reinstall it to see if it resolves the issue with the dll? Also have you tried uninstalling and reinstalling the Automotive Diagnostic Command set 2015? I would give that a shot to see it would address the issue being associated to a bad install. 

 

Regards, 

Shezaan Noorani

0 Kudos
Message 4 of 18
(3,754 Views)

The function ndOpenDiagnostic() is only applicable to CAN networks. For LIN, try using the ndOpenDiagnosticOnLIN() function.

Jeff L
National Instruments
Message 5 of 18
(3,744 Views)

I uninstalled & re-installed the CAN, XNET and ADCS software.

The issue is still exists:

When I perform the following:

sprintf(Interface, "%s","LIN6@nixnet:ADCS_LIN_database");

status = ndOpenDiagnosticOnLIN (Interface, 10417, 0x62, MasterRequestFrame, SlaveResponseFrame, &DiagStruct);

status = -1074384560

 

sprintf(Interface, "%s","LIN6:ADCS_LIN_database");

status = ndOpenDiagnosticOnLIN (Interface, 10417, 0x62, MasterRequestFrame, SlaveResponseFrame, &DiagStruct);

status = -8005

 

It is there a compatibility issue with CAN and XNET software or ADCS ?

Thanks,

Dennis

 

 

0 Kudos
Message 6 of 18
(3,733 Views)

We are on the right track with error -1074384560. It indicates that the underlying XNET driver is not aware of the ADCS_LIN_database or where it is located. To resolve it, open the NI-XNET Database editor in the Start Menu -> National Instruments -> NI-XNET folder. Then click on File -> Manage Aliases to open a dialog. If the ADCS_LIN_database is not on the list of Aliases, we can add it by locating it at 

 

C:\Program Files (x86)\National Instruments\<LabVIEW Version>\examples\Automotive Diagnostic Command Set\ADCS_LIN_database.ldf

 

Then we will need to deploy that database to the target by connecting with the IP address of the cRIO and clicking deploy. You will need to repeat this procedure with any of your own databases as well.

 

The "@nixnet" in the interface name tells ADCS to use the XNET driver instead of NI-CAN. If "@nixnet" is missing from the interface, ADCS will look for the NI-CAN DLLs and hardware on the target but won't find any on a cRIO

 

 

Jeff L
National Instruments
0 Kudos
Message 7 of 18
(3,730 Views)

Correction: you won't need to deploy the database to a cDAQ target such as the 9171. Deployment only applies to real time targets.

Jeff L
National Instruments
0 Kudos
Message 8 of 18
(3,730 Views)

I have added the Aliases but I can not find the "IP address of the RT Target".

 

The cDAQ1 - Ni-9860 device has no IP address.

 

0 Kudos
Message 9 of 18
(3,723 Views)

In part but I am now getting status2 = -8260 from the ndDiagnosticService.

printf(Interface, "%s","LIN6@nixnet:ADCS_LIN_database");

status = ndOpenDiagnosticOnLIN (Interface, 10417, 98, "" , "" , &DiagStruct); 

Delay(2);


status2 = ndDiagnosticService (&DiagStruct, &resp, &dataIn, word_size, &dataOut, size_word);

 

When I fill in the MasterRequestFrame and SlaveResponseFrame (ndOpenDiagnosticOnLIN) with 0x3C (60) and 0x3D (61) I get a negative -107 error.

 

0 Kudos
Message 10 of 18
(3,665 Views)