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

Similar Messages

  • Vertical setting during continuous acquisition with NI5112

    I need to change the current vertical range configuration during a continuous acquisition.
    Is it possible without data loss?
    Or I have to stop the acquisition?
    Thanks for your answers.

    Thank you Annette, your answer allows me to understand some details about PCI-5112 board.
    I need to acquire continuously data at 2 Msample/sec for 10 minutes at least, without loss, and signal level can slowly change during the acquisition (es. a sinusoidal amplitude increasing from 0.5 to 2 V into 10 minutes).
    It’s important to adjust the vertical setting due to use all the dynamic range.
    I’ve used “niscope Fetch&Save Forever.vi”, performing a single channel continuous acquisition with 8-bit fetching data (“1 channel acquiring – 1 channel fetching” example).
    Fetch operation is inside the loop, while all the configuration ones are outside, so if I want to change a configuration parameter, I have to exit from the f
    etching loop, stop the acquisition (with “niscope abort.vi”), set the new parameters and finally restart the acquisition, with a necessary loss of data.
    I thought a second way: “2 channel acquiring – 1 channel fetching”.
    If I have well understood, I could acquire the same signal from both the channels, configured with different vertical settings (es. +/-1V and +/-2.5V respectively), so I could fetch data from the better vertical range channel only.
    In this mode I perform an effective vertical setting (but in 2 steps only) during the continuous acquisition without data loss.
    First question:
    Is it right? Is the last example (2 ch. Acq. – 1 ch. Fetch) more expensive with respect to the first (1 ch. Acq. – 1 ch. Fetch) in terms of PC and/or OS resources?
    I have inserted the PCI-5112 board in a Pentium III, 128 Mb RAM, with Windows ME OS.
    Second question:
    Sometimes, during the fetching operation, the board stops the acquisition (I see
    noise only), and it’s necessary to make the shutdown of PC, before to see the signal again!
    Is it necessary a reset (with "niscope Reset.vi")? Is a Windows ME bug? Is a board failure?
    Thank you in advance.

  • 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

  • Help implementing mouse multi record select deselect with shift/ctrl click

    Forms 10.1.2.3 on Solaris Sparc 64 bit
    We are trying to implement mouse multi record select/deselect using shift and ctrl click. I have read that you need the appcore library to do this but because we aren't using Oracle Applications (EBS) we can't have the appcore library.
    Has anyone implemented this function without the appcore library?
    Thanks

    Why not just use a CheckBox to indicate the selected records? The downfall to almost all methods is that you end up looping through the block to see which records are selected. An alternative to this is to use a record group to record which the selected records. I created a nice little wrapper package to work with Record Groups (RG). Take a look at Forms - Record Group Processing (Duplicate Value Checking). As the name suggests, this example demonstrates how to use an RG to perform duplicate checking, but you can easily adapt the process to keep track of selected records. I use RG's for this all the time. By using the RG, it eliminates the need to LOOP through the datablock - which can be very time consuming. Instead, you loop through the RG and only navigate to the specific records you need too in order to process that record. Looping through the RG is much faster than looping through the block - especially if you have a lot of records displayed in your block.
    Hope this helps,
    Craig B-)
    If someone's response is helpful or correct, please mark it accordingly.

  • Mac G4 crashes using continuous generation with PCI-1200 DAQ card

    I've been trying to use a PCI-1200 DAQ card with a Mac G4 to create a continuous analog output signal. The problem is that the computer locks up after a while (a few minutes). I have been using the Generate Continuous Sine Wave vi, but the problem remains.
    I've tried slow signals (10Hz) and fast signals (2kHz) but the computer still seems to crash. I have no clue what is going on!

    bissdp,
    The first thing I would recommend is making sure you have the latest version of the driver:
    www.ni.com > Support > Drivers and Updates > Current Versions > Multifunction DAQ
    Another you could try is to determine what component is causing the computer to lock up. Use a process explorer utility to try to see what processes are locked up. A search in google might turn up utilities like this one: (http://www.clarkwoodsoftware.com/peekaboo/)
    Keep in mind heat or speed issues. It may sound funny, but you may want to try opening the computer case and making sure the board has enough air flow to keep it cool.
    These are just some ideas for now, I hope they help.
    Alejandro Asenjo
    Applications Engineer
    National Instruments

  • Why ACK should be deasserted sometimes during the data acquisition with PCI-DIO-32HS burst mode handshaking?

    My peripheral device sends 32-bit data to the DIO board serially with PCLK 6MHz, about 300,000 times totally. The phenomenan like I mentioned in the summary above happens, and it causes some data missings.
    Though I know ACK is not always asserted as somewhere in the NI database says, I want to know why it happens. if I can. I wonder if it is just inevitable or not.
    Do I only have to add some buffer memories to my device and make it watch on the ACK changing? Or, is there any other good way to avoid this problem?

    Hi,
    Burst mode handshaking protocol needs to conditions to be meet before data can be transfered. The PCI-DIO-32HS need to be ready to transfer data and the external device needs to be ready to transfer data.
    The ACK line tells the external device when the PCI-DIO-32HS is ready and the REQ line tells the PCI-DIO-32HS when the external device is ready. When both are ready data should be transfered. This is the nature of Handshaking, guarenteed data transfer (when both devices are ready), but not at a guarenteed rate. Handshaking means that the two devices communicate with each other to determine when to transfer data.
    The PCI-DIO-32HS ACK line is toggling low because the PCI-DIO-32HS is busy catching up with the given transfer and is not ready to receive m
    ore data at this time. The ACK line is not something you can control, it is controlled by the PCI-DIO-32HS.
    Your application may be better suited for use with Pattern I/O if you are not using the handshaking lines, ACK and REQ, to control the flow of data. Pattern I/O does not use handshaking lines and clocks data in on every rising edge of the clock. You may receive an error if your system can not keep up with the transfer rate.

  • 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

  • Multi channel continuous DAQ acquisition

    Complete newbie question here. First time using Labview so I apologize for asking this question: Is it possible to have multi channel contiuous acquisition? If so, does this have to go through a circular buffer to prevent tying up all the computer memory? Can you vary the scan and read rates for each channel? Last question: If it is possible to do all of the above....how do you do it? I've attached a .pdf file with screen shots of my front panel and block diagram....it's extremely crude just trying to get some basic concepts down. Also if anyone can recommend some good books on actually doing the wiring and conditions of the various elements, I'd be extremely grateful. Currently I have "Labview for Everyone".
    Attachments:
    DAQ.pdf ‏33 KB

    Hello,
    It is possible to have a multi channel continuous acquisition and it does use a circular buffer. Please check out the Continuous Waveform Acquisition Tutorial for more information about how this is done. With our DAQ devices you can use different sampling frequencies as long as they have a common divisor and the sampling rates remain within the device specifications. There is an example of that called Multi-Rate Continuous Analog Input.
    The example finder is always a useful place to look for ideas on how to make a VI. In LabVIEW, go to Help->Find Examples and you will open up a browser that will allow you to look through many examples. You can also check out the LabVIEW Zone Learning Center where you can find a book listing under the fundamentals section.
    Hope this helps!
    Laura F.

  • Multi-record / spread table...moveable fields in designer generated form

    Good morning all;
    I hope you are doing good...
    Imagine a multi-record block layout with it's overflow property set to spread-table to accomodate 10 varchar2(25) fields. Now, of the hundreds of users working with this generated form, not one of them wants to see the fields in the same order on the screen.
    What i would like to do is generate the form from designer so that a user could 'drag'n drop' let say, field #10 to the field #2 spot on the screen. Something like windows explorer where you can move the 'Size' column around so it is viewable without having to use the spread-table bar at the bottom of the screen...
    Any idea on how to generate this form from designer?
    Thank you and wish me luck!

    I don't know a solution, but I think a solution could be easier found if it was a read-only block. You did not specify that. Then maybe you could dynamically change the query behind the block.
    Good luck, Paul.

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

  • How to call a report with a bind variable from a multi-record block

    Hi,
    I have created a report using the BI Publisher functionality. I did all the integration, created the SQL Query and uploaded the template. Up till here everythings fine!
    My SQL Query has 2 bind variables.
    I will call my report from a multi record block, at the end of each record an icon is shown which the user can click to open the report.
    I created a column link for this item (PRINT_REPORT=Inschrijvingsformulier) but I do not manage to pass the parameters to my report. The parameters I want to pass are 2 columns in this Multi Record block.
    I created 2 hidden fields on the page P9_PARAMETER1, P9_PARAMETER2 with the same names as my bind variables and fill this in with the values #PARAMETER1#, #PARAMETER2# from the multi record block.
    It seems it does not work as my report stays empty. (also XML file stays empty).
    Am I trying the wrong way?
    Thanks for any advice,
    Kris

    hi khadeer,
         create one report program and write the required code,and call this function module 'SSF_FUNCTION_MODULE_NAME' and give your smartform name  and also when u activate ur smart form u will get one function module call that function module also and specify any tables used...
    i think this solves ur problem...
    any queries revert back..
    pls reward points if helpful,
    shylaja

  • How can i build a portlet with multi-record fields

    Hi
    I am building an application and some of my forms need to capture multi-records fields,for example like Developer Forms does with Grids
    Can anybody send me an example to do this?.
    Thanks

    This is what I did in our application.
    1. Created a Master Detail Form (Custom Layout and not tabular)
    and in the master block selected only one field.
    2. In the HTML layout for master removed the reference for
    that field(so that nothing will appear in the master block
    of the form).
    3. Before the update (in the Pl/SQL event handler selected the 'Save' event and written the following code to avoid updating master block).
    p_session.set_value(p_block_name => 'MASTER_BLOCK',
    p_attribute_name => 'MASTER_ACTION',
    p_value => 'None');
    doSave;
    For eg, let's say
    Master is from 'Dept' table and Detail is from 'Emp' table(with join condition Dept.dept_id = Emp.dept_id). In the master remove everything except dept_id field and in the HTML layout for master remove the reference of the dept_id field(you cannot remove this field physically from the master layout). Now the form will look like multirow form rather than master detail form but only problem with this workaround is 'Detail Action' will be present in the detail block.
    I hope this will help you.
    Thanks
    -Krishnamurthy

  • When using the record function for narration in Keynote 09 version 5.1.1., the recording continually gets off sync with the slides even if nothing has been altered on any of the slides.

    I am trying to record narration for my slideshow in Keynote 09 version 5.1.1. I put the transitions on automatic and hit the record button, then read the slides as they advanced. The program allows me to record my voice, however, when I play the slideshow back the recording continually becomes more off sync with the slides with each play. Is there a way to fix this?

     Hi,
    One of my ex-colleagues has installed a NI-DAQ 6.5 in our system. [And I do not see any other naitional instruments card in the CPU of the computer, may be he removed it] I deleted the account and all his files in the system. When I am trying to install version8.0, its not getting installed and giving me a message that I should uninstall the previous version by going to Add/Remove programs in the control panel.
    I tried doing that, but the "Change/Remove" button does not seem to work...[There is no response and so unable to install the new version...]
    Any idea how can this problem be solved?
    It is a windowsXP operating system with SP2 installed on a machine with P4 processor.
    Thanks

  • Continuous in- and output with PCI-6229

    Hi All,
    I'm currently evaluating a PCI-6229 card on RTX (and maybe InTime later on). The main goal of the evaluation is to prove we can get hard real-time, deterministic behaviour from this system in order to use it to replace our current DSP-based solution.
    To do so, I'm setting up a rather simple program that should
    - continuously acquire 1 channel @ 20kHz
    - have a processing loop of 5mSec, ie 100 samples; this loop should be entered every 5mSec as exactly as possible
    - do some simple processing in the loop (thresholding the signal)
    - bring out the result on an analog output (low signal if signal is under threshold, high signal for all samples above the threshold)
    I could get the basics working pretty quickly: continuous input, continous output, continuous input with dma, input using interrupts.
    Trying to combine everything isn't really working out however.. Normally I'd try and try until knowing the device inside-out but now I have a rather strict timeframe so hopefully someone here can provide some insight.
    Questions:
    1. For the input, I can get an SC_TC interrupt each time one frame is scanned. I measured this on a scope by toggling a digital output on the card, and there's no noticable jitter on the squarewave which is a good sign.
    However I'd like to combine this with DMA, but the DMA is lagging a bit on the interrupt so I end up having to poll the DMA after all in the ISR, so there's no use using the interrupt in the first place.
    Is there a way to set up continuous DMA servicing and get an interrupt from the DMA system itself after 100 samples are transferred?
    2. For the output, I cannot get continuous mode working with DMA, only by writing to the FIFO manually. I can preload a couple of frames with the dma, but after calling aoStart(), tDMAChannel::write() works once, but all calls afterwards return kBufferUnderflow. Any ideas?
    I probably have to check when exactly to write to the DMA, but I have no idea which of the many status functions to use. Tried with AO_Status_1.readAO_FIFO_Half_Full_St() but that's not it. tried to write it on each UC_TC interrupt but that didn't work either.
    3. DMA is, to my understanding, a more performant way of getting samples into the host and doesn't require to call AI_FIFO_Data.readRegister() in a loop and vice-versa for the output side. But are there really benefits in using DMA?
    4. I made a basic program to bring everything together the simplest way possible: preload 100 samples in the output FIFO, start analog input, start analog output, have the ISR copy all values directly from input to output FIFO.
    Putting both analog signals on a scope, I expected to see the input and about (see question5) 5mSec later the same signal on the output, with no jitter.
    However what I see is the output is just floating around, in other words there is no fixed delay between output and input! How is this possible? I use the same divisor for in-and output. Is there any sample code available that achieves what I want?
    5. Is there a way to start both input and output at the exact same time, eg at the same edge of a certain clock pulse? How are input and output synchronized? Can I be sure they never go out of sync?
    Solved!
    Go to Solution.

    update: looking at the DAQmx control samples, it seems some of them set the start trigger for the AO to the AI start trigger. I mimicked this using kAO_START1_SelectAI_START_1 with the aoTrigger method, and the sync seems better now: the output starts exactly 10mSec after the input (or 5, if I preload only one frame) and stays in sync for about 25mSec. That it goes wrong.
    At the moment I'm using no DMA, just one simple interrupt routine that basically does
    board->Interrupt_A_Ack.writeAI_SC_TC_Interrupt_Ack( 1 );
    board->Interrupt_A_Ack.flush();
    toggle ^= 1;
    board->Static_Digital_Output.writeRegister( toggle ? 0x00 : 0xff );
    for( u32 i = 0 ; i < numSamples ; ++i )
      const u32 val = board->AI_FIFO_Data.readRegister();
      board->AO_FIFO_Data.writeRegister( val );
    In the screenshot in the attachment you can see this goes wrong: cursor A shows the position of the input signal (=AI 0, yellow) that should be shown 10mSec later at the output (blue line=AO). Cursor B shows this 10mSec later position, and you can see there's some garbage right after the cursor. This is the data that was written to the AO FIFO in the fifth interrupt (interrupt position show in purple).
    Trying to figure out where that comes from, I put board->AI_Status_1.readAI_FIFO_Empty_St() in the interrupt loop. And effectively, when trying to read the 500th sample, it reports that the FIFO is empty. Consequently the data written to the AO FIFO does not make sense anymore. But I do not understand how can this ever happen? The SC_TC interrupt is fired whenever 100 samples are read from the input. So after this interrupt occurs, the FIFO should always contain at least 100 samples, no?
    Attachments:
    tek00000.png ‏22 KB

  • Fill a multi record block with a for-loop

    Hi
    I've got a simple question but I couldn't find a solution yet.
    I have a multi record block and behind this i wrote a post-query-trigger with a cursor and a for-loop. Now I try to show each record of the for-loop in the multi record block. The loop works correctly, but the problem is that I only see the last found record of the loop in the first multi record and I'm not able to go to the next multi record when the loop finds more then one record.
    I tried to use NEXT_RECORD but then I got the error message "100500: non-ORACLE exception".
    May someone help me? Thanks a lot!

    What exactly are you trying to do? If you are simply trying to display the result of a query in a Multi-Record Block (MRB), I would recommend basing your block on the query (From Clause Query) or if you are simply displaying the contents of a table or a view in the block, base your MRB on the table or view and let Forms handle displaying the records.
    The Post-Query (PQ) trigger will execute for each record displayed in the MRB, which I'm sure is not what you intended. Since the trigger fires for each record, your loop is essentially assigning the value of each row in the cursor to the same row in the MRB.
    Hope this helps.
    Craig...

Maybe you are looking for

  • How can I move selected photos from one iPhoto Library to another?

    When I set up a new iPhoto Library and copied photos into it, only the thumbnails transferred.  I want to combine the two libraries now and have the master photos in the combined library.  How do I do that in iPhoto 11 and how do I then remove duplic

  • How to write enhancement logic for AR datasource

    I need to enhance the AR data source(0FI_AR_4) with the following logic: LOGIC: First find out the KB Partner function in the field: KNVP-PARVW. Once the KB value is obtained, then display the value from KNVP-PERNR Thanks.. Edited by: Jim kim on Jul

  • Put a delay in the code

    In a delivery user exit, Is there a way to tell the program to execute a particular function module 2 minutes after it SAVES the document?

  • IPhone 4S: Is it normal for

    I have only just gotten my iphone 4S a week or two ago and though I had some very helpful advise in the last post, I didn't notice the bluetooth was enabled so turning that off did seem to help my issue. *Face-palm Moment* But I am still finding that

  • The iphone ''iphone ''could not be restored . An unknown error occurred (21).

    The iphone ''iphone ''could not be restored . An unknown error occurred (21).