Discussion:
Why do I get error "-1074388952" when using CANopen?
(too old to reply)
Achim
2007-12-13 17:40:11 UTC
Permalink
Hi there, I built a VI to communicate over a PXI-8461 with a servo controller from SEW-Eurodrive. I use the LV CANopen Library, please see the attached VI! When starting my application, I use the init case, during runtime I change the settings of the servo controller with the "write" case and finally in the "stop" case I close and kill all objects I previously createdThere is no communication from the controller to the PC, I only send a PDO to the controller. Although there is no "read"-function in the VI (necessary), after some time I get the mentioned error, please see the other attachment! After confirming the error dialog with "continue" or "stop", I'm no longer able to communicate with the servo controller. How can I prevent my application from hanging? And is it possible to reset the CAN-Card from within my LV 8.5 application? Currently I have to reboot the whole PC to do that, otherwise no new communication is possible...To say it with the Scorpions: "Is there anybody there who feel's that vibration?"Does anybody have an idea?Thanks in advance for any helpRegardsAchim


error.PNG:
Loading Image...


SEW_EncoderDriveControl.vi:
http://forums.ni.com/attachments/ni/30/3020/2/SEW_EncoderDriveControl.vi
DirkW
2007-12-14 15:10:09 UTC
Permalink
It seems that you have a really high BUS Load on your CAN Bus, because the board fails to handle all interrupts created by these frames arriving at the controller.
This error normally happened only to older Series 1 boards, because these boards had a slower RAM, CAN-Controller combination and less memory for buffering.
A Series 2 board should fix this issue hopefully.
 
To reset your board programmaticaly, you can use the modified VI below. If that doesn't help go to MAX, press CTRL+Shift and make a right click to your board. Choose Reset from the context menu.
When the error occurs, the CAN boad is not able to transmit a frame anymore. That may leave your CANopen node in the last state it had before the error.
 
DirkW


SEW_EncoderDriveControl[1].vi:
http://forums.ni.com/attachments/ni/30/3021/1/SEW_EncoderDriveControl[1].vi
DirkW
2007-12-19 14:40:23 UTC
Permalink
Hi Achim,
Sorry to hear that it still doesn't work.
High Busload means a lot of traffic (back to back frames) on the Bus. But you said there is nothing on the Bus besides your messages you write from time to time?
A yellow exclamation mark in MAX doesn't sound good. Could you make a right click to it to get the explaination for it?
If you get a error message telling you that a object doesn't exist, that means that somehow the handle got closed or destroyed.
I would not recommend to use the ncreset function. We obsoleted this function because its usage can lead to strange behavior. Besides that it resets the whole board instead of a single port.
Could you try to remove the NMT commands reset node and reset communication in the end of your code when you close the handles. Perhaps this puts your drive into a wiered state?
Besides that you could run the NI Spy to see what your code is doing. It logs all the API calls and you can see when a handle is opened and closed and reseted and so on. You can find the NISPY in: Start/Programs/National Instruments/NISpy
Good Luck and a happy christmas to you
DirkW

Loading...