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.
    Shakeel

    You 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 KB

    Dear 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 slow

    I 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

  • Data acquisition with highly accurate GPS time stamping (hh:mm:ss:sss UT)

    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 have one application that has requirement to do low and high speed acquisition. I want to change sample rate while running. BUT... I have E series Device

    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, CPLI

    Adding 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

    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 out

    Hi 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.

    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!
    Andrew

    Check 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

    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