Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

Synchronizing X-Series devices

Hello,

 

We have an 18-slot PXIe chassis with a PXIe-8130 controller running LabVIEW 2009 ProDevEd. In this rack we have four PXIe-6368 X-series multifunction DAQ cards.  We use these cards to simultaneously sample up to 64 channels at 2MHz.  Currently, I have shown that using the automatic trigger/sync routing provided by the DAQmx driver indicates less jitter than using the manual method of syncing the timing and trigger signals.  We are interested in learning more about how these timing and trigger signals are routed, so that if we use CVI or Measurement Studio to build our apps, we have a better understanding of how all of this works.

 

Does anyone in the NI/LabVIEW/DAQ community have any information about this topic?

 

Thanks,

Tad  

0 Kudos
Message 1 of 9
(4,794 Views)

Hello Munk100,

 

 

I'm excited to see that you're doing Synchronization with X Series.  We spent a lot of effort ensuring that it works well on this family of devices.  Hearing that the automatic method is working well is great! 

 

The jitter you're seeing when not letting DAQmx synchronize for you is probably because you are not using the Trigger Skew Correction feature of X Series and DAQmx.  The basic idea is that we're able to ensure that the Start Triggers between the various devices are aligned in time with very low amounts of jitter.  Another possibility is that you aren't enabling all of the X Series devices to lock their clocks to the backplane's clock.  This is referred to as a Reference Clock in DAQmx.  This is a good article describing how the synchronization works on some of our devices: http://zone.ni.com/devzone/cda/tut/p/id/11369

 

We ship a few examples that show how to do this manually with DAQmx as well.  See http://decibel.ni.com/content/docs/DOC-12182 for a generic example that synchronizes various families of devices.  See http://decibel.ni.com/content/docs/DOC-11699 for a much more specific example that shows how to use Trigger Skew Correction more specifically.

 

Also, your note about CVI/Measurement Studio makes me think that you are slightly confused about something.  Automatic synchronization in DAQmx works in any development platform!  Simply add channels from multiple devices to the same task, and everything should work great.

------
Zach Hindes
NI R&D
Message 2 of 9
(4,789 Views)

Hello Zach,

 

Thanks for your prompt and helpful reply!  I have more questions about syncing multiple X-Series cards and multiple functions on those cards.  We would like to have one of the cards generate an output signal then also receive the analog signals on the same card as well as Digital IO with all of the signals synced to the same clock and trigger pulse. 

 

In the examples shipped with LabVIEW, I have tried using the multi-device and multi-function VIs as a basis for our own applications, but I keep getting the following message:

 

Possible reason(s):

Specified route cannot be satisfied, because it requires resources that are currently in use by another route.

Property: RefClk.Src
Source Device: PXI2Slot6
Source Terminal: PXIe_Clk100

Required Resources in Use by
Task Name: _unnamedTask<4>
Source Device: PXI2Slot6
Source Terminal: None
Destination Device: PXI2Slot6
Destination Terminal: RefClockInternal

Task Name: _unnamedTask<5>

 

I have tried using timing and property nodes in various ways, but I still get similar erors when I use the automatic or manual routing of timing signals.  I'm guessing that I'm making a mistake of how I am routing the signals. 

 

Thanks,

 

Tad

0 Kudos
Message 3 of 9
(4,725 Views)

Hi Tad,

 

It sounds like your tasks don't agree on the reference clock settings. This page explains why this is a problem and how to fix it: How do I Phase Lock Loop (PLL) Multiple NI-DAQmx Tasks on the Same Device?

 

Also, if the AI task is a multi-device task, you end up with the same result even if you didn't set the RefClk.Src and RefClk.Rate properties directly. In this case you will still have to set the reference clock properties on the non-AI tasks.

 

Brad

---
Brad Keryan
NI R&D
0 Kudos
Message 4 of 9
(4,713 Views)

Hello Brad,

 

Thank you for your helpful reply!  After reading your post along with more documents and examples, I was able to make my VI work.  I'm able to output a signal on one channel of an X-series (PXIe-6368) card and read the signal on the three other 6368 cards as well as the outputting card.  I do not get any timing/sync errors and the signals appear to be synced.  Below is a screen shot of the VI. Capture.JPG

Now, my next step is to record the data recorded by this VI at a relatively fast rate (2MHz) and numerous channels (<=64).  I'm thinking of using TDMS to record, but using Matlab to analyze the DAQmx data.  Do you see any challanges with this strategy?  So far, I can record the data, but the files are too big to read with the Excel add-in for TDMS.  I have not yet figured out how to run the Matlab TDMS script, but we will figure that one out. 

 

Thanks again,

 

Tad

0 Kudos
Message 5 of 9
(4,671 Views)

Hi Tad,

 

What are you writing your data to?  Are you running this continuously?

 

64 channels * 2 Bytes/Sample * 2 MS/s = 256 MB per second (M = million here rather than 2^20).  This is well above what typical hard drives can achieve, so I'll assume you're using a RAID such as the 8264 or 8265 in RAID 0 (or RAID 5 for some added redundancy).

 

There are some issues with large files in Excel.  For example, Excel cannot display binary data directly, so the data must be first converted to ASCII (which takes up a huge amount of memory and makes the file very large if you try to save it as a spreadsheet).  Also, Excel has a maximum column length, depending on which version.

 

 

Matlab or LabVIEW is a better choice for handling these larger data sets than Excel, but  I should also point out that NI offers a software package called DIAdem which is designed specifically for managing and analyzing large data sets.  I would encourage you to take a look at it to see if it might be more suitable for your needs.

 

 

Best Regards,

John Passiak
0 Kudos
Message 6 of 9
(4,664 Views)

Hello John,

 

Thanks for your fast reply!  You make some very good points.  Right now, I am just running 4 channels finite burst acquisition into a Samsung SATA HD204UI HDD mounted in an external eSATA docking station connected through an eSATA express card (phew).  I agree that 64ch at 2MS/s is too much for most storage. We are going to have to do something different as we expand this project.

 

I was using Excel just to confirm that I was recording data; we will be using other tools to process/analyze the data later on.  We already have lots of installations and experienced users of Matlab, so that will probably be our analysis tool of choice.  I am interested in trying out DIAdem + Datafinder to evaluate their use in our application. 

 

I would like to learn more about TDM/TDMS, but so far, I have not been able to find a full manual describing the use of these tools.  I have been reading some of the shorter papers and tutorials to learn as much as I can.  Do you know of any references beyond the papers and tutorials? 

 

Thanks again,

 

Tad

0 Kudos
Message 7 of 9
(4,657 Views)

One reference that's pretty good is ni.com/tdms.  Let us know if you have any specific questions about the file format.

Thanks,

Andy McRorie
NI R&D
0 Kudos
Message 8 of 9
(4,545 Views)

 


@Munk100 wrote:

 

 ...

 

I am interested in trying out DIAdem + Datafinder to evaluate their use in our application. 

 

...

 

Tad


 

Hello Tad,

 

Please check here for information about the DIAdem and DataFinder products:

 

http://www.ni.com/diadem

http://www.ni.com/datafinder/

 

Feel free to get in touch with me directly if I can help answer any questions or give you a quick demo of the tools. I can be reached at 512-683-5452.

 

Best regards,

 

     Otmar

Otmar D. Foehner
0 Kudos
Message 9 of 9
(4,496 Views)