Automotive and Embedded Networks

cancel
Showing results for 
Search instead for 
Did you mean: 

ADCS, XNET, UDS NI-9860 CRIO - How do you do it

Hello guys, 

 

I have a cRIO-9057 with NI9860 and Transceiver Cable CAN HS/FD (XNET). Module is correctly installed and detected in MAX (without errors). I can read values from my ECU through Bus Monitor.   

 

image.png

 

I believe I read all of the manuals regarding NI-XNET, ADCS or module itself but I cannot find an answer of how do you actually get a UDS connection. I have tried following the manual "NI-XNET Hardware and Software Manual" and I cannot understand table 2-1.

 

1.PNG

 

This is my interpretation of Table 2-1 in Diagnostic Demo ECU.vi: (but it does not seem to work) 

 

image.png

 

How is an empty FPGA module supposed to give me an access to my cRIO CAN interface on my host? Can anyone please give me a simple example of a working code or tell me what I am doing wrong? I tried running Diagnostic DEMO ECU but it fails.

 

image.png 

 

X-NET version installed on my host and CRIO is 19.0. 

 

0 Kudos
Message 1 of 3
(2,667 Views)

Hi JohnDoeNI,

 In this case the demo ECU should run on compactRIO. You won't get access to the interface from your PC directly - at least I can't (I'm using cRIO-9040 with the same set of modules as you). Empty FPGA bitfile is not needed for 9860.

Piotr F.
Hardware Engineer @ ZF
0 Kudos
Message 2 of 3
(2,392 Views)

Hi,

you're using a cRIO 9057, which supports the NI-DAQmx driver. This means that the XNET modules do not require any configuration of the FPGA (except making sure that the slot in which the XNET module is placed is not set to FPGA mode in MAX). Just make sure the NI-XNET driver is installed on the target using MAX.

 

This means you should see the module's transceivers getting XNET port names (e.g. CAN1) in MAX.

You can use this name directy as interface name for ADCS functions by setting it in the control in any example VI, or if you create your own code use "CAN1@nixnet" as port name, as stated in the ADCS documentation.

 

Since the cRIO is a separate system, code that needs to access its XNET ports generally needs to run on the target itself. So, when running an example on your cRIO target, make sure the VI is located under the cRIO's tree node in the LabVIEW project window (but not under its FPGA subnode), and not under the "My Computer" target. This will make LabVIEW deploy the code to the target and run it there, only acting as a remote user interface for that VI.

0 Kudos
Message 3 of 3
(2,383 Views)