04-04-2006 09:29 AM
04-05-2006 09:54 AM
Hi Rothloup,
It seems you are not reading fast enough, so you will have a backlog of messages in the memory which causes the queue overflow over time.
The only way to overcome this problem is to read more messages at the time or to filter the incoming messages on controller level to receive only particular IDs.
Sometimes it is useful to monitor the messages pending attribute to see the backlog of messages.
In any case the memory should be cleared if the ncclose is called. If not in case the programm has crashed or the close is not executed properly it can happen that the memory has old messages available. Take care in your programming flow to execute the ncclose in any case.
Hope that helps
DirkW
04-06-2006 11:39 AM
04-10-2006 09:07 AM
Hi Rothloup,
Yes thats true, the samples pending attribute doesn't work with timestamp mode. available.
It seems there is a very high busload and you still don't read fast enough.
In this case try to configure the samples to read with 10000 and read all samples available.
If this don't help, try to use the busmonitor within max to read the traffic, to get an idea how many message/Sec. you get.
Then try to adjust your while loop timing and the samples to read, to match the traffic on the bus.
DirkW
04-11-2006 04:58 AM
Hi Rothloup,
still have the problem? I also fighted with buffer overflow messages. At least for my application the solution was easy. It strongly depends on the order of initilizing hardware if you get the CAN reading working or not. Imagine you have DAQ and CAN IO processes. To empty the CAN buffer it is recommended to initialize all other hardware first and start the CAN imediately before your continous (CAN) data aquisition begins. Maybe this helps.
Bert
04-13-2006 08:34 AM
04-18-2006 01:17 AM
Hi Rothloup,
No, you don't have to read all CAN traffic (I'm sure with this). Important is, that any kind of hardware listens to your sender, otherwise the sender can go busoff after a certain time. I don't think that other meassages that you don't have specified can fill up the buffer. But this question can be answered from a NI CAN expert (Dirk).
What type of system do you have? "Normal" Labview (plus Windows) or Labview-RT? Do you have other hardware running than the CAN card? Have you any other hardware to monitor the bus traffic (e.g. canalyzer)? When does the error message pop up, immediatly after the CAN initializing or after a few samples read? Does your application runs without timestamps? Can you post a screen shot of your application?
Bert