11-25-2012 03:00 AM
Hi,
I'm using: X-NET NI PCI-8512. OS: Windows 7. C++, Qt environment.
Network flow rate: ~240Hz and suppose to get ~960Hz.
I'm using an internal timer to read all network flow with nxModeFrameInStream mode. ThE system suppose to run at least 10 consecutive days, but after about 10 hours I get this message:
"NI-XNET: (Hex 0xBFF6300B) A read queue overflowed. Solution: reduce your data rate or call Read more frequently."
I'm try to pool the data every 5-10 msec, but it's do not make the job.
1. What is the recommended polling rate to work with in this circumstances?
2. Can I get the queue free space, and to raise the polling rate when it close to be overflowed?
3. Other ideas?
Thanks for advance,
Aviad
Solved! Go to Solution.
11-26-2012 04:42 PM
Hi, the PCI-8512 is a NI-XNET CAN Interface so this article may be relevant.
11-29-2012 09:31 AM - edited 11-29-2012 09:31 AM
Hello Aviad,
I got a quick question to do some maths 🙂
How many frames are you expecting to read every call ? Let's assume you're working at a 200Hz rate. The driver and the transceivers used with NI-XNET can read a frame not up to 2kHz. That said, if you expect to read more than 10 frames at 200Hz, the queue will still contain a couple frames that will not be read before the next Read operation has to be performed. Little by little, the input queue is filling up, until it gets an overflow.
Also, if this is not an issue, you might consider increasing the determinism of your application by moving on to a real-time application that might just be more reliable than a Windows app for extended run-time such as 10 days.
Regards,
Eric
Eric M. - Senior Software Engineer
Certified LabVIEW Architect - Certified LabVIEW Embedded Systems Developer - Certified LabWindows™/CVI Developer
Neosoft Technologies inc.
12-02-2012 02:39 AM
Thanks Eric! Your answer is VERY useful.
I will keep your RT suggestion at my mind.
Thanks again,
Aviad