LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Multiple Devices Continuous Data Acquisition

Hi Nishanth,

 

Have you tried getting your TClk acquisition to work on a small number of points once before looping it?

 

The only way to get a hardware timed record of when your sampling event occurs is to use a single multi-record acquisition.  You can fetch data from the 656x cards while the acquisition is still running, which will let you transfer an arbitrary number of records without stopping your acquisition.

 

In this case, you would set up your Reference Trigger as the trigger that defines when to capture your data, and you would have a (Software) Advance Trigger that would indicate when to start looking for the next record.  After each record was complete your VI would fetch the data, then send a software advance trigger to your devices which would arm them for the next record.

 

You can use the absolute time stamps to see how far apart things are in hardware time. 

 

Does that make sense,

 

Keith Shapiro 

National Instruments R&D 

0 Kudos
Message 11 of 18
(2,038 Views)

Hi Keith,

 

I did try getting the Tclk acquisition to work on a small number of points once before looping it.  I can acquire up to 30M samples this way per iteration.  This is not a big enough dataset for me.  So I have put a hold on the Tclk acquisition and am focusing on just one board for now, and to get the timestamps in there working.  

 

I think I understand what you said...

block diagram of LABVIEW data acq4.jpg

I have couple questions:

1. How can I get the Timestamp at the when the software trigger triggers?

2. To get the timestamp, I am using the "Get Date/Time In Seconds" VI.  Can I go more accurate than seconds?

 

I feel like that is what I am doing except the I am not getting the timestamp exactly when the software trigger triggers.

 

 

0 Kudos
Message 12 of 18
(1,977 Views)

I just read up on timestamps in Labview and realized that it is as accurate as I need it to be.  Sorry for bothering you guys with such fundamental questions.  I am still relatively new to LabView.

 

- Nishanth

0 Kudos
Message 13 of 18
(1,952 Views)

My question from earlier still holds...

How can I write my VI so that I acquire a timestamp exactly when my start trigger triggers (or any other trigger triggers for that matter)?

Is that even a possibility?

 

- Nishanth

0 Kudos
Message 14 of 18
(1,948 Views)

Hi Nishanth,

 

A really easy way to get the time stamp of the trigger would be to take the  time stamp of the first signal in the waveform.  

 

get_trigger_time.JPG

Regards,
Jim Schwartz
Message 15 of 18
(1,913 Views)

Thank you, Jim.

 

Now I am getting another error...

 

 

Error 1 occurred at Enqueue Element in Acquire.vi

Possible reason(s):

LabVIEW:  An input parameter is invalid. For example if the input is a path, the path might contain a character not allowed by the OS such as ? or @.
=========================
NI-488:  Command requires GPIB Controller to be Controller-In-Charge.

 

 

I thought Enqueue Element did not accept any inputs of type "path."  Then how come I get this error in the first place?

 

Download All
0 Kudos
Message 16 of 18
(1,877 Views)

Hi crickmaster,

 

I recommend looking at your queue set up versus the Producer/Consumer template.  There are a few differences that I anticipate relating to this error, especially the handling of the release queue.  Hopefully this helps!

 

 

Regards,


h_baker
National Instruments
Applications Engineer
Message 17 of 18
(1,850 Views)

First of all, Thank you all for your patience and help.  It is very much appreciated.  I'm almost finishing up this VI and getting it to work the way I want it to.

 

To solve the timestamp problem, I used the idea suggested by jschwartz.  My first acquisition is a Single Records Waveform Data Type fetch, after which I use Single Record 1D U16 fetch.  I do this to get the accurate timestamp using the WDT, then to keep the writing to disk process fast, I switch back to the 1D U16 fetch.

 

I have one problem that I am getting with all this.  I specify, for example, to fetch 30M samples.  However, in the file I save to, only about 10M samples are saved.  They are all still sycnhronized properly, but I seem to lose all those samples.  Any idea of where this might be happening?  Or why all the samples are not being written to disk.

 

Thanks,

Nishanth

Download All
0 Kudos
Message 18 of 18
(1,718 Views)