02-24-2011 10:44 AM
HI!
I have a simple problem probably related to Windows 7. I have a cRIO-9014 that is constantly acquiring data from FPGA through DMA. cRIO stores these data to USB HD and sends through TCP to a computer with Windows 7 OS installed. The problem is that there is a lag between data displayed on Windows 7 and cRIO. This problem is, I think caused by data processing time in Windows and time necessary to deliver data from cRIO to Win7. What can i do to reduce the delay?
cRIO reads data from DMA, checks whether there is more than 400 samples. If yes, checks if there is more than 100 000 samples. If yes stores data to USB HD and does not send it through TCP. (this is becouse cRIO usually waits for to long in TCP Write). If there is >400 and <100000 stores data to USB HD and sends through TCP (timeout 5000ms). This makes me sure that no data will be missing in DMA channel.
There is, of course, mechanism assuring constant connection through TCP with Win7 (error handling procedure, reconnecting...). But storing data to USB HD is of highest priority.
Delivering data to Win7 is also very important. How to achive both goals?
Win7: no defender, no antivirus, no firewall.
Thank You All!
03-03-2011 06:52 AM
Dear przemmo,
What version of LabVIEW are you using? I it is 2010 than you could use Network Streams instead of TCP communication. You can read more about this easy to use technology on the following link:
http://zone.ni.com/devzone/cda/tut/p/id/12267
At the end of this article there are some benchmarks as well. Try to separate the logging and communication part on the block diagram so the logging won't hang the sending of data to host. Between two loops you might communicate with the RT FIFO functions.
By the way, how big delay are we speaking about?
Let me know how things work out!
Best,
David Varga
NIH