I'm new with Labview and I need your Help!
Indeed, I start a project that requires a continuous acquisition with a very high sample rate.I have a NI PCI-5124 scope card.
I found an example that corresponds to my needs, that is the "niscope EX Stream to Disk" example, a trigger is set to software and is never sent to ensure continuous acquisition. The "fetch relative to" is set to the "Read Pointer" and the loop is used to retrieve the data and transfer it to a given destination on the disk continuously.
The problem is that the transfer speed is low in front of the acquisition speed when I switch to a sample rate in the order of 10 MS/s or more and the data is overwritten before they are saved, an error is given and program stooped ...Do you now how to solve that ?
For more information: our application (fiber optic sensors) will need a data rate of about 2 GS/s in continuous acquisition but before buying a more powerful card, we should validate the choice of Labview with the card we have (NI PCI-5124) with a data rate max of 200 MS/s ....
Thank you in advance!
Solved! Go to Solution.
I succeed to run the "niscope EX Stream to Dis" with a sample rate of 200 MS/s.
What do you mean about transfer speed ?
I am waiting for your answer.
Hello Cdkey !
Actually from a data rate of 40 GS/s or higher I get this error "L'erreur -1074118632 s'est produite à : niScope Fetch Binary 16.vi:640001"
With this explanation : " Les données demandées ont été écrasées en mémoire et ne peuvent donc plus être obtenues par une opération Fetch.
Code de l'état : -200004'' winch means : "The requested data has been overwritten in memory and can no longer be obtained by a Fetch operation"
So what I wanted to say by transfer speed is that the speed of Fetch Operation is lower then the speed of acquisition on the on-board memory of the scope. I am trying since few days and I'm still stuck with this problem.
I have an HDD disk drive, this is may be the reason of slow data transfer...
Do you know how can I transfer data to the RAM memory before steaming it to the disk drive ? this may help for higher date rates ..
Thanks for help!
Can you try the VI attached ? it is made for a rate greater than 10MS/s.
Have a nice day.
Thanks Cdkey for your help!
With your attached VI, I could reach the max of data rate of my scope at 200 MS/s but this is not in continuous acquisition.
With this VI, data are acquired in the onboard memory (16 M samples in my case) and then fetched by fetch operation loop.
That will make around 80 ms of acquired data and this is not enough for my application.
Have a nice day
I have done some research and you won't be able to perform a continuous streaming at 200MS/s.
For this sample rate, you have to use advanced TDMS VI to save your waveform.
Moreover, you can't reach this rate with an HDD or a RAM, you have to use a SSD with a high data transfer rate.
I hope that I helped you.
Thanks for your Help Cdkey,
I tried to increase the data rate using the example ''Fetch forever'' when we don't use Save to file operations (without streaming to disk) and I could get 50 MS/s max of data rate. I'll look for a SSD but I think that the PCI transfer bus is the most limited parameter in my case.
I don't have information about TDMS VI, I'll have a look on it, thanks!
I found also this attached example "niScope Stream to Memory Maximum Transfer Rate Single Channel" witch gives me a maximum data rate of around 100 MB/s so 50 MS/s. That confirm the bus transfer rate limitation ...
You are right, the PCI bus is limited to 132 MB/s so it will limit the rate of your application.
If you want faster communication bus, you can use the PCIe or PXIe which can reach 250 MB/s but you will need to change your acquisition card.
Have a nice day.
Actually, we decided to buy a PXIe for our application !
Have a nice day