04-03-2018 02:15 AM
G'day,
I've found an NI PCI-CAN device for sale, but I can't determine exactly which era/model it is. I want to ensure it's suitable for my application, where I'll be simulating CAN signals using LabView (i.e. CAN signal output from the card).
The two identifiers on the card are as follows:
184728A-01
UL94V-0
Can anyone please clarify which model/era this card is? I would like to make sure it's suitable, and also supported with current versions of LabView.
Many thanks,
Jamie
04-03-2018 01:37 PM
That specific part number is used in a number of different NI-CAN devices. so I can't narrow it down beyond around 10 options. While I can say that the NI-CAN driver should allow you to use the device with LabVIEW I cannot say what the specific device is.
Do you see the number 184726x-yy anywhere on the device? If so, the yy would help me identify the exact model. Or you could install it into a PC along with the NI-CAN 17.0 driver to see it show up in MAX.
04-03-2018 03:50 PM
Thank you for your response.
Here is the listing for the device with some close up photos. Unfortunately the two numbers I listed in my original post are the only numbers I've been given. This particular model has dual DB9 connectors, which appears to somewhat distinct from several of the other NI CAN devices I've seen.
Thanks!
04-03-2018 04:01 PM
The picture of the mounting bracket matches an item in my list of possibilities and confirms that it is a PCI-CAN/DS model with one port of high speed CAN and one port of low speed. It is an older generation "Series 1" device and is still supported by NI-CAN 17.0.
04-03-2018 04:03 PM
Brilliant, thank you very much!
As long as it's supported I'm happy 🙂
One final question if you don't mind, are these cards capable of simulating/producing CAN signals with LabView from a DBC file as well as reading from an external CAN? I'm looking to use the card as a simulator rather than a capture device, and with limited background in LabView I just wanted to confirm before committing to this approach.
Thanks!
04-03-2018 04:38 PM
The NI CAN API and hardware is aging for sure, with new features and support coming for the XNet line of hardware. That being said the Channel or Signal API is going to be what you want and is a feature of the NI-CAN line of cards. I'm unsure of the type of functionality the Channel API gives you on this hardware as my NI-CAN hardware never supported it. Which is why I've always been using the XNet API to perform the Frame to Channel (or signal) conversion. I wrote an API here that can convert from signals to raw frames, which can be sent out with the Frame API.
Basically what I'm saying is you can use this CAN hardware to perform reading and writing of signals using a DBC. But there are multiple methods to achieve this, one with the hardware's built in, but limited functionality, and one with an open and free API done in software. And if you are unfamiliar with CAN and the Frame/Signal/Channel APIs checkout Part 5 of my CAN Blog which covers some of these topics, while highlighting XNet.
Unofficial Forum Rules and Guidelines
Get going with G! - LabVIEW Wiki.
17 Part Blog on Automotive CAN bus. - Hooovahh - LabVIEW Overlord
04-03-2018 04:53 PM
Thank you very much!
I'm very new to CAN, so this is all still very new to me. I'm reading through your blog at the moment, which is proving to be very helpful! I note that the NI-XNET Database Editor is available for download, and appears to be compatible with non-XNET CAN cards as well. Would you recommend the NI-XNET Database Editor for creating CAN database files? Similarly, can you recommend a c/c++ API/library for parsing data received from a CAN bus using a given database file format?
I had planned on using/building DBC files, but a cursory search suggests the FIBEX might be a better option, as it's freely available and company-independent.
04-04-2018 08:13 AM
Regardless of if you use XNet hardware or not, the XNet Database Editor (and other XNet functions) are super useful. I use the database editor all the time to import a DBC, modify it, then export it back to a new DBC. DBC is a standard most engineers are familiar with and can be used in other Vector tools. I can't recommend anything c/c++ related (other than an Arduino) since I'm a LabVIEW guy. All the DBC parsing I do is by importing the DBC into XNet (using the LabVIEW API) and then use the XNet functions to get signal information. Again I'd refer to my frame signal conversion library which is an example on how this works.
Unofficial Forum Rules and Guidelines
Get going with G! - LabVIEW Wiki.
17 Part Blog on Automotive CAN bus. - Hooovahh - LabVIEW Overlord