LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

accurate time stamp PCI-MIO-16E-1

Hi Stefo,

NIDAQ is very helpful.  I believe you can setup arbitrarily large buffers - which NIDAQ maintains in the PCs RAM (through DMA transfers between the MIO16s memory and RAM.)   But you're still responsible for emptying the buffer fast enough.  It sounds like the rates you need to acquire at are pretty low so this shouldn't be a problem but one thing to consider is how much memory is on the MIO16, and how fast NIDAQ will need to unload it.  If your program demands the PCs memory bus for too long (while you empty the buffer) NIDAQ can run out of memory on the MIO16 and throw an error.

I agree with Steven, your board should be capable of acquiring two channels at 50KHz "without breaking a sweat."  Whether your PC has enough horsepower to service the buffer is another question.  I'd try setting-up 5-seconds worth of buffer, and unload 25Kscans every 1/2 second.(assuming scan-rate = 50KHz.)

There ought to be lots of great cont-acquisition examples - pick one and let us know what happens.Smiley Surprised

Cheers.

When they give imbeciles handicap-parking, I won't have so far to walk!
0 Kudos
Message 11 of 20
(1,794 Views)

Ok, I will paste an example what I need to realize. I hope that now it will be clearly.

 

I want to ask too, how can i realize triggered data acquisition after rising edge is detected on TRIG1 or TRIG2 (both should be use - trigger function like TRIG1 v TRIG2), but i need to know, which TRIG occurred too. Example will be the most useful.

 

Thanks,

Martin

 

Certified-LabVIEW-Developer_rgb.jpg

0 Kudos
Message 12 of 20
(1,779 Views)

Sorry, i forgot paste the file Smiley Very Happy

 

 

Certified-LabVIEW-Developer_rgb.jpg

0 Kudos
Message 13 of 20
(1,777 Views)
Hello,
 
There is no way to trigger off of multiple PFI lines at this time.  You may be able to start your acquisition at the trigger you know will happen first.  You can then do a continuous acquisition while acquiring the triggers as analog input lines.  If you find that a trigger has occured, you can use an array subset vi to get points you need from your analog input data lines.  This way, the timestamps will be very accurate when compared to the triggers.  Since you will be scanning the trigger lines for triggers, you will know which one occurs.
 
This KnowledgeBase has another idea about using a digital board with change detection to generate trigger signals.  However, it must log data for you to know which trigger happened.
 
Steven T
Message 14 of 20
(1,770 Views)

Hi Steven,

      Do you think there's any possibility of using the counters in implementing an either/or trigger?  I seem to remember** some trigger possibilities using counters and gates.  Of course, these would be TTL-level inputs... 

**my memory is very poor!

When they give imbeciles handicap-parking, I won't have so far to walk!
0 Kudos
Message 15 of 20
(1,759 Views)

Dynamik,

The counter is the only task that is truely retriggerable.  This can be used to generate a clock to make pseudo retriggerable analog input.  The only other way,  that I know of, to do multiple start triggers is to rout the signals into a digital board that can do change detection and generate a single pulse for each trigger to the MIO Board to use as a trigger.

Maybe you could elaborate on how you think it would work.

Steven T

0 Kudos
Message 16 of 20
(1,754 Views)

Hi Steven,

      I think Stefo's goal [at this point] is not multiple triggers, but one trigger based on either of two inputs. Smiley Surprised  IF he had an external OR, he could tie Trig0 and Trig1 to the external ORs inputs, and use the output to trigger MIO16 simply.  Of course it would be nice to accomplish the same triggering without external hardware - using the resources available on the MIO 16.  Hence the counters idea.  If I knew specifically how to do this, I wouldn't have asked you!  But I'll give a for-instance:  IF the MIO16 counters could be configured to output a pulse when Either of two gate inputs went high, then that counter-output could be used as an input for a DAQ trigger - effectively implementing the OR described above.  I think this technique (if achievable) would introduce a trigger latency of, like, 50ns - probably negligible in this case. Smiley Wink

If the trigger-lines are also Analog INs, then, as you said, once the DAQ is triggered, Stefo could determine which occurred first by examining the analog data.

(?)


@steven T wrote:

Dynamik,

The counter is the only task that is truely retriggerable.  This can be used to generate a clock to make pseudo retriggerable analog input.  The only other way,  that I know of, to do multiple start triggers is to rout the signals into a digital board that can do change detection and generate a single pulse for each trigger to the MIO Board to use as a trigger.

Maybe you could elaborate on how you think it would work.

Steven T




 

Message Edited by Dynamik on 04-14-2006 04:34 PM

Message Edited by Dynamik on 04-14-2006 04:36 PM

When they give imbeciles handicap-parking, I won't have so far to walk!
Message 17 of 20
(1,753 Views)

Hi Dynamik,

Thank you for the input and suggestions. However, in order to trigger off of multiple sources, you need to use a board which supports change detection: Which NI DIO Devices Support Change Detection? This way, whenever one of the lines changed state, the acquisition could be triggered. Unfortunately, the PCI-MIO-16E-1 does not support this feature so Stefo could not add this into his program directly. However, he could use external circuitry such as an "or" or an "xor" circuit to incorporate this functionality into program.

Regards,

Hal L.

0 Kudos
Message 18 of 20
(1,724 Views)

Hi Hal,

      The idea is that CTR 1 OUT would be the input to the DAQ Trigger.  No need for multi-channel "edge detection".

Lets say counters 0 and 1 are chained 0 OUT to 1 SRC.  It seems possible for either of two GATE inputs to disable a pulse-train, but can the sources/gates be configured so CTR 1 OUT produces an edge or edges when either of Stefo's "Trig1" or "Trig2" transitions low-to-high?

Hey, I admit an old/poor working-knowledge of counters, and a fool (consistently 1st-place) can ask more questions than a wise applications-engineer can answer - but is this really a foolish question?  Smiley Very Happy

Message Edited by Dynamik on 04-17-2006 10:52 PM

When they give imbeciles handicap-parking, I won't have so far to walk!
Message 19 of 20
(1,709 Views)
Hi Hal,
      If you're still interested in how one might trigger an E-series DAQ on either of two analog inputs, here's a pretty straight-forward approach.
 
But, interestingly, the E-series may be capable of a multi-channel triggering - like "change detection" - if the triggers are long enough in duration.  The following quote from the E-series help says beware of running the mux while waiting for a trigger, else triggering off other channels is possible, and a trigger on the target may be missed.  How to control the mux while waiting for a trigger is another question. Smiley Wink
 
Just wandering "outside the box"...
 
QUOTE from E Series Help:

Analog Input Channel

You can select any analog input channel to drive the PGIA. The PGIA amplifies the signal as determined by the input mode and the input polarity and range. The output of the PGIA then drives the analog trigger detection circuit. By using the PGIA, you can trigger on very small voltage changes in the input signal.

When the DAQ device is waiting for an analog trigger with a AI channel as the source, the AI muxes should not route different AI channels to the PGIA. If a different channel is routed to the PGIA, the trigger condition on the desired channel could be missed. The other channels could also generate false triggers.

When they give imbeciles handicap-parking, I won't have so far to walk!
0 Kudos
Message 20 of 20
(1,691 Views)