12-02-2010 12:37 PM
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
12-02-2010
01:43 PM
- last edited on
05-06-2024
11:34 AM
by
Content Cleaner
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: https://www.ni.com/en/support/documentation/supplemental/10/synchronization-explained.html
We ship a few examples that show how to do this manually with DAQmx as well. See https://forums.ni.com/t5/NI-DAQmx-Examples/Synchronize-Continuous-Acquisition-of-Multiple-Analog-Inp... for a generic example that synchronizes various families of devices. See https://forums.ni.com/t5/NI-DAQmx-Examples/Multi-Device-Synchronization-Continuous-Analog-Acquisitio... 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.
12-06-2010 09:03 AM
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
12-06-2010
11:30 AM
- last edited on
05-06-2024
11:34 AM
by
Content Cleaner
Hi Tad,
It sounds like your tasks don't agree on the reference clock settings.
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
12-08-2010 02:39 PM
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.
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
12-08-2010
03:01 PM
- last edited on
05-06-2024
11:35 AM
by
Content Cleaner
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,
12-08-2010 03:58 PM
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
12-13-2010
01:02 PM
- last edited on
05-06-2024
11:36 AM
by
Content Cleaner
One reference that's pretty good is ni.com/tdms. Let us know if you have any specific questions about the file format.
12-15-2010
09:53 AM
- last edited on
05-06-2024
11:37 AM
by
Content Cleaner
@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:
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