Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

overclock sampling with PCI-6110

Hello,

 

I'd like to know whether it's possible to do a little bit complicated DAQ with PCI-6110, shown in the attached picture.

 

In my measurement scheme, a trigger pulse (internally created by a counter, black) starts simultaneous AO (let's say 4 samples, d1-d4, blue) and AI (red).The sampling rate of AI is much larger than that of AO.

 

In order to reduce measurement time, I prefer not to send AO sample one by one in a loop.

(In that way, it seems possible to do this task, but it takes a lot of time).

 

I tried some synchronized measurement, but it didn't succeed well, and wonder whether it is feasible or not.

 

If you have better ideas, could you please let me know.

 

Thank you for your time and kind help.

 

best,

 

Sugar

0 Kudos
Message 1 of 7
(3,447 Views)

Hello sugar7,

 

I've put some thought to this you ask, and so far haven't managed to make it work perfectly with a pci 6251. But the main idea is to use a triggered counter 0 to output 4 pulses (this would be your digital output) and then to use that counter output to be your trigger for other 4 digital pulses for counter 1 which will represent the sample clock source for your data acquisition. I hope at least this idea works for you. I'm going to keep on working with this, let's see what I can come up with!

 

Regards,

Miriam
Field Applications Engineer
NI Colombia
CLD
0 Kudos
Message 2 of 7
(3,423 Views)

There's probably a few different ways to accomplish this, depending on the exact timing relationship you're looking for and

how many channels of AI you're collecting.

 

I'm guessing you're doing some kind of stimulus-response characterization, perhaps studying the transient response on

a single channel of AI.

 

If you can describe more details of your app's needs and the specifics of the timing, I can probably suggest something.

 

-Kevin P

ALERT! LabVIEW's subscription-only policy came to an end (finally!). Unfortunately, pricing favors the captured and committed over new adopters -- so tread carefully.
0 Kudos
Message 3 of 7
(3,419 Views)

Hello

 

Thank you for your kind reply and suggestions.

 

I came up with some ideas and wrote a vi as attached, but not sure whether this code works correctly with PCI-6110

(input values are not optimized at all in the vi now).

As in daq6110ai2.jpg, my idea is a kind of combination of synchronized AO & AI with pausing.

 

In measurement, Fout will be around 10^5 Hz and AI sample rate (Fin) would be 1 MHz.

By adjusting timing parameters of Counter synchronized with the analog out, I hope it's possible to collect

data at a faster rate than that of output.

 

If you have any comments or suggestions, could you please let me know?

 

Your kind help is highly appreciated.

 

Thank you.

Download All
0 Kudos
Message 4 of 7
(3,398 Views)

You're getting there, but I don't know for sure whether the older 6110 supports all the trigger-syncing you're looking to do.  I would be inclined to try simplifying the timing/sync scheme.

 

I like to sync by sharing clock signals because the approach extends easily to multi-board systems.   I tried a method that seemed to work using a simulated 6110 device.

 

No more triggers, no more counter.  Let AI generate its own sample clock and configure AO to derive its sample clock by dividing down the AI clock.   The only thing of note is that for a divisor of 10, the 1st AO sample won't occur until the 10th AI sample.   if that matters, it's easily solved by ignoring the first 9 AI samples.

 

Here's a snippet:

 

synced ai ao.png

 

-Kevin P

ALERT! LabVIEW's subscription-only policy came to an end (finally!). Unfortunately, pricing favors the captured and committed over new adopters -- so tread carefully.
0 Kudos
Message 5 of 7
(3,389 Views)

Hello Kevin

 

I appreciate your suggestion, and it is nice to simplify the code as much as possible.

 

Do you suggest that it is better to collect every data first at a DAQ rate, then

discard unnecessary data later?

I have to start sampling a little bit later after the AO task so that our positioners are settled before AI.

This means I don't need all of the collected data.

Probably, if the buffer size is large enough, it woudln't be a problem to get all of the data.

 

with best regards

 

 

0 Kudos
Message 6 of 7
(3,377 Views)

I think it's easiest to keep the hw-sync between AO and AI when you share a clock signal (as shown) and start them at the same time (also as shown).

 

It's very easy to ignore AI samples for any arbitrary amount of time.  In fact, the AI Reads in the snippet I posted do exactly that.  The data from the read isn't wired anywhere, the result is that it is simply ignored.

 

To extend things just a bit, you could do the ignore AI data reads in a loop like I posted until you decide it's time to retain the data.  At that point, stop making calls that discard data and start making calls that retain it. 

 

-Kevin P

ALERT! LabVIEW's subscription-only policy came to an end (finally!). Unfortunately, pricing favors the captured and committed over new adopters -- so tread carefully.
0 Kudos
Message 7 of 7
(3,365 Views)