Discussion:
PCI-6561 continuous acquisition
(too old to reply)
davez1
2006-10-31 00:10:18 UTC
Permalink
Can PCI-6561 acquire continuously?  My application has fairly low
data rate (~3MHz 16channels), but I'm so far unable to acquire data
continuously.  The amount of data that I can acquire continuously
appears to be limited by the amount of onboard memory (in my case
2Mb/ch).  If I reinitiate acquisition, there is a long delay
(~10ms) and I lose data.  Does anyone have a way to do continuous
acquisition?

David
Erik J
2006-10-31 20:10:09 UTC
Permalink
Hi David,HSDIO is different from DAQ. The architecture of HSDIO memory is not same as regular DIO card.
If you look at any HSDIO examples, you will find that you are waiting for reference trigger. This will be software/hardware.
The HSDIO will be waiting for reference trigger, but it will be
continuously acquiring data and filling the deep onboard memory inside
the HSDIO while waiting for trigger.
These high speed cards are usually used to transmit bursts of data
depending on the user application. Even the scopes are also designed in
that way. Because PC cannot read the data into it's RAM at the rate
which HSDIO's normally operate such as 100MHZ.
When an event (trigger) occurs, you can transfer the data but still you will be clocking/sampling data at faster rates.
If you look at the memory architecture of HSDIO, it is continuously
filling the buffer (record). But it stops filling the buffer, once it
gets reference trigger.
You can also perform multi-record triggering and store 1000's of
waveforms on the onboard memory. So, think of onboard memory being
divided into small circular buffers (records). Once you get a trigger,
it advances to next record. While the second record is being filled up,
you can transfer the data to LabVIEW from the first record by cheesing
the number of records available.So, basically High speed devices are used to
capture transient events. But we can fool the driver by
never sending the trigger. So, HSDIO will continuously storing the data
into buffer. Then we transfer the data into ADE in the background. This
is done for lower rates than full speed of the board without
overflowing buffer.I have an example from the Product Support Engineer.  It doesn't seem like your requirements are to demanding
so give this example a try and let me know if it works for you.Have a great day!- Erik


Acquire Continuous.vi:
http://forums.ni.com/attachments/ni/70/5720/1/Acquire Continuous.vi
davez1
2006-10-31 21:10:10 UTC
Permalink
Erik,

Thanks for your reply.  The trick is the reference trigger. 
But I don't think multi-record acquisition will work because I have
to specify number of records to acquire, which is limited by the memory.

Every time I fetch from memory, I have to increment the offset. 
Do you know what happens if I reach the limit of 32-bit integer? 
How should I handle the 32-bit integer overflow?

David
Ryan M
2006-11-02 15:10:16 UTC
Permalink
David, The latest version of the HSDIO driver has a new exampled called
"Continuous Acquisition - Stream to Disk.vi" that shows how to do exactly what Erik was describing.  If you open the example finder, you can find it in the Hardware Input and Output>>Modular Instruments>>NI-HSDIO>>Dynamic Acquisition folder.  Please note that the rate at which you can sustain the acquisition will be system dependent.  That is, the sustained rate will be dependent on how fast your computer can fetch data out of the hardware and cache it onto your harddrive.I hope this example helps.
davez1
2006-11-02 18:10:11 UTC
Permalink
Everything works now.  Thanks for all your suggestions.

David

Loading...