Getting high data acquisition rate (Under 1ms)
Hello,
I'm having a bit of trouble with data resolution when taking voltage measurements from my photodiode. I have been collecting data at about 1 point per ms and I need to be collecting at a resolution greater than this (however my actual needed resolution is not yet known as the signal is currently buried due to resolution problems). I'm currently using labview version 8.6 to collect data from a ThorLabs PDA36A amplified photodetector (resolution of 17MHz) running to a NI BNC-2110 and then to a PCI-6143 card with a 250kHz resolution. I've attached the code below.
The one item of interest that I have noted is that I am able to select the frequency of data collection in the DAQmx_read.vi properties however whenever I run the code all it spits out is one point per ms. With any frequency higher than 1kHz (which is the default) the data output occasionally puts 5-6 data points at one time each time being on ms apart.
Any help will be appreciated.
P.S. I've attached both files which I use to check our data. The Light Sensor is the file that collects the data, the Read File file just spits out a graph after I've saved the information. I've tried to speed this code up as much as possible and am now convinced code speed is no longer an issue and that the problem lies elsewhere.
Message Edited by Luminescence9 on 05-19-2010 02:44 PM
Attachments:
Light Sensor.vi 17 KB
Read File.vi 51 KB
On your DAQmx Timing vi, you need to specify the source input to Onboard Clock. Otherwise you have no timing source. On your DAQmx Read vi, set the polymorphic selector to Single Channel - Multiple Samples - Waveform. Then use the Get Waveform Components to get dt. This gives the time interval between samples. You can use the same Get Waveform Components to get Y, which is the same 1D array of data as you get in your original code.
If you use the Waveform data type, you can wire it directly to a Waveform Graph and eliminate the top loop altogether.
- tbob
Inventor of the WORM Global
Similar Messages
-
How to externally time data acquisition rate
I have Lab-PC-1200 card and Labview 5.1. I will like to read the signals from a Hamamatsu linear detector array that has 1024 pixels on it. The trigger (or sample) rate of the detector can be modified over a range covering 1 MHz to 15.625 kHz.
I use the 'Acquire N Scans ExtScanClk D-Trig.vi' (written by a NI staff member) downloaded from the web. If I set the trigger rate of the detector to 15.625 kHz (the slowest possible), the program runs without any problem. However, if I use a faster trigger rate (say, 31.25 kHz) no data is collected. According to the specs, the maximum data acquisition rate of the Lab-PC-1200 card is supposed to be 100 kS/s. How do I solve this problem?I've answered my own question. The solution lies in disabling the internal channel clock and connecting the triggering clock to the EXTCONV* port of Lab-PC-1200 card to fire the channel clock. The scan clock should be timed with an even faster external clock from the detector. Ultimately, it is the channel clock that is important, not the scan clock. The lab-PC card uses the channel clock in conjunction with the number of channels to set up internal gating pulses which of course become the limiting factor. The external triggering clock connected to the channel clock cannot be faster than the speed of the card (in my case, it's 100 kHz).
-
Getting System Data Sources' Names under Windows
Hi,
How can I get the names of the System Data Sources in Windows from my java code?
Thank you.
ShakeelYou can't. At least not using plain Java. You could use JNI to get that information, I expect. But it's more likely that if you asked your first question (the one which you decided had the answer "Get all the DSNs") you might get more useful help.
-
Data acquisition synchronisation Arduino/LabView
Hello,
I'm trying to acquire force sensor values using an Arduino board (reading the data and controlling a motor) and LabView. The data acquisition rate is tunable according to the motor condition, meaning a high acquisition rate (short delay) during the ON state of the motor and a low acquisition rate (long delay) during the OFF state of the motor.
I managed to acquire the data, but till now I always find some "0" values though I'm applying a continuous force on the sensor. I guess the main problem is the synchronisation of the "datarate" on the Arduino board and the acquisition time point in LabView.
I hope that you could halp me, since I'm trying since weeks to overcome this problem. You will find both the LabView and the Arduino source codes in the attachment.
Attachments:
CBR control_opti.vi 206 KB
CBR_Arduino.docx 15 KBDear all,
last week I had some limited time, which I could dedicate to my work with Labview. Unfortunately I'm not able to solve the problem with the Consumer/Producer architecture. It seems to be the appropiate solution, but due to my limited knowledge I'm not capable of doing that.
I will add my modifications (CBR control_Prod-Cons.vi) to give you an idea about what I've achieved so far. I appriciate any help of you, since this story is driving me crazy. Additionally, I attach a JPG showing the readout I'm obtaining with the old version (CBR control.vi), where the red circles indicate the problem with the "0" values.
Thank you again,
Cheers
Attachments:
CBR control_Prod-Cons.vi 203 KB
sensor read out.JPG 164 KB
CBR control.vi 206 KB -
Data transfer rate Airport Extreme
which is the data transfer rate of the USB port in the Airport Extreme (4ta. Generation)...???
The HDD installed in that port, reads and writes very slowI executed the test and I have a rate of data transfer of 1.9 escrtura of Mb/s and 2.7 reading Mb/s…. this is very under… What I can do.?
I even reinitiated the Airport and itself with the problem. I directly tested with the ports of iMac, and have DRT of 25.8 and 18.4 Mb/s
Ok, I am assuming that your measurements are in Mega Bytes per Second (MB/s) and not Mega Bits per Second (Mb/s). Even so, I would agree that you are getting low data transfer rates.
What is the make and model of the USB HDD that you have attached to the AirPort Extreme? Is it formatted in HFS+ or FAT32?
Also, the 25.8 & 18.4 readings when you have this drive attached directly is a bit low as well. I would expect something more like: 35 MB/s (read) & 25 MB/s (write) for a USB 2.0-connected HDD. -
Problem with data acquisition and motion control
I have PCI-6024E and PCI-7342 cards on a single PC. Servo motion control works fine when it goes alone or is accompanied by one point data acquisition in a while loop, but when I start data acquisition with specified sample rate, the motor moves with breaks.
Does anybody know what is the problem? Is it possible to fix it?How are you performing your motion? Is it a position move or a velocity move? How are your triggering the data acquisition? Using breakpoints on the 7342? If so, are you using single breakpoints or modulo? How are you configuring the data acquisition rate? Are you triggering just the start to the acquisition and the unsing the daq scan clock or are you using the motion controller to send the scan clock itself?
-
Cannot get high transfer rates with PCI-6534
I am using a PCI-6534 in the Pattern I/O mode for performing data acquisition. The data rate I am getting for reliable data is about 2MS/s. I need 8MS/s, but do not get reliable or correct data at this rate. According to the 653X User Manual the benchmarked rate is 20MS/s, but I seem to be getting nowhere near this.
How is your memory?
http://digital.ni.com/public.nsf/3efedde4322fef19862567740067f3cc/101ad216bd2b692286256a48006a986c?OpenDocument
Ben
Ben Rayner
I am currently active on.. MainStream Preppers
Rayner's Ridge is under construction -
A research group has developed a data acquisition system dedicated to daily observations of solar phenomena at radio waves using high time resolution (5-100 ms).
First, the analog signal from the antenna (1000-2500 MHz) is sent to a spectrum analyzer (HP8559-A). After that, the analog signal is digitized during 5 minutes in a NI USB-6009 device connected to the PC, before to be stored in a file. By that time, other acquisition data cycle is restarted and so on up to the end of day.
However, we need timestamp (UTC) the solar data at the beginning and end of each sample of 5 milliseconds, during all acquisition process, in order to have the UTC time information of recorded solar events. So, a time resolution of at least 1 ms is required.
A software permit us to read recorded data and visualize corresponding spectra during last 5 minutes. However, we need UTC time information in the format hh:mm:ss.sss UT. Then, UTC millisecond is important for us, but not available yet.
To solve this problem, we are searching for a high accuracy timing GPS receiver (on the order of microseconds or nanoseconds), with at least three significant digits of precision (UT time in milliseconds) and which give us the UTC signal at least each 5 milliseconds or even better (1 ms). However, most GPS receivers only outputs 1 PPS (Pulse Per Second = 1000 millisecond).
Then, we are open to a better addressing on how to solve this problem !!
We know that GPS time synchronization with PXI-6608 can be used to precisely timestamp data acquisition, but we have to solve this problem with a lower cost. Also, we require a PCI interfacing instead of PXI.
Do we have to use a timer card? How do we use a timer, GPS and USB-6009 to timestamp data acquisition? Does the NI PCI-6602 solve the problem?
Obs:
The data acquisition software was developed in C++ Builder to run on a PC (Pentium III 2 GHz) under Windows XP environment. We used the NI-DAQmxBase driver to sample the signal from the NI USB-6009.
We are sure your expertise can help us on this matter.
Regards,I better explain my problem in the thread How to timestamp continuous analog data acquisition using USB-6009 and GPS timing board?
We are considering to use the PCI-1588 or a GPS timing board (low-profile slot too), but I´m not sure that the USB-6009 can be used to solve the problem.
How to syncronize the data acquisition and timestamps using USB-6009 and PCI-1588 with external GPS?
In other thread I would appreciate any suggestions for GPS timing board and PCI-1588 too.
Regards,
Lilian -
I am writing control software for a process that is usually dull and
requires only 10 Hz acquisition rate. At particular times during
the sequence, however, we are interested in looking at a couple of
channels at 1000 Hz. My approach so far is to configure my
Buffered DAQ to run at the higher rate at all times. When we are
in the 'high-speed DAQ' mode, the program logs every point to
disk. In the 'low-speed' mode, I am picking off every nth (in
this case, 10th) point to log to disk. At all times, I update my
GUI indicators on the front panel at a maximum of 4 times per second (I
find that anything faster results in an uncomfortable display), so I
fill up a FIFO with data in my acquisition / logging loop, and read the
FIFO in the display loop. The data in my GUI display can be up to
250 milliseconds off, but I find this acceptable . As a side note, I
need buffered Daq with hardware timing, as software timing results in
lost data at 1000 Hz.
This all works fine and dandy, but I am convinced that it is not the
most elegant solution in the world. Has anyone developed a
buffered DAQ loop where the scan rate can be adjusted during
operation? I would like to change the rate of the E-Series card
rather than relying on down-sampling as I am now doing.
The reason I have concern is that at the moment I am simulating my AI
using MAX and when running the down-sampling routine, I consistently
miss a particular event on the simulated data becuase the event in
question on the simulated data always occurs at the same 'time', and I
always miss it. Granted, while it is unlikely that my measured
signal and my acquisition are perfectly synchronized in the real world,
this particular situation points out the weakness in my approach.
More than anything, I am looking for ideas from the community to see
how other people have solved similar problems, and to have you guys
either tear apart my approach or tell me it is 'ok'. What do you
think?
Wes Ramm, Cyth UK
CLD, CPLIAdding to Alan's answer:
One of the problems that comes with these tricks for variable-rate acquisition is being able to match up sample data with the time that it was sampled.
If you weren't using either of E-series board's counters, there is a nifty solution to this! You'll be using 1 of the counters to generate the variable-rate sampling clock. You can then use the 2nd counter to perform a buffered period measurement on the output of the 1st counter. This gives you a hw-timed measurement of every sampling interval. You would need to keep track of a cumulative sum of these periods to generate a hw-accurate timestamp value for each sample.
Note: the very first buffered period measurement is the time from starting the 2nd counter until the first active edge from the 1st. For your app, you should ignore it.
-Kevin P. -
High Accuracy Analog Input,Data Acquisition Modules questions
At present,i produced a Data Acquisition Modules,but work not well,pls give me some suggestions.i produce according to a product from USA,but i only produce one channel.pls check the link.
http://www.sun-yuan.com/english/readnews.asp?id=71
Thanks for your help.pls send to my email:[email protected]I haven't done this with NI-DAQmx, but I assume Read.vi works the same way as it does with traditional NI-DAQ. The way I do it is to give Read.vi the number of samples that it will read in 1 second. For example:
4 channels, 1000 Hz, read 4000 samples in Read.vi
All you have to do to accomplish this is multiply your scan rate and number of channels and pass the answer in as the number of samples to read. It will always read a second of data, even if it gets behind on one iteration of the loop it can catch up on the next. I also use a Wait Until Next ms Multiple and wire like 400 to it as not to bog down the CPU. Then you can just keep track of the elapsed time and stop the loop after 24 hours. Just be sure to clear the acquisition after the loop now that you're using a continuous acq, otherwise the buffer will overflow.
As I said, this is how AI Read.vi works for traditional NI-DAQ, I'm not positive that DAQmx Read.vi works the same way, but I don't see why it wouldn't.
Message Edited by Marc A on 01-16-2006 05:07 PM
Message Edited by Marc A on 01-16-2006 05:09 PM -
Hi I newly started using Iphone 6, I am not getting all the applications list under Use Cellular date for to restrict my unwanted apps on cellular data
Please help me outHi Rajesh778484,
Welcome to the Apple Support Communities!
I understand that some of your applications are not appearing under Settings > Cellular on your iPhone so that you can restrict or allow use of cellular data. If you have some installed applications on your iPhone that are not showing here, the first troubleshooting step I would suggest would be to reset your iPhone. Please refer to the attached article for information on how to perform a reset.
Restart or reset your iPhone, iPad, or iPod touch - Apple Support
Best regards,
Joe -
has anyone else had a problem with data? after updating my phone to the new update, i have all this data, and keep getting notifications that my data is getting high. i never had this problem before.
fair enough. No need for any unnecessary posts either. You issue had been addressed ad nauseum already in this forum had you bothered to search this forum (as forum etiquette would dictate) before posting.
In any case, I hope that your problem was solved. -
Writing data from two different acquisition rates into one file
Hi,
I'm using a compactRIO, and I have an anemometer outputting data at 4Hz to the serial port on the controller, and I am using a 9237 module to read strain from two channels at 40Hz. I would like to record all this data in one file, but I'm unsure how to have the data points match up with respect to time since they are read at different rates. Basically I have 10 strain data points for every one anemometer data point, but that one data point needs to somehow be associated with the other 10 read in the same amount of time. It would be okay to "extend" the slower data to the 10 strain points, and likewise to the next ten when the anemometer refreshes its values.
Thanks for any input!
AndrewCheck out the Queue multi-plexer vi from the examples. C:\Program Files\National Instruments\LabVIEW 2009\examples\general\queue.llb\Queue Multiplexer.vi
If each data acquisition loop enqueues data to one file writing loop the data is writen in order. Queues are really a good way to multiplex data sources
Message Edited by Jeff Bohrer on 01-29-2010 09:44 AM
Jeff -
Buffered Data Acquisition at different rate
Hi,
I have a pb with my data acquisition : I'm using a PXI-4472 AI card and continuous acquiring data to file.
Until now all channels are acquired at the same frequency : Ok. I know this card does not support multi-frequency acquisition.
But I want save data at different rate : ex : first channel at the frequency desired (ex 10 KHz), second channel at frequency /2 : 5 Khz ... to reduce amouth of data in the saved file.
I know the amouth of data retrieve et each AI-Read (ex 2048 scaled data / channel), and the frequency divisor / channel.
What's the best way (performance) to process the scaled data tab (2 dim) from the AI-READ to save it in the file (using Write File +) with frequency divisor consideration.
And how to re
ad the data in the saved file after.
Can you send me an example please ???
Thanks
Eddy DUCHENE
12 F Chemin de Boutary
69300 CALUIRE ET CUIRE
[email protected]Hi kdm,
please stick in one thread for the same topic!
Best regards,
GerdW
CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
Kudos are welcome -
how to use ni-6008 and build a four channel data acquisition at a rate of 250 samples per channel and display all the data in a waveform chart
Hi kdm,
please stick in one thread for the same topic!
Best regards,
GerdW
CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
Kudos are welcome
Maybe you are looking for
-
How to manipulate static string / text in HTML through Javascript
Hi, Sorry I know this is not the perfect place to ask about HTML. But I need help somehow. In simple i am creating a website in JSP and using Javascripts. The problem is I have a HTML form where the user have to enter Login Id and Password. If user e
-
How to set imgae/photo size in a OLE word
Hi, I am developing a OLE object to extract data from SAP system into a MS Office word documnet. I am downloading image from application server to presentation server and displaying it on word documnet using create object g_wordobj 'Word.Basic' . cal
-
Imporing QT movies but set poster frame doesn't remain in iWeb
I've "set poster frames" in the Quicktime movies that I am importing into iWeb. They appear properly in my working iWeb file but the poster frame I've set doesn't remain after the site is published. The Quicktime poster frame goes back to black. Anyw
-
Had to replace my hard drive how do i get my music back from itunes
i had to replace my hard drive how do i get my music back from itunes
-
DW 11.0 Build 4993 - why can't I use Design view with an HTML file?
Subject line basically says it all: I started a new HTML file, but I can't switch to design view. Anyone have any idea why? Thanks!