04-03-2011 09:59 AM
Hi All,
I am attempting to control 15 positioning stages using CANOpen. The newest feature intend to add is to add emergency monitoring to handle errors etc. I have tested this with one stage and all seems to be functioning. I am using the CANOpen library functions.
Unfortunately when I expand to monitoring all 15 stages I get the following error stating that I have exceeded resource memory:
Error -1074388947 occurred at CANopen Emergency Create.vi
Possible reason(s):
NI-CAN: (Hex 0xBFF6202D) Exceeded resource limit for queues in shared memory between firmware/driver. The ncReadMult function is not allowed. Solutions: Decrease queue lengths in objects; Set read queue length to at least 2; Decrease number of CAN Objects.
I have attached a VI snippet which shows the process I am using to control the stages. Essentially I am creating a reference to each node (both for SDO and Emergency - I am not using PDO) and then am passing this through my code to refer to the correct stage. I have included a VI snippet to show how I am creating by references.
In the snippet the 4th element (index 3) in Array 3 shows this error as do all the following arrays in this index. If I change the order of creation - create Emergency loop before SDO create - the error occurs in the same place so the order does not seem to matter.
Is there anything I can change in the way I initialise my code - or indeed my whole architecture - which could improve this? My hardware is a PCI CAN2 Series2 (legacy board). My application does not require me to monitor all stages separately - is there a way I could monitor them all using just one reference/object? I tried Node 0 but this gave an error.
Regards and thanks,
Dave
04-05-2011 03:20 AM
Hi Dave,
There is a similar forum post found here: http://forums.ni.com/t5/Automotive-and-Embedded-Networks/Error-1074388947-at-CAN-Open-Object-Exceed-...
This might help,
Cheers, Tom
04-06-2011 03:49 AM
Hi Dave,
It does sound like a similar problem to what Tom linked to, I was going to point to the same resource. I would suggest checking that you're not exceeding the limit; and this KB is also helpful in determining the upper limit: How Large Can I Make the Read and Write Queues for NI-CAN?
Regards,
Imtiaz Chowdhury
Project Manager
Green Running / Austin Consultants