Automotive and Embedded Networks

cancel
Showing results for 
Search instead for 
Did you mean: 

NI CAN + CanOpen Library limitations (same as Copley?) - explanation?

I've been reading that LabVIEW CANOpen Library and NI CAN cards have a 50-object limit and up to 300 can message buffer limit, in which if these limits are reached, error messages will insue.
 
Does this hold true for using the Copley CMO?  Instead of creating my own PDOs and transmitting SDOs, Copley offers an object library which does many of these thinigs for you while the user picks actions from a drop down menu (relative move, absolute move, etc). 
 
Does the above limitation hold true for ANY Can hardware used by LabVIEW?  If we do not use Labview's CANOpen Library but use a different vendor CANOpen library (but a Ni CAN card), do we still see these limitations?
 
---------
 
Also, I had a chance to create 50 nodes (objects) and was able to repleatedly send commands to about 6 simultaneously with an issue.  Would I have not reached my object limit in this case? 
0 Kudos
Message 1 of 4
(6,282 Views)

These two limitations apply whenever you use NI-CAN boards with the NI CAnopen Library. But it sounds worse then it actually is.

You can use the NI Spy to see when the Library uses an object. It configures something like CANX::STDY where X is the CANport number and Y is the ID.

The library uses objects for all periodic or unique tasks, like NMT(one Object), RTR PDOs(one object per PDO), SDO(two objects), Error management(one object per option), Sync(one object).  The 300 messages issue only applies if you use the PDO buffer which is not often the case because most of the time you want to have the most recent data and therefore you would use the queue size 0.

DirkW



Message Edited by DirkW on 01-08-2008 08:08 AM
Message 2 of 4
(6,275 Views)
This is not an issue with other CANOpen libraries (such as CMO from Copley) whilst using Labview and NI-CAN hardware?
 
When using NI-SPY, I can see the opening of the CAN port and ID as mentioned.  I had some trouble deciphering the AttrID or how exacltly to determine how many objects were open.  Do all objects open initially, or do they open as they are called and removed once closed?  If they are dynamically created, how can I use NI-SPY to track open objects?
 
Thanks for the help.
0 Kudos
Message 3 of 4
(6,270 Views)

If Copley uses the NI-CAN they have the same limitations, but may have used a different approach for configuring the services. it could be that they don't use objects at all.

If you know wich services create objects in your code, because you found the CANx::STDy syntax in your spy log, you could count the instances in your code to see how many you are using.

The object is closed and can be reused if you call the CANopen Close VI for the particular service handle.

DirkW

0 Kudos
Message 4 of 4
(6,255 Views)