CANOpen Library - Limited number of PDOs ?

Hello,
Here's my story :
        I have a CAN network grouping 13 CANOpen nodes ( motors, I/Os, pneumatic valves ) and a NI pcmcia adapter in my PC. I use LV 7.1 and the CANOpen library to build a nice application to automate all this.
        For each of 10 of this nodes, I declared ( and I need ) 2 RXPDOs and 3 TXPDOs.
        Actually, I am facing an error message ( PDO create from CANOpen library ) saying that I've reached the software/firmware memory limit ( of the pcmcia board I suppose ) and that I should reduce the size of the PDO queues or reduce the number of CANOpen objects... For each PDO, I set the buffer size at 2 frames which is not a lot in my point of view. I cannot reduce the number of CANOpen objects because I need them...
        What is the exact limit with my hardware ?
        Can my configuration handle 4 TPDOs and 4 RPDOs for each node ( in case I'd like to ) ?
Another question :
         In my LV code, I created a cluster for each node storing a SDO handle ( CANOpen object ), 4 RPDO handles and 4 TPDO handles. I initialize them calling "create SDO" and "create PDO" at start up if I need them otherwise I let them to a default value (0). What do you think about this ? Can this be the source of the error message ?
Thanks in advance for your answer

Hi,
The CANopen Library is based on the NI CAN driver. Because of the tight timing needs for SDO communication and the need to send periodic frames some library functions are using objects for communication. Objects are able run directly on the hardware, thus they can meet these strict timing issues. The bad thing is, they are limited in number to 50 per NI CAN device. That includes one per Port configuration, thus for a 2 port board , if you configure both ports there are 48 objects left for both ports together.
The second limitation applies to the shared memory between board and driver. The driver can configure approx. 300 messages for queues for the board, shared between 2 ports if available.
Now if you know this you can calculate the number of SDOs and PDOs you can configure until the mentioned error occurs.
Ok , you are right, we need to know how many messages the particular functions configure for queues.
Thats something we find from the NI SPY. The Tool gets installed with NI CAN and allows you to log all API Calls to certain drivers including NI CAN.
The configuration api call tells us from the buffer page the size for Read and Write Queue configured with property 80000013 and 80000014. If you switch to AttrPtr. you can see the qeuesizes in hex at the same location.
Now you can see that the CANopen Interface Create allocates 100 frames for the read Queue and 10 Frames for the Write Queue. This numbers are used to read all incoming frames and write all nonperiodic frames which are not configured with objects, like the NMT commands or RX PDOs.
The SDO create takes internally 10 frames for the Read Queue only, because it needs to buffer the answers only.
The TX PDO is created as an object but does per default not use any queue internally . But as you mentioned, you can configure a buffer size, which is the same queue.
That means it is highly recommended to use one port devices or one port only for a 2 port device only, because you need 110 messages for the port configuration already.
For SDOs i would recommend to close the handle if you have used the SDO and do not need it anymore. That frees the memory (10 messages ) for other operations.
For PDOs i would recommend to use buffer size 0. That means you allways read the most recent value. I never needed a queue for my applications, but thats somewhat your decision. Within the configuration cluster you find the rx or tx PDO List control. This List triggers internally the COB ID you are using for the PDO. We configured four in each direction because it is likely that you canopen node uses these IDs which often are mapped by default.
But if you need more then 4 PDOs you can use tx PDO 1 for example more then once, but you have to enter a valid COB ID by your own. That overwrites the default COB ID.
See the attached example for LabVIEW, for details.
But back to your problem: Lets calculate, which limit you reached first. 10 nodes with  3 Tx PDOs and 1 SDO. Here are the numbers: 60 messages and 30 Objects for the PDOs 100 messages and 10 objects for the SDOs and the Port configuration with 110 messages and 1 object.
Thus you have 270 messages queue size and 41 objects.
Thats not really the limity but it is near the limit and likely to cause the error with the next configuration step.
I would  recommend the following:
1. use one port only.
2. close SDO handles after using them.
3. use PDO buffer 0.
Or use multiple boards . ;-)
Hope that helps
DirkW
Attachments:
Write and Read PDO Network Mapping71.llb ‏447 KB

