Automotive and Embedded Networks

cancel
Showing results for 
Search instead for 
Did you mean: 

Why do I get error "-1074388952" when using CANopen?

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 created

There 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 help

Regards
Achim
Download All
0 Kudos
Message 1 of 7
(7,914 Views)
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
0 Kudos
Message 2 of 7
(7,899 Views)
Hi Dirk,

thanks for the answer...although it really not gets me any further.

I already use a PXI-8461 Series 2 CAN-Board! What do you mean when you say "high busload"? I have to communicate with 500kBaud because the SEW controller expects this rate. I only transmit new parameters in "single shot mode", meaning I fire new values (8 bytes) event-based (button push). As I mentioned I do not transmit any data from the controller to my LV application.

Sometimes it's also not possible to reset the board in the MAX, then there reamains a exclamation mark on yellow background on the board icon.

I still receive another error message (something like "PDO write object does not exist") when I changed nothing for quite some time and then try to transmit new parameters on an object I successfully used several times before. Sometimes everything works fine until I try to stop communication...then sometimes a error message pops up saying something similar, like "Synch Object does not exist". It must have been existed, because if not, the SEW controller would not have been working because it expects this cyclic synch.

Do you (or anyone else) have a clue?

I found the ncReset.vi in the NI-CAN library and I am going to test it ASAP. Is there any difference in the use between "your" method with the (ncAction.vi + Reset) and the direct use of ncReset.vi? I'm going to code a automatic reset with that function in the case that one of the mentioned errors occurs. Do you think it's possible to automatically reset and then reinitialize my CANopen session? Or will I get some other strange errors?

Hoping for a helpful answer:
Achim

Ahhh...before I forget it:
Seasons Greetings! Have a cheerful and happy christmas time!


0 Kudos
Message 3 of 7
(7,867 Views)

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

0 Kudos
Message 4 of 7
(7,863 Views)
Hi Dirk,

ok I wil remove the node reset and communication reset function...let's see if that helps...

But I got the strange "not existing"-Messages during Runtime, that means that until this point there was no "Clear"-Call of my VI that have possibly could have caused some trouble to the drive controller...

Is there no replacement available for the ncReset.vi? Will there be one in the (near) future?

If I have time again, I'm going to analyze the the application with NISpy...I haven't used it so far at all...

By the way:
I guess you work for NI Germany, right? I was there for an internship in the Summer 2000!

Greetings
Achim
0 Kudos
Message 5 of 7
(7,860 Views)

Hi Achim,

Wenn du dich immer noch an meine E-Mail erinnerst dann koennen wir das ganze auch off Forum weiter besprechen.

NI-Spy sollte dir aber schon die entscheidenden Hinweise geben.

Ruhige weihnachten

DirkW

0 Kudos
Message 6 of 7
(7,850 Views)