Discussion:
nct ReadTimestamped returns error bff6211a
(too old to reply)
VI Guy
2008-03-20 18:10:08 UTC
Permalink
Hello Dirk,Yes the mode is Timestamped Input.SPY log attached.Also, included is a VI to help parse the log file.Message Edited by VI Guy on 03-20-2008 12:49 PMMessage Edited by VI Guy on 03-20-2008 12:51 PM


NI Spy Capture of nctReadTimestamped failure.zip:
http://forums.ni.com/attachments/ni/30/3292/1/NI Spy Capture of nctReadTimestamped failure.zip


NI-SPY Capture Log for nctReadTimestamped Analyzer.vi:
http://forums.ni.com/attachments/ni/30/3292/2/NI-SPY Capture Log for nctReadTimestamped Analyzer.vi
DirkW
2008-03-21 15:40:12 UTC
Permalink
Hi,
It seems that having 28 tasks for the same message somehow causes a problem, that when the driver trys to read the first task again it runs into a overflow situation.
Is this allways happen on Task 1?
In your initial post you mentioned that you have 32 different channels in 3 messages. Why shows the log file 33 tasks then?
If you configure a task for every channel in the message the driver internally copies every received message as a copy to every task queue. That means if you have 28 tasks for the same message and you receive a single message the driver creates 28 copies for this message. It seems that the driver is busy doing that and your first task overflows.
Because this happens in the background you do not have any influence on it. It could be caused whenever the driver has problems to allocate memory fast enough. (Fragmentation, other windows tasks)
 
You have two options here.
The first and easiest would be to modify the queue size for the overall receive memory. That could help. At least you could try it.
Go to your National Instruments/NI-CAN/bin folder and open the nicanopt.ini file. Within the [Internal Channel Queue] Section change the value for "NI_RQL=" to 150 for example.
Perhaps that helps to avoid the overflow.
The second option is to create one Task per message. If you read timestamped, thats the most performant way to do receive your data.
The bad thing is that you have to deal with the two dimensional arrays of cluster. ;-(But the best solution would be the one task per message option because it fixes the root cause.
 
DirkW
 
 

Loading...