High speed sampling with analog trigger

I am a new user of DAQ card and I need to sample the analog signal with a high speed.
I will use a sinusoidal-like wave to trigger the sampling and set a voltage around the peak of trigger wave with rising slope. When the voltage arrived, I only sample one point from CH0 or CH1. The frequency of the trigger wave is about 5MHz and I heard the LabView only works at KHz level. Is it possible to use LABView to realize my application?
If it's possible, would you mind telling me how to realize? Or if it's not possible, would you mind telling me what to do? My DAQ card is PXI-5112.
Thank you very much!!!

Hello amo71993,
I guess in this case the solution is creating the little app programatically, save it as a VI and the use it as a function (subVI). Nevertheless I will be researching to see if there is another option and I will post it here.
Regards.
 

Similar Messages

  • Capturing only one sample after analog trigger on a PXI4461 in Labview SignalExpr​ess

    Hi
    I capture two waveforms (external excitations) with my PXI446, one on each AI. I use one of them as an analog trigger (rising edge @ some voltage), lets say AI0. I need the value of AI1 at the time (or fixed # of dt's afterwards) when the trigger occurs. I need just that one sample.
    (Practically I use the 4461 as sample & hold circuit that has AI1 as an input signal and AI0 as the "sample" signal.)
    Currently, I use a "subset and resample" step with a very small dt and it seems that it works but I dont like it.
    The procedure above is within a conditional loop that collects 100 of these samples (acquire signal triggers 100 times) and produces a statistic of this ensemble (using the Statistics step).
    Is there a better way to do this?
    Thanks,
    Aleksandar Andreski
    Solved!
    Go to Solution.

    You should post questions about SignalExpress in
    the SignalExpress
    Board.

  • Buffered high-speed capture with multiple axes

    Has anyone succeeded in using buffered high-speed capture (on 7350 boards) with multiple axes?
    The capture works really well for me on a single axis, but when I try to use it on 2 axes simultaneously it behaves very strangely.  There seems to be some kind of unwanted interaction between the two buffers which means data points are lost and they often stop updating altogether.
    A very similar question was posted here over a year ago (http://forums.ni.com/ni/board/message?board.id=240&thread.id=4087), which includes a more detailed explanation and an example VI.  Can anyone help?  I'm using LabVIEW 8.5 RT with NI-Motion 7.6 and a 7358 board.
    Thank you,
    Ian

    Hi Ian
    I have been asked working with kostas on this problem for you and just wanted to give you an update as I know its been a while and is an important issue for you. I have been chasing up our specialists in the field and resently had responses of  the kind:
    "Hi Graham
    The issue was found out to be a bug in our motion driver. The issue is being examined by motion R&D right now. I do not know a time frame on when this will be fixed as it is proving to be a tricky problem. I am copying Stuart and Lorne on this since they have been working on it as well.
    Thanks,"
    Be assured that I am chasing it as closely as I can. From your end what is the situation, do you have a work arround that will suffice or are you still waiting on this.
    Thanks for your understanding and I look forward to hearing from you with your current situation.
    best regards
    Graham Green
    Technical Marketing Engineer
    National instruments UK & Ireland

  • Frequency measuremen​t with High Speed Digitizer using External Trigger

    Hello:
    I have a

    Hello Brooks:
    Thank you for attention !
    I will try to explain my application:
    I need to measure a signal of a speed/position sensor. This sensor works with hall effect principle and is placed in front of a wheel with some teethes. Is used for automotive purpose in CAM and CRANKSHAFT applications. So, I need to measure period, duty cycle, rise time, fall time, Vpp, Angles for each teeth x encoder, everything from 40 to 7500 rpm.
    I'm using CH0 to measure a signal of this speed/position sensor.
    I'm using CH1 to measure a signal of an encoder connected to wheel.
    I'm using EXT Trigger to sync acquisition with encoder's INDEX signal.
    I need to measure the frequency of EXT trigger to know the instantly speed of the wheel.
    So, If I know that my encoder has 2048 pulse/rev, I can measure FFT_FREQUENCY of CH1 with scalar measurement functions and calculate the speed !
    The NI-Scope is wonderful because it can measure a lot of things automatic and fast, like period, frequency, duty cycle, rise/fall times ...
    Now I have one more question:
    I want to use 10:1 attenuation but I can't use a common probe. I want to connect the CH0 to sensor with a special connector.
    I've tried to make the same circuit with 9MOhms and capacitor like explained on site, but I reached bad results. The industrial probes has special characteristics for capacitance and noise rejection.
    Do you know how can I solve it ?
    Thank you.

  • Frequency measurement with High Speed Digitizer using External Trigger

    Hello:
    I

    Hello;
    That is happening because you are doing Software timed operation, and since Windows manages all tasks that runs on the machine at any given time, your VI might take different times to execute, and that might be enough for you to miss some pulses.
    The best way to do that is by using a 660x board, and have three counters doing the job. The firts counter can be configured as the first pulse train generator, the second counter can be used to generate a pulse that will trigger the third counter of. That pulse will be generated when the delay of 90 degrees is reached. So, the second counter will count events and will be triggered of by the pulse train generated by the first counter.
    The third counter is configured as triggered pulse train generator, and t
    he output pulse of the second counter is used as the trigger pulse for the third counter.
    If you don't use that approach, you won't be able to reach fast speeds and might also miss some pulses, due to the Software timed approach.
    Hope this helps.
    Filipe A.
    Applicaions Engineer
    National Instruments

  • Generate a delayed pulse with analog trigger

    I want to generate a pulse with counter when the gate of counter receives a voltage value which is generated by analog output chanel,is this possible??
    I am using PCI-6713
    Thanks!!

    You can generate a triggered pulse in a counter by sending a signal to the gate from the Analog output, as long as such analog output meets the operational contitions of the counter of the PCI-6713. Just make sure that the signal does not exceed 5V. The trigger on the gate pin will be taken as low from 0 to 0.8V and as high from 2 to 5V.
    Thanks for contacting National Instruments!

  • Pretrigger samples with keyboard trigger?

    Hi,
    I am very new to Labview, so this may not be a difficult problem but I can't find the solution. I have built a vi to record sound using the NI USB-6251, but I would like to obtain a certain number of samples prior to a trigger. I see in the DAQmx Reference Trigger VI that there is an option for pretrigger samples, but the only way to trigger this VI is via a signal into one of the channels. This does not work for us because we wish to record all 8 channels at the maximum sampling rate. I was wondering if there is an option for some kind of manual trigger (such as a key or mouse click) to obtain pretrigger samples?
    Thanks,
    Hannah

    Hi,
    This is the general method I would suggest:
    You could use an Event Structure to read a mouse click or keyboard button press, which in turn, when the event is triggered, would then set a digital output (for example) on your 6251 high, which would be wired into the trigger input for the 6251. This would then start the triggered acquisition. If you have any other questions regarding this I'll be happy to answer them.
    Regards,
    Dan - NIUK

  • High Speed Streaming with Multiple FPGA FIFOs and TDMS Advanced Asynchronous (Data Ref)

    I am using an FPGA with adapter card (7962 with 5751) for data acquisition and signal processing. I have adapted the FlexRio example "High Throughput Streaming," which works very well for a transferring data from the FPGA via a single FIFO. This example uses the TDMS Advanced Asynchronous Write (Data Ref). The "High Throughput Streaming" example is similar to "Streaming External Data to a TDMS File (Windows)" but includes more code to prep the FIFO buffer size and TDMS size.
    My question is how can I adapt this code to incorporate multiple FIFOs that write data to different channels in the TDMS file? Can I use multiple instances of  TDMS Advanced Asynchronous Write (Data Ref) in a single VI for each FIFO Acquire Read Region? If so, how do I insure that the correct data is written to the correct channel in the TDMS file?

    Thank you DeppSu for your explanation, I will look into that.
    But first, I want to be sure that the FPGA and the Hot general designs are correct, which for the moment I am not sure. So I have included my code.
    I tried the Host vi several times, and it seems that it works sometimes and sometimes not, like there are some communication problems between the fpga and the host on the "read acquire region" method which is not executed. I managed to make it work randomly before, but not now. Maybe it is because of the reset that I added?
    If someone could check my code and help me, I would really appreciate it since nobody in my workplace has the expertise to do so :-) If you see some obvious mistake, please share with me, I also added some comment boxes in the code with questions.
    Delphine
    Attachments:
    thoughput.zip ‏1261 KB

  • Onboard Wait On High Speed Capture

    I would like for an onboard program to wait for a high speed capture signal from a trigger input. Unfortunately, I have not had success with the flex_wait_on_condition function; it has always timed out before detecting the event. However, calls to the function flex_read_hs_cap_status identify that the high speed capture line is indeed toggling faster than the 3 second timeout. I use the following sequence of functions to configure the high speed capture:
    flex_configure_hs_capture(m_BoardID, NIMC_AXIS2, NIMC_HS_LOW_TO_HIGH_EDGE, 0);
    flex_begin_store(m_BoardID, ProgramNumber);
    flex_enable_hs_capture(m_BoardID, NIMC_AXIS2, NIMC_TRUE);
    flex_wait_on_condition(m_BoardID, NIMC_AXIS2, NIMC_WAIT, NIMC_CONDITION_HIGH_SPEED_CAPTURE, 0, 0,
    NIMC_MATCH_ANY, 30, 0);
    flex_end_store(m_BoardID, ProgramNumber);
    Axis 2 is configured as a open loop stepper axis with encoder resource 2 mapped to it.
    Any thoughts as to why this wouldn't work?
    Thanks!

    Thanks for the suggestion. It seems to work fairly well, although there is some delay between the trigger event and the execution of the critical section of code.
    Are you aware of a method to speed up execution of an on-board program? The critical section of code in the attached program fragment takes about 4ms to execute. With the added delay of the polled high speed capture line, I am limited to a ~150 Hz loop. I would like to increase the execution time by about twice.
    Also, a command from the host computer seems to preempt the on-board program, causing it to take up to ten times as long to complete. Is there a way to set the priority of the on-board program task above host communication?
    Thanks for you assistance,
    Mike
    flex_insert_program_label(m_BoardID, LABEL_LOOP_START); // main program loop
    flex_read_hs_cap_status(m_BoardID, NIMC_AXIS3, DATA_HS_CAP_STATUS); // check if high speed capture triggered
    flex_and_vars(m_BoardID, DATA_HS_CAP_STATUS, DATA_HS_CAP_STATUS_MASK, DATA_HS_CAP_STATUS_MASKED); // AND high speed capture with trigger 3 mask
    flex_jump_label_on_condition(m_BoardID, NIMC_AXIS3, NIMC_CONDITION_EQUAL, NIMC_FALSE, NIMC_FALSE, NIMC_MATCH_ANY, LABEL_LOOP_START); // if trigger 3 not triggered, jump to main program loop
    // Critical Section Code >>>
    flex_set_breakpoint_momo(m_BoardID, NIMC_AXIS3, 0x08, 0x00, 0xFF); // set digital output high
    flex_enable_hs_capture(m_BoardID, NIMC_AXIS3, NIMC_TRUE); // re-enable the high-speed capture
    flex_read_adc(m_BoardID, NIMC_ADC1, DATA_ANALOG_INPUT_1); // read the analog input
    flex_write_buffer(m_BoardID, ANALOG_INPUT_BUFFER, 1, 0, &UselessLong, DATA_WRITE_TO_BUFFER_NUM_PTS); // write the analog input to the buffer
    flex_read_buffer(m_BoardID, VELOCITY_PROFILE_BUFFER, 1, DATA_VELOCITY_CMD); // read the next velocity profile point
    flex_load_velocity(m_BoardID, NIMC_AXIS3, UselessLong, DATA_VELOCITY_CMD); // set the axis velocity
    flex_start(m_BoardID, NIMC_AXIS3, 0); // update the velocity by calling start
    flex_set_breakpoint_momo(m_BoardID, NIMC_AXIS3, 0x00, 0x08, 0xFF); // set digital output low
    // <<< Critical Section Code
    flex_jump_label_on_condition(m_BoardID, NIMC_AXIS3, NIMC_CONDITION_TRUE, NIMC_FALSE, NIMC_FALSE, NIMC_MATCH_ANY, LABEL_LOOP_START); // jump to main program loop
    flex_end_store(m_BoardID, ProgramNumber); // stop program store

  • LabVIEW 8.5 high-speed camera

    Hi,
    I'd like to take many
    high-speed images with a camera, and save them to a disk, or my computer's hard drive. I congfigure the camera (it is a Pulnix TM-6740cl camera) with the Measurement and Automation Explorer (MAX.) I take the pictures with LabVIEW. I've found an example program in LabVIEW that is close to what I want; it was written by two members of this forum, N_Holmes and reut. The only differences between that program, and
    the program that I'd like to run is that I need to be able to change
    the shutter speed of the camera (although I believe that I can do this
    with MAX), I'd like to be able to change the target
    directory (for some reason, if I change the directory with the reut
    program, the camera only takes 1 "frame" and stops), and I'd like to be
    able to save a file for each frame taken by the camera (I can only get
    the reut program to save 1 file.) I have LabVIEW version 8.5. If you
    could help me out in any way, then that would be greatly appreciated. Thanks!
    Attachments:
    grab images and Save to FileReut-11.vi ‏67 KB

    Hi Bolin,
    I'm using an NI PCI 1426 with NI-IMAQ, 18MB. Thanks for your previous help. I've actually worked on the program, and I got the camera to take multiple pictures. I also incorporated a part in the program that decodes the raw bayer image that this camera outputs.
    I do have some other questions, though. First of all, I'm not entirely sure what you mean by "trigger." I use the computer to take the pictures; MAX configures the camera, and LabVIEW sends the signals to the camera to take the pictures, and then saves them on the computer. Also, I know this is probably a bad question, but I'm not 100% sure where in MAX I can look to find out what framerate I'm acquiring at. I'd like to acquire pictures at the camera's maximum framerate, which I believe is somewhere over 1000fps. I tried many different methods in order to capture at the maximum framerate, and the best option seemed to be at the settings: manual shutter, shutter setting 0, 4X4 binning. However, my pictures were of extremely poor quality, and they were very dark.
    Also, where can I go in MAX to change the shutter speed? I've tried changing the shutter control setting and the shutter setting number; I just want to verify that this is correct.
    Thanks again for your help! Once I can figure out how to make these pictures take at maximum speed, and at the best quality, then I can finally start on my project!

  • PCI 6025 analog trigger capabale?

    Hello
    Is the PCI 6025 capable of being triggered by an analog signal? I get this
    error while running the demo program
    error -10403 deviceSupportError The specified device does not support the
    requested action (the driver recognizes the device, but the action is
    inappropriate for the device).
    Thanks
    lvilla

    Thanks I found the example for CVI and is sure works. One moe thing, If the
    function times out the system becoms sluggish. Is there a way to increase
    this timeout value?
    Thanks
    LVilla
    "Filipe A." wrote in message
    news:[email protected]..
    > Ivilla;
    >
    > That device you have doesn't support such operation.
    > What you can do to workaround that fact is to configure the DAQ task
    > to do Conditional Retrieval. That is sort of an analog trigger, the
    > difference is that the NI-DAQ driver compares the input values to the
    > specified trigger level, as opose to the hardware, as it is on boards
    > that supports analog trigger.
    >
    > That would make the acquisition a little slower, since every point
    > needs
    to be checked by the driver. If you need faster acquisition than
    > that, you will need to purchase a board with analog trigger
    > capabilities.
    >
    > Hope this helps.
    > Filipe A.
    > Applications Engineer
    > National Instruments

  • LabVIEW pulnix tm-6740cl high-speed imaging

    Hi,
    I'm working with a pulnix tm-6740cl camera, and my goal is to take high-speed photographs with it  (multiple photographs per second.) I use MAX to modify the device settings, and then run the labview program. The LabVIEW program that I've attached should work, but I can't find what's wrong. It should take photos and then save them to a specified directory, but when I run it, it doesn't save any photos. I've heard that this may not even be the program at all, but that it may be that I'm trying to acquire too many photos at once and my computers memory can't handle it. If anyone could lend me some help, then that would be great!
    Attachments:
    LL Sequence2.vi ‏72 KB

    Hi mb056145,
    I downloaded your VI and had no problem running it.  What happens if you attempt to save just a few images?   How many images were you hoping to save?  I was able to save 100 images without a problem.  I tried to save 1000 and got a memory error.  I would suggest placing a indicator on the output of the IMAQ Configure Buffer VI.  This way you will be able to see any errors that come up creating the buffer.  If I create say 1000 images I get an error for the IMAQ configure buffer and the program just ends.
    Adam H
    National Instruments
    Applications Engineer

  • Neighbors Have High Speed Internet but Systems Says Not Available

    Hello,
    I have been trying for the past week to get High Speed Internet with Verizon.  Two times I received an email saying… Although your line qualified for High Speed Internet service during the initial phases of the order process, unfortunately, we are unable to provide you with Internet access on your line ending in 0602 .
    I live in a small subdivision on the outskirts of Colonial Beach, Virginia with approximately 500 homes.
    I have two neighbors, one on each side of me i one  would be the closest to the substation) and another neighbor about one block past my house.  The second neighbor drives past my house every day to get to their house.
    I spoke with a local Verizon employee who told me the computer was turning down the High Speed Internet because of distance and that I needed to have someone at the local office, over-ride the automatic turn down so that it would be installed.  After the second computer automated turn down, I spoke with Eric – he said to give the next tech this information – Acct Number XXXXXX  Order Number XXXXX at the DSL Technical support so we could get this resolved.  The DSL Technical support guy was NOT interested in obtaining the account number or Order number Eric gave and said either the Router was filled or I was too far from the Loop.  I explained the neighbors and it still didnot seem to matter.  He was foreign and we did seem to have a significant language barrier.  He then transferred me back to Sales. 
    Over and over I requested to speak with the actual Local Office in Warsaw, VA so I could be given a reasonable explanation.   I spoke with a woman who said the two neighbors were closer to the loop than me.  When I asked how this was possible if I am in the center of the two she said maybe it was because of a curve in the road?  She also said she was the local office but was not able to tell me where that office was located so obviously it was not the actual "local" office.
    How can I get someone to physically come out and determine why I cannot get High Speed Internet?  Who can I contact to make a formal complaint.  
    Thank you for any input.

    Here, maybe, is a FAQ that explains why
    http://www.dslreports.com/faq/1214
    All DSLR (.dslreports.com) FAQs » Verizon Online DSL FAQ » 3. General » Verizon says no DSL, but neighbor yes?
    If you are the original poster (OP) and your issue is solved, please remember to click the "Solution?" button so that others can more easily find it. If anyone has been helpful to you, please show your appreciation by clicking the "Kudos" button.

  • Pushing the limits of continuous high-speed DAQ + processing, with PXI-6115 + PXI-8360

    Hi all,
    I'm trying to do continuous high-speed data acquisition + processing. I currently have:
    Chassis: PXI-1042Q
    AI card: PXI-6115 (x2)
    Link: PXI-8360
    PC CPU: Intel Xeon W3503 (dual-core, 2.40 GHz)
    RAM: 4 GB
    The idea is to continuously grab 8 channels' worth of analog inputs, scan for "events", and if found, log the events to disk.
    My client would like to use the maximum sample rate of 10 MHz, but I found that above 5 MHz, DAQmx Read.vi can no longer keep up (e.g. at 6 MHz, it takes 110 ms to read 100 ms' worth of data).
    Im thinking of getting beefier components, but I'm not sure where the bottleneck is. Here are some thoughts:
    1) The MXI Express link
    The PXI-8360 is rated for a sustained throughput of 100 MB/s.
    I'm not sure how big the data is. PXI-6115's ADC is 12-bit. Does that mean each datum transferred through the MXI cable is 1.5 bytes? Is the data padded? Or is it 8 bytes per datum, because Dbls are being transferred?
    2) The CPU
    In Resource Monitor, I notice that the CPU usage is 0% at 60 kHz, 8% at 61 kHz, and 50% at 70 kHz (meaning that one core is maxed out). I'm surprised that it keeps up all the way until 5 MHz though.
    What causes this high CPU usage? Is it due to the conversion of the data into 1D array of waveforms?
    3) Something else?
    Have I missed something completely? Is what I'm describing even possible?
    Thanks in advance for any advice!

    Hello,
    Each sample will take up 2 bytes, 12 bits data + 4 empty bits. so the PXI-PCI 8360 is only able to transfer a maximum of 50S/s in this case.
    Also, because the PXI bus is shared among all of the cards, two PXI 6115 cards will be trying to transfer 80MS/s or 160MB/s.
    Finally, since the PXI 6115 are DAQ family cards, their specifications aren't really written for continuous data acquisition at the upper end of their sample rate, but I'm interested to know if you can get up to 10MS/s with only one card operating at a time?
    -Jim B
    Applications Engineer, National Instruments
    CLD, CTD

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

Maybe you are looking for

  • Black image boundry lines when placing image in Illustrator

    I am making a business card in Illustrator 6. I placed an image of my black signature with transparent background on the white background business card, and now it is leaving a box were that signature image canvas ends. This happens with both a .psd

  • Order Book

    When I click "Buy Now" then appear text "Unable to Assemble Book * -[NSPlaceholderMutableString initWithString:]: nil argument" Can somebody explain me what is wrong? How can I buy a book?

  • DMM 5.2.2 7835H2 migration to DMM 5.4 VM

    Hi all, We are currently running DDM 5.2.2 on an MCS 7835H2 server and are using DMP 4400's only.  We are looking to migrate to DMM 5.4 as using our Software Upgrade Contract.  I have been reviewing the migration options/upgrade options and understan

  • Best Practices for dashboards using Query Browser

    Hi, As aligned with business requirement, dashboards are using Query browser to fetch data from universes built on SSAS cubes. The issue here is it takes around a minute to initially load the dashboard which is very long as per requirement. Can I fin

  • Project wont connect as EXE, is it LVOOP?

    I've been through huge arcfhitectural changes in the past few weeks, and finally settled on a starting point. I decide I'll start by building an EXE to talk to my Delta Motion RMC75. The drivers for this are Plug and Play certified and I've used them