02-01-2018 03:10 AM
I have a PXIe-8510 and several can frames defined in a DBC. Is there a simpler way to send all the Frames in the DBC all at once at the defined rate rather than creating a session for each Frame?
Solved! Go to Solution.
02-01-2018 07:37 AM
To answer your exact question I'd say it is impossible to send all frames in a DBC all at once no matter what method or hardware you have. The CAN bus has arbitration and priority and only one frame can be sent at once.
But to answer the intent of your question there are several methods. Using the Frame Out Single-Point you can specify the array of CAN frames to send, which will get sent at the rate defined in the DBC. Otherwise you can also achieve this using software timing and sending out the frames you want one at a time using Frame Out Stream keeping track of the timing of each frame and when a new one should go out.
More information on the various XNet modes can be discovered by reading my CAN Blog Part 6.
Unofficial Forum Rules and Guidelines
Get going with G! - LabVIEW Wiki.
17 Part Blog on Automotive CAN bus. - Hooovahh - LabVIEW Overlord
02-01-2018 12:08 PM
02-01-2018 12:12 PM
No offense taken, but I mean I did the blog for a reason. And that was so others would find its information, and if it happens to answer a question posted here why shouldn't I link to it? I'd link to someone else's blog or community page if it answers a question too. I just happen to know my own content better than someone else's.
Unofficial Forum Rules and Guidelines
Get going with G! - LabVIEW Wiki.
17 Part Blog on Automotive CAN bus. - Hooovahh - LabVIEW Overlord
02-01-2018 12:26 PM
Funny thing is, right after the initial post, I ran into your blog and started reading it from the beginning. I just haven't got to Part 6 yet. Thanks!
02-02-2018 12:47 PM
Related question:
Is there a way to read in the full Frame List from a DBC file? I've looked through the APIs and nothing really stood out.
02-05-2018 09:06 AM
Oh sure, there's several ways. A pretty elaborate example can be seen in the Exploring Database with Tree example. This can be found in the Help >> Find Examples and searching for it or using keywords like Xnet and Database.
I think the core function of this VI can be found here which gives all frames clusters, signals and other things based on a database.
<LabVIEW Install>\examples\nixnet\examples.llb\NI-XNET Example subVI - Get All Names from Database.vi
But the most basic way is to use the property nodes like this:
You'll probably notice these functions only work once a DBC has been imported into the XNet Database. This can be done using the Add Alias XNet function found on the palette. If you installed my CAN Reuse from the blog posts, then you'll also have Get Alias from DBC under the XNet tools. This takes a DBC and will return the database alias for it. If the DBC hasn't been added before it adds it creating a new unique name.
Unofficial Forum Rules and Guidelines
Get going with G! - LabVIEW Wiki.
17 Part Blog on Automotive CAN bus. - Hooovahh - LabVIEW Overlord