Similar Messages

  • 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? 

    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:TDY 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

  • Howto build CAN-devices with CANopen Library

    Hi
    We're two students working on a project to simulate CAN devices connected to a master. We have to "build" these devices in LabView. We've been working with the CANopen Library and the Channel API.
    We would prefer to use the CANopen Library, because it is easier that way to build the device's behaviour as it would be in "real-life". But the problem is, that the CANopen Library has been developed to build a CAN Master. Is there a way to bypass that. So that we could build the other side... a CAN device.
    We figured out, that we simply could alter the COB-IDs for de PDOs, that would do it. But the whole SDO and Sync part isn't that easy to bypass.
    Would be glad if we could get a tipp
    Thank you in advance
    Ranil Wijeyratne

    Hi,
    I'm a little confused on the master/slave terminology you're using, however, as CAN (also Canopen) is really a peer bus. Any device on the CAN bus can transmit and receive messages as described below (from the NI-CAN User Manual):
    "When a CAN device transmits data onto the network, an identifier that is unique throughout the network precedes the data. The identifier defines not only the content of the data, but also the priority. A CAN identifier, along with its associated data, is often referred to as a CAN Object. When a device transmits a message onto the CAN network, all other devices on the network receive that message
    . Each receiving device
    performs an acceptance test on the identifier to determine if the message is relevant to it. If the received identifier is not relevant to the device (such
    as RPM received by an air conditioning controller), the device ignores the message.
    When more than one CAN device transmits a message simultaneously, the identifier is used as a priority to determine which device gains access to the network. The lower the numerical value of the identifier, the higher its priority."
    As you can see, you can use our CAN interface "slave" to receive commands from any other device on the CAN bus "master".
    Also the Canopen Library is just the API for LabVIEW, both CAN and Canopen ends up in Bits which then will be send to the "Listeners"! They´re just on other Layers on the Programming. But both is really easy with LabVIEW
    Hope this helps.
    Alex Rudolph
    NI Switzerland

  • What is the limited number of users?

    What is the limited number of users?

    WHile your question is a bit too vague to answer with certainty I'll start with a res[ponse and you can fine tune it if it is not what you are asking about.
    The number of users of any single product for a single user license at any given moment in time is one.

  • Question When I do a search for an image I only have a limited number of images. There used to be a ton of pictures on my screen and an unlimited amount of pictures to look through. Is there a way of changing this back to the way it used to be???

    Question
    When I do a search for an image I only have a limited number of images. There used to be a ton of pictures on my screen and an unlimited amount of pictures to look through. Is there a way of changing this back to the way it used to be???

    Thanks.  So there's no means of knowing whether a text message has been delivered, not to mention time of delivery.  Perhaps I've gone for the wrong phone.  It might do a lot but seems to miss out on some basics.

  • I want firefox to remember my library card number and pin

    i changed my library card number (same pin)...firefox will not remember my new library card number!

    Hello!
    Does it remember the old?
    If it does try this:
    Right click
    Click "View Page Info"
    Click "Security"
    Click "View Saved Password"
    Now you can see any password Firefox remembers for the site.
    Remove the old password.
    Now try go to the site and login with the new password.
    Hope it works:D
    TheVolpesDK

  • Aperture import plug-in won't run.  After examining my library the number of image files stays at "undetermined" and the import button stays greyed out.  Any thoughts?

    Aperture import plug-in won't run.  After examining my library the number of image files stays at "undetermined" and the import button stays greyed out.  Any thoughts?

    Others have the same issue, with the import button being grayed out.  My trail copy expired, but I believe by poking around in the options and selecting another Aperture library and re-selecting, I was able to continue.
    The problem is common enough, that hopefully Adobe will address.  In the mean time, try repairing your Aperture library, checking permissions, exporting a subset of your library for a test, or try putting that library subset on an external drive.  (Can usually avoid permissions issues.)

  • Why is asking a question to Firefox so difficult, and limited to a limited number of 'characters'?

    Why is asking a question to Firefox so difficult, and limited to a limited number of 'characters'?

    Sorry for the confusion; it seems as though I am the one confused--after jumping through several hoops, I thought I was sending a question to the Firefox help support...my question was about 7 characters too long to send, apparently.

  • HT201229 Is there a limited number of people/numbers than can be blocked?

    I'm just curious if there are a limited number of people that can be blocked using this new feature on iOS 7.

    I have not seen any mention of a maximum number. I've also not seen any reports of anyone hitting a maximum. If there is a limit it must be extremely large or there definitely would have been reports or complaints here by someone.

  • What kind  of  index on limited number of distinct values in a large table

    Hi all,
    can any one help me
    what kind of index on limited number of distinct values in a large table
    Thanks,

    Hi,
    it's better to do full table scan when values are evenly distributed. Indexes are good when you want to select less than 10% of all data (it depends).
    BUT you can use index when there is another data distribution - e.g. value 'Unprocessed' 1%, 'Processed' 99% (and you have computed statistics). Generally in datawarehouse you could use bitmap index, because it is small and fast, but it's not suitable in OLTP with many data modification. Then you can use b-tree index or functional index.
    create index idx on mytable (decode('Unprocessed', 1, null));This funcional index will be small and fast too, because there won't be any null values (but you must use this clause in select statement to use index).

  • How to restrict a text field to accept limited number of digits (only) with leading zeroes

    I am trying to restrict a field for accepting only limited number of digits that can have zeroes in the begining - this why I can't use Numeric field. Can anybody help?

    Hi Niall,
    Thank you very much,
    I did something like what you told me - thought I used script in ordetr to prevent entering any chracters except digits.
    In Change event I enterd the following script:
    // Restrict input to digits only - Number of digits (characters) assigned in Object Palette - Field Tab
    if((xfa.event.change != 1) && (xfa.event.change != 2) && (xfa.event.change != "3") && (xfa.event.change != "4") && (xfa.event.change != "5") && (xfa.event.change != "6") && (xfa.event.change != "7") && (xfa.event.change != "8") && (xfa.event.change != "9") && (xfa.event.change != "0"))xfa.event.change
    = "";
    This does the job.
    Thank you,
    Peter.

  • Canopen library behavior/use

    I'm trying to use the heartbeat monitor vi's provided with the CANOpen library, but I have some questions:
    It seems that previous state and current state both switch to undefined at a missed heartbeat.  Is that really what is occuring or am i just missing the intermediate state where previous state contained the actual previous value because my while loop is too slow.
    It also seems to me that the state changed event output should return to false each time a duplicate heartbeat state is received.
    I have my wait for heartbeat in a while loop (see attached) and the purpose of the while loop was to enable various events based on previous and current state, but it seems the speed of the while loop is dictated by the timeout on the wait for heartbeat vi...should I be using events?
    Thanks for the help.
    Attachments:
    CanOpen.PNG ‏16 KB

    Hi,
    You may want to try using NI-SPY to look at the commands that are being sent and received over the bus.  This will allow you to see if you are missing any states.
    Regards,
    John E.
    Applications Engineering
    National Instruments

  • Limited number (5) of mass change can be done in trade promotion of CRM 7.0

    Hi,
    our CRM system is upgraded from 5.0 to 7.0 .
    We are creating trade promotions and mass changes of status are done in here.
    There was no limited value in mass change, many of trade promotions can be massly changed in 7.0 too.
    But a new support package is dowloaded to the system, means level was 003 and now it is 005.
    After this support package load, a limited number of mass change can be done. This number is 5.
    if we select more than 5 records, an error occured and nothing can be done.
    We have to select 5 or less.
    But this is a time loss for our work and our customers, what is the reason? how can I increase the number or totaly destroy this limitation?? Please helppp !!!

    it is solved

  • How to handle large library, limited data plan

    I've been using Itunes Match for about six months now, and I'm having problems...
    I live rurally and so I use an AT&T hotspot with a 10 gig/month data plan for my phone, ipad, and desktop mac. My wireless connection speed is pretty good.
    I have about 15000 tracks in my Itunes library, most not purchased through Itunes.
    When I signed up for Match and went through the initial process, it took about 24 hours and used up about six gig, which caused a significant overage in my data plan. Consequently, I just use Match on my Mac and decided not to use it on my other devices because of the data limitations. My motivation to use it currently is as a back up for my music. I connect my phone to my mac manually to transfer some of my music to my phone.
    I figured that the data overuse problem was a one time deal if I didn't use my other devices.
    But recently, when I purchase a song from emusic or Amazon, the icloud processing image pops up after the download purchase is complete. Itunes will then start the process of sending data to Amazon, which was still going at 4 hours yesterday when I manually stopped it as I saw my data plan being used up. It seemed to restart the process of sending periodically and never got to the analyzing or returning data stages.
    Now my recently purchased music shows up with both the Icloud processing symbol and a faded download icloud icon, one for each separate track. I can play the "processing" track, but Itunes won't allow me to add it to a playlist. Further, if I'm online with my hotspot, sometimes the regular Itunes Icon is visible, but at other times the icon with the thunderbold through it. I'm guessing this means it's streaming with the first icon, playing from my harddrive with the second.
    So a couple of questions, and sorry for the length, I'm a first-time support user
    1) Does it make sense to use Match with such a large library, and limited data plan?
    2) "Where" is the music I've purchased - on my computer or in the cloud?
    3) Should it take all day to send data to itunes, when the only updates to my library are songs I've deleted and a handful of new albums I purchased.
    4) Am I using up my data plan when the regular Icloud Icon appears and I'm online? Is there a way to manually play from the hardrive to reduce use of my data plan? I turned off Match once and payed with a half-day sending and receiving session when I turned it back on.
    4) Will I lose music if I unsubscribe from Match?
    Thanks to anybody who has the inclination to respond to any of these questions!

    This datasource sends After images in delta loads which is compatible with loading to a Std DSO only. You cannot load from this datasource directly to a cube.
    You can check with business the number of years they would need history. If they need for 5 years, you could delete data older than that or Archive.
    For GL, there would not be any changes to years that are closed for posting. There may be adjustments carried out for the previous fiscal year. I guess there would not be any changes to years prior to that. So archiving old data should not affect delta.

  • Document Library limitation

    In my organization the limit for our document library is 5000 items. Is it something that is hard set by share point or it is a setting by our admin. What are the risks of expanding the number beyond 5000 item? what are the actual limits? 

    Dear Karan<o:p></o:p>
    Normally that's why Microsoft Best Practices tells about capacity planning. You can store more than 5000, but when you are going to view them in Default
    View, Even you see 30 items (by default) in view settings. SharePoint will Query through all 5000+ items to give you that 30 items. which is a additional load to the server.<o:p></o:p>
    To restrict that, SharePoint itself give you the 5000 limitation which you can change from Central Administration under List Throttling settings in
    Web Application General Settings. <o:p></o:p>
    but it will solve your problem temporary. once you reach that number, you will have same issue. <o:p></o:p>
    what you can do is based on the usage of List you can create Multiple Views which can filter your items less than 2000 ( 2000 is recommended value
    by Microsoft per view)<o:p></o:p>
    it will save your server performance, same time you can identify few columns which you can make indexed columns (columns you will use to create filters)<o:p></o:p>
    let users to use newly created views instead of giving default view<o:p></o:p>
    this is one option. <o:p></o:p>
    Creating folders and move items in to folders will give your ability to view items more than 5000, because it will give you an effect like you use indexed columns
    <o:p>Cheers</o:p>

Maybe you are looking for