Multi-buffered acquisition with digital trigger

I have a PCI-MIO-16E1 and I need to do three channel (250KHz/channel - ~400 scans/trigger) multi-buffered acquisition with digital trigger (trigger => 30 Hz).
I could not find any example of multi-buffered acquisition. Could anybody help me?

Hello,
I assume that you are refering to a retriggering setup where each time you recieve a trigger you take 400 samples on each channel at a rate of 250kHz per channel (total scan rate = 3CH * 250kHz = 750kHz).
In order to keep the system hardware timed you can use the two counters on the board to produce a retriggerable pulse train that will act as your scan clock. For example each time the counter recieves a trigger it will output a clock signal of 750kHZ with 400 or so pulses in order to take ~400 scans/trigger.
This clock signal can then act as the scan clock for your 3 channel analog input operation.
Now we have to figure out how to set up the retriggerable pulse train from the counters and have the analog input use the counter output as a sca
n clock.
Good thing there is an example that is already written
http://zone.ni.com/devzone/explprog.nsf/6c163603265406328625682a006ed37d/aab61e455564a04d862568930018e725?OpenDocument.
Good Luck.

Similar Messages

  • How to do multi-buffered acquisition on NI-6115

    I need to acquire multiple sequential arrays of data over a single channel using an external clock and a digital trigger (~1000 arrays total, 1000 samples/trigger, external clock frequency 500kHz, trigger frequency 250Hz). It is important that the sampling start right after every trigger, and that I do not miss any triggers. I can already do this using simple buffered acquisition with the ai start and ai read vis in a loop, except it misses triggers while the loop re-starts. Is there any way I can define a buffer large enough to hold all of the samples I need, then to have it read only the number of samples I want after each trigger into this large buffer? I don't need to see the data until the whole acquisition (1000 x 10
    00 samples/trigger) is over. Is this what multi-buffered acquisition does? I cannot find any literature on the NI site related to multi-buffered acquisition. Thanks for any help.

    So every 4 msec you get a trigger signal that should initiate a 2 msec acquisition (1000 samples at 500 kHz sampling rate)?
    There's an example of a way to use your board's counters to support retriggered analog acquisition here on the NI site: Retriggered Analog Input Example. The code may look a little complicated, but the basic idea is described pretty well.
    The goal is to make sure the timing is handled in hardware so you don't miss triggers while doing the software reprogramming. AI Start would be called only one time prior to your loop, and only AI Read would be calle
    d inside the loop.
    Just be careful about your timestamp info. The analog acq. task won't have any "awareness" of time intervals between samples. It'll be up to you to slice up the data into appropriate chunks. You can probably do this by simply requesting the right number (1000) from AI Read.
    Good luck,
    -Kevin P.

  • How do I use bidirectional buffered acquisition with handshaking on the 6533

    I would like to use the 6533 board to generate digital patterns from a spreadsheet file (transfered to a buffer) with handshaking on ports A and B. At the same time, I need to acquire digital patterns on ports C and D, also with handshaking, and transfer it to a separate buffer. I already have the two tasks working separately. However, when I put them togheter in the same Labview program, the acquisition seems to work, but the pattern generation doesn't. I also get the "Error - 10409 occured at Digital Group Config", saying that the specified group is in use.
    Is there something special we need to do to use the same board for two seperate handshaking tasks? I read somewh
    ere that the 6533 can do two simultaneous handshaking tasks, but how?
    Thank you for your help,
    Benoit

    In the DIO Config.vi you must explicitly set the 'Group' parameter for both processes (Input and output) to different values, otherwise the defaut 'group 0' will be found in use by the second DIO config executed.
    Roberto
    Proud to use LW/CVI from 3.1 on.
    My contributions to the Developer Zone Community
    If I have helped you, why not giving me a kudos?

  • Generate AO with Digital trigger

    Hello, I am having trouble outputting a continous waveform (custom multlisample channels) when a TTL - like 5V 0V trigger is applied to PFI0. The trouble is although the timing source runs continously, when the digital voltage line is connected I get only one waveform sent out, as opposed to a continous regeneration of the same waveform.
    I have been working with some conditional loops, but to no avail, is there a solution that can provide two triggers  ( one for a pulse train) and then for the digital falling edge (on at 0V) that can allow for regeneration of the AO write?
    Thanks,
    DB.
    Solved!
    Go to Solution.

    Hi DB,
    A good example for this application is a DAQmx shipping example in LabVIEW.  In LabVIEW, navigate to Help»Find Examples»Hardware Input and Output»DAQmx»Analog Generation»Voltage»Cont Gen Voltage Wfm-Int Clk- Dig Start.vi.
    You can choose to specify an external clock if you would like by right-clicking on your source input to the DAQmx Timing and selecting Create»Constant.  You can then specify where you bring in the external clock.  By default, it will use the onboard clock of your DAQ card to create a pulse train.  This example uses the parameters of the waveform to drive the sample clock timing.
    What NI DAQ hardware are you using?  By default, the card will store the waveform you wish to output otno the FIFO of the board, and regenerate the the waveform until you press the stop button.  Does this help?
    Best,
    Adam
    Academic Product Manager
    National Intruments

  • Double buffered acquisition with PCI-6031E

    For a meagre 1 channel acquisition at a sample rate of 100 Hz and buffer size of 1000, I get this message:
    "Warning -10026 occurred at an unidentified location.
    Possible reasons:
    NI-DAQ LV: The requested number of buffers or the buffer size is not allowed. For example, the buffer limit for Lab and 1200 devices is 64K samples, or the board does not support multiple buffers."
    Can someone explain the reason

    My favorite way to get this error is to accidentally wire something to the "number of buffers" input on the AI Config VI. This should be left unwired most of the time. You can also get this error if the buffer size is invalid. This would be less than 3 or greater than 2^24 for your board. See KB 1JAKLN6Q for more information.
    Finally, as a check I would run one of the shipping example programs to see if you don't get the same problem. Then you can compare your program to it. Try "Acquire N Scans.vi"
    Hope this helps!
    Russell
    Applications Engineer
    National Instruments
    http://www.ni.com/support

  • Multibuffer acquisition with PCI-6115

    I am trying multi-buffer acquisition with a PCI-6115 board. I seem to get an error (-10026) that suggests that this board does not support multi-buffer acq. does anyone know if this is so?

    By multi-buffer acquisition, do you mean doing buffered acquisition for different channels simultaneously? If this is the case, PCI-6115 boards allow this since each analog channel has its own DAC.
    Are you trying to do Analog Input or Analog Output?
    What value are you putting as buffer size?
    Can you sample one channel continuously without a problem?
    Please let me know,
    LA

  • Digital stimulus-f​requency response: Need to drive with digital output trigger. Using counters for response.

    I need to drive stimulus-response with a software driven digital trigger and NI-TIO counter based response. No analog I/O is really relevant, although I have a PCI-6035E multi-function DAQ as part of my gear. I intend to use the analog, but its timing is non-critical and can be software timed.
    The real trick is that I want to set the basic timing of the system (in the range of 1 - 50Hz) from the timer0 on the 6035E. This signal needs to be replicated to drive a trigger pulse and to route through RTSI (or a PFI) to trigger frequency counts using the four possible groups of counter/timers on the 6602.
    What I need is:
    while( enabled )
    Repeat at (
    software controllable rate = 1-50Hz)
    Trigger Sets a PFI line for 10-20us
    same trigger sets an RTSI line
    - Software Set Delay (usually zero)- stable is more important than the delay time!
    Count for software set time on 4 counters
    analog samples
    Post-process
    I want to do this in LabView. I have checked out the Advanced sychronization demos online, but the examples all use analog triggering and buffered digital I/O. This doesn't really address what I need to do.
    I have made some failed attempts which relied on software to sync up the trigger and the response frequency acquisition. This is definately flawed. I need to start the counting right after setting the digital output trigger, and stop the count after a fixed interval for frequency calculation.
    I am having trouble working through the signal routing to get the timing to trigger off the digital stimulus output pulse.
    Any help would be appreciated
    Thanks,
    Joe

    Joe
    What are you using the trigger from the 6035E for? I do not know what you mean by, "to trigger frequency countes."
    If you are having problems just routing the signal to the 6602, here is a vi that shows you how to route a signal through the RTSI cable to use as the source of a counter.
    Brian
    Attachments:
    Route_RTSI_to_Source.vi ‏67 KB

  • How do I use a push button digital trigger with my 6034E DAQ board?

    I am only a Lab View toddler.
    I am currently using a push button, wired to PFIO/TRIG1 and DGND, with a anolog trigger. However noise is causing my program to be triggered. I was told that a digital trigger would help to reduce the random triggering. How do I create a push button digital trigger?
    Thanks

    implement a schmitt trigger.
    Struggling with Labview wrote in message
    <[email protected]>...
    >I am only a Lab View toddler.
    >I am currently using a push button, wired to PFIO/TRIG1 and DGND, with
    >a anolog trigger. However noise is causing my program to be triggered.
    >I was told that a digital trigger would help to reduce the random
    >triggering. How do I create a push button digital trigger?
    >Thanks

  • How to use digital trigger with analog I/O

    How do I program analog input and/or analog output to start on a digital trigger (PFI pin) on PCI-4451/4551.
    I have tried out various configuration and succeeded in starting analog input, simultanuous input and output triggered by the the anlaog input signal. I have also succeded i triggering 4551 from the dedicated EXTTRIG pin.
    The problem is to trigger on a selectable PFI pin. I find the help for "AI Trigger Config" and "AO Trigger and Gat Config" misleading - some unsupported features seem to work while selecting PFI pin as source make the PC restart immediately.
    I have not been able to find any LabVIEW example that shows how to use PFI pin as trigger input.
    Using LabVIEW 7.1, NI-DAQ 7.3 on Windows 2000.
    Kind regards / Med venlig hilsen
    Torben

    Hello
    The PCI-4451 does not have any PFI lines. If you look at the user manual in the link beneath you will be able to confirm this by looking at the connector signal discriptions. The same is valid for the PCI-4451
    http://digital.ni.com/manuals.nsf/websearch/6A32358C53BB15F086256660007392DC?OpenDocument&node=132090_US
    The two ways of triggering that you have succeded are the analog triggering and digital triggering that you can peform with the PCI-4451.
    Regards
    Mohadjer

  • Hardware digital trigger to start stop continuous analog acquisition

    Hi I have seen the following example to use digital trigger to start and stop for finite number of samples. The example names is (DigitalStartandStopTrigger.vi)
    in this example Reference Digital edge is used to stop acquisition but if I change to  continuous then Reference Digital edge stops and show an errir. Could you please let me know how can I use hardware digital trigger to start stop continuous analog acquisition. An example would be really great
    many thanks

    HI tintin_99,
    The way that example works (by modifying the read position of the buffer) essentially performs the same operation that the continuous samples mode does. That is to say, it is already a continuous acquisition.
    The article below explains this in more detail, and the reasoning behind specifying buffer size manually and other tricks used. You may have already visited it in order to get the example VI, in which case it may be worth another read over.
    http://digital.ni.com/public.nsf/allkb/BA775B0E445BFA79482571FE0032CCEB
    Kind Regards,

  • Can PCI 6031E handle multi-buffered data acquisition

    If so can anyone send me some instructions or LabView code. Thank you in advance.

    Greetings,
    The PCI-6031E can handle single or double buffered acquisitions. The two best sources for examples and instructions are LabVIEW itself and our web site. Go to the "Help -> Find Examples" pull-down menu in LabVIEW to search for shipping examples. Look in the folder "Hardware Input and Output -> DAQ -> Analog Input -> General." Here you will find many analog input examples. Specifically, you should pay attention to the ones with "buffered" in the title.
    In addition to LabVIEW itself you will find our web site's Developer Zone extremely useful.
    Development Library
    http://zone.ni.com/devzone/devzone.nsf/6ae7945502d89dea0625685500506e1f/4d58b1b80ec41ef70625683f006e1d6d?OpenDocument
    Regards,
    Justin Britten
    Applications Engineer
    Nati
    onal Instruments

  • Multi-record continuous acquisition with PCI-5112

    Hallo!
    I need to know if it is possible to obtayn a continuous acquisition in multi-record mode.
    In "niScope EX Multi Record Fetch Forever.vi" shipping example (LV 5.1), it seems to stop when "loop index" rises to "number of records -1" value.
    I've not the avilability of the PCI5112 card at the moment, so I cannot to try on, but I need of a confirm.
    If I've well understood, I could modify the loop condition, by erasing the check on loop index, and by wiring "loop index"mod(N), to "fetch record number" attribute (let's define N as "number of records"). So I could continuously fetch the records 0,1,..,N-1, for the first cycle, and again 0,..N-1, for the second cycle, and so on.
    OK! I think that the contents of a reco
    rd number K (with 0<=K<=N-1) are different if acquired in different cycles! In this way I can obtayn a "for ever" multi record acquisition. Is it right?
    Thanks for your answers.

    NatRob,
    It sounds like you are on the right track. The only thing keeping this from running continuously is the comparison of "loop iteration + 1" to the "number of records." Other than that, the loop should only stop when an error occurs or hte Stop button is pressed. Just erase the greater than comparison and the boolean used to stop the loop and it should work.
    Regards,
    Chris Drymalla
    NI Applications Engineer

  • Flexmotion single point acquisition with Analog buffered acquisition

    I am trying to read the ADC's with a 7344 motion card using a looping single point acquisition equivalent to 50Hz. This is occurring at the same time as I am performing a buffered analog acquistion on a PCI6023 E-series at 1000Hz.
    The values from the ADC's are stored in an array, but when I view this array there are hardly any data points, maybe about 20 in total.
    I am guessing that it is because of the buffered acquisition, but can anyone help me understand this problem a little better? Can I accomplish what I have described?
    Thanks
    Chris

    I checked and the Read Position VI loop runs properly while the motion profile is running (without any analog acquisition through my 6023E card).
    Likewise, with no read position loop, all the analog acquisition with motion runs properly.
    I have attached a simpler example that I tried, so that there was no triggering involved. The analog acquisition runs, and I find that the Read Position VI loop only starts displaying once the analog acquisition is finished (after 2000 samples/ 2 seconds).
    It seems that it cannot do the two processes at once and that the analog DAQ on my 6023E card has priority over the Read position loop????!!!!???
    The example is in LV5.1.1 format
    Any help would be much appreciated!
    Chris
    Attachments:
    simultaneous_DAQ_on_6023E_and_reading_7344_flexmotion_(simple_example).vi ‏149 KB

  • Getting timestamp for analog acquisition with NI6110.

    When I use the AI Read VI to get a waveform containing a sequence of scans, the waveform has a timestamp that presumably represents the absolute time of acquisition of the first scan as measured using the system clock. (I can't find any documentation on this, by the way. Where is this documented?) I notice that the AI Read VI can alternatively be used to return a "binary" array of measurements. For various reasons, I prefer to use this form of the AI Read VI, but I'd also like to get the timestamp that would be included in waveform returned by the waveform version. However, I don't want to call the AI Read VI twice, one time to get the binary array and a second time to get the whole waveform just so that I can g
    et the timestamp. Is there a way to get this timestamp without getting the whole waveform?
    Thanks,
    Neal.

    Thanks for replying.
    I'm performing digitally triggered, buffered data acquisition with my 6110E, with the possibility of pretrigger sampling. The data I'm acquiring may extend several second before and after the trigger. Furthermore, my application may call the AI READ VI at some unpredictable time several seconds after data acquisition is complete. I'm assuming that the timestamp that would be returned as part of the waveform by the AI READ VI (whose exact nature appears to be undocumented) is calculated from the system clock at the time at which the digital trigger occurs, and wouldn't depend on when the AI READ VI was called. The article you referenced doesn't tell me how to do what I want. I want to get EXACTLY the timestamp that the AI READ
    VI would include with waveform data, were it asked to return waveform data, but I want to use it to only return binary data. To the best of my understanding, the method described by the article for a obtaining a timestamp when binary data is retrieved provides no guarantee that the timestamp obtained will be the same one that would be returned as part of a waveform by the AI READ VI. Indeed, using the "Get Date/Time In Seconds" VI would seem, under the circumstances in which I would use it, to produce a timestamp that differs unpredictably from the time of the trigger by seconds.
    Thanks,
    Neal.

  • Important question: I have got a PXI-4472 and I am able to do single-channel acquisition. How does multi-channel acquisition work?

    Look at the VI: it is quite eleborate, but the crucial point is Data Acquisition and Trigger&Gate (and, consequentely, Write to File operation).
    I can add plot on the Waveform Graph DATA, this is rather easy, simply adding the channel numbers in the channel control (es. writing 0,3,7 will collect data from the three channels).
    First question: is this operation of adding plots correct?
    Second question: does the sampling rate dwindle when I consider multi-channel acquisition? I mean: 1 channel-->100KHz ; 2 channels-->50 KHz
    More over, and MORE IMPORTANT: is it possible to set different trigger conditions for different channel
    s? How can I control this operation?
    Third: can you have a look at the VI as all (the appearence, the functionality, the logical sequence...). I am looking forward to get your advice. In particular:
    Look at the frontal panel: what do you suggest to make it "smaller"? More tab controls?
    Look at the Block Diagram: do I have to connect ERROR IN and ERROR OUT to every suVI or function that makes this connection possible (as Trigger&Gate and Write File)?
    Attachments:
    Start&StopTrig_SpectralMeas_style+image.vi ‏700 KB

    First: yes, the operation is correct.
    Second: yes again. When you consider a multi-channel acquisition, your sampling rate must be shared among the channels.
    Third: when you specify a list of channels you want to acquire from, the channel considered for analog triggering is the first you put in the list.
    Connect the error clusters whenever you can,in particular when you are dealing with I/O operations.
    Bye!

Maybe you are looking for

  • I have two Photo Stream icons on my iPhone. How do I delete one of them?

    I have two Photo Stream icons under Photos on my iPhone 4. One is active (receiving photos taken within minutes) and the other one has not been updated for atleast 2 weeks. I would like to remove the one that isn't receiving any new photos. Help. Bes

  • What is happening in the program?

    Hi friends, i was going through this program, and i could not understand why its not printing anything. class A {      String str1 = "";      String str2 = "";      String getA() {           return str1;      void setA(String s) {           str1 = s;

  • Trying to change the country from my apple account!!!and doesn't allow me to!

    Hello, i'm trying to change the country of my apple account to get in to the istore online from my country and the system doesn't allow me to. It says that i have to buy something for $0.43 that i have on my account but i've never buy or anything b4.

  • Importing video from sony handy-cam?

    I have an older sony handy-cam, model DCR-HC20, that I wanted to transfer video from to my imac for editing/storage...also, I have a new project I am working on. So, the handy-cam has usb and fire-wire, but my imac doesnt recognize it when plugged in

  • How to extract war file

    how to extract war file? explain technoloby behind in war