Discussion:
NI CAN + CanOpen Library limitations (same as Copley?) - explanation?
(too old to reply)
dre99gsx
2008-01-07 22:10:05 UTC
Permalink
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? 
DirkW
2008-01-08 14:10:07 UTC
Permalink
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.
DirkWMessage Edited by DirkW on 01-08-2008 08:08 AM
DirkW
2008-01-09 15:10:08 UTC
Permalink
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

Loading...