11-03-2010 04:38 PM
We are currently trying to interface with a J1939 CAN network using a cRio 9012, 9104 chassis and the 9853 module. We have Labview 8.2. I stumbled accross the examples for Labview 8.6 and newer. Is there any particular solution/road we should be going down?
I have experience using Labview with a cDAQ, but have not much experince with RealTime and FPGA.
I got the thermocouple module to work using FPGA, so the RIO itself and the module do work.
Thanks for any guidance/help you can send my way.
11-04-2010 08:19 AM
Have you looked J1939 Example Code ?
11-04-2010 09:03 AM
I have looked at them but have not tried to complete them in Labview 8.2. It looks like there are J1939 sub-vi's that are used, and I assumed since the other VI's were created with LV 8.6 I wouldn't be able to use the sub-vi's either.
11-04-2010 09:58 AM
11-04-2010 10:35 AM
Thanks for the advice, I'll call an applications engineer as my 30 day trial of SSP is still running.
11-04-2010 10:53 AM
The way I would approach J1939 on the cRIO would depend on what features of J1939 you needed for your app. If you are just reading or writing broadcast messages that fit in a single 8 byte frame it will be just as straight forward as standard CAN. Basically in this case you would be reading frames on the FPGA code, transmit them to the realtime portion where you can convert them to channel data using a CAN database. Writing would be just the opposite direction.
If you are using requests for PGN data, lets say to retrieve DTC codes, or R/W data using advance diagnostic messages (say DM14/15/16 for example) things will get a bit more difficult but not too bad. If you are expecting to tx or rx multi-frame packets and need the transport protocol of J1939, then things can get complex fast.
DMC recently developed a set of J1939 protocol drivers for LabVIEW which are based on the NI-CAN channel API. The drivers were written in LabVIEW just like the NI frame example, but provide functions at a layer above the base CAN channel API layer. This allows the simultaneous capture of data from both J1939 packets which are simple broadcast CAN frames, or more complex transport using BAM, including extended data frames.
I suppose something like this could be written into the realtime of the cRIO, and just pass frame data back and forth using some very basic code on the FPGA.
12-08-2010 11:29 PM
12-10-2010 11:19 AM
Please take a look at our J1939 Transport Protocol Reference Examples. This document has a collection of J1939 VIs attached to it. You may be looking for something more than this, but if you haven't seen this, take a look.
Best,
John M