LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Reading OBDII data without Automotive Diagnostics Command Set

Hello All,

 

Just wondering whether anyone has had any succes with reading OBDII data from a without using the Automotive Diagnostics Command Set add in for LabVIEW.

 

I mean, just using the standard CAN or XNET vi's?

 

I would like to read engine RPM and vehicle speed etc.

 

I have been able to read these PID's by downloading an evaluation version of the add-in, but I am slightly reserved to spending £900 for the software if it can be done otherwise.

 

Thanks

Rhys.

0 Kudos
Message 1 of 4
(4,801 Views)

The OBDII port is essentially just a CAN connector - you should be able to read the CAN messages from the port using either NI's CAN hardware or another CAN device (e.g. Kvaser/PCAN). That's the easy part.

 

The hard part is decoding the messages - you can use XNET to do this (XNET Conversion VIs) but you need to either create your own database of the messages/signals or use an existing one. You can either do this using the XNET software to build the database yourself or use a CANdb (.dbc) file or any of the other sort of database file that XNET supports for the CAN signal definitions.

 

I can't say I've ever tried it in my own car, but we do a lot of stuff with CAN and use both NI and non-NI hardware to do this and then use XNET to parse the messages into signal data.


LabVIEW Champion, CLA, CLED, CTD
(blog)
0 Kudos
Message 2 of 4
(4,793 Views)

DIDs and PIDs aren't signals, and the XNet conversion library will be little help for reading this information since you generally need to issue a request before a response is sent.  Then theres other issues with multi-frame messages that XNet doesn't support.  It can be done but is a manual process of getting raw frames and doing the conversion.  That's why these toolkits were made.

 

By the way you'll probably find more help on the automotive subforum.

http://forums.ni.com/t5/Automotive-and-Embedded-Networks/bd-p/30

 

You'll probably need to look into the ISO spec on how to read DIDs and PIDs.  I might be wrong but I think it is ISO 15765 or something.

0 Kudos
Message 3 of 4
(4,777 Views)

Thanks for your initial replies.

 

I have connected a CDAQ with a 9862 CAN module to the OBD connector of the car.

 

I am able to read some data using the Bus Monitor. But the data that I require (engine rpm) is not visible.

 

As you mentioned, I believe that a request has to be sent for other information, and constructing that data frame for the request is the difficult part (unless I'm using the ADCS of course)

 

Rhys

0 Kudos
Message 4 of 4
(4,772 Views)