06-21-2017 07:08 AM - edited 06-21-2017 07:16 AM
Hi.
I am working on a RT-Taget for a fast data acquisition under the use of LabVIEW real time module.
The RT-Target which I am using has a NI PCI-5114 digitizer card and the CPU has 2 cores.
The basic idea is to trigger the data acquisition with an 8 kHz signal. So that the Target has to acquire every 125 µs a signal, with a duration 40µs from 2 channels with a sampling of 100MHz. The 8kbyte sized data, which is stored on the Digitizer, has to be transferred to RAM of the RT-Target between two trigger events.
Which implies a needed bandwidth of 64MB per second.
I am using Ni Scope Vi’s to initialize and to initiate the read out the channels and fetch the data within a timed loop with a frequency of 1MHz.
By watching the Iteration duration of the timed loop, I can see that the system needs ca. 300µs to transferee the data to the RAM of the Target.
Is there a possibility to minimize the transferring time by the use of other Vis?
Thank you very much
06-22-2017 11:53 AM
Only two cores, eh? On a 4-core machine, I'd reserve a single core for the Timed Loop and do everything else with the other cores.
The Conventional Wisdom (which I am not challenging) is to use RTFifos to get data from a Timed Loop to another loop, and if it need to go somewhere else (like to another VI), transfer it with a pre-allocated Queue. Don't know what you've done -- code wasn't posted.
Bob Schor