ni.com is currently experiencing unexpected issues.

Some services may be unavailable at this time.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Acquisition Multi devices

We have 6 DMM Pxie 4080 that must measure, for three of them a voltage ranging from 90VDC to 150VDC, the other three will measure currents ranging from 0 to <1A.

The Pxi-6221 board will measure signals from different pressure and temperature sensors in 4-20mA, these signals will be conditioned in 1-5Vdc format via a 250kOhms shunt resistor.

The idea would be to record these signals at a sampling rate of 1kHz for 5 minutes on all the cards in a synchronized manner.

It will also be necessary on another phase of measurement, to be able to measure on two DMM (1 in voltage and the other in Intensity) at a sampling rate of 10KHz by synchronizing the recording with the signals measured on the PXI-6221 card at the same sampling rate.

We have already done some code for the DMM synchronization but we have a measurement lag.

Can you help us to solve the problem?

If yes, do you have an example on how to synchronize the measurement between the DMMs and the DAQ board?

 

0 Kudos
Message 1 of 2
(1,031 Views)

I'm not familiar with NI's DMM's or the API that goes along with them.  However, it sure doesn't *look* like you're doing anything to sync them.  You seem to have a bunch of independent tasks that are configured and started in parallel, but nothing makes them start in sync with one another.  More subtly, they are probably each using their own internal clock to define their sample rates, and there will be very small variations in those clock frequencies.  Even if you start the tasks in sync, they'll slowly drift apart due to this variation.

 

A lot of common MIO boards are spec'ed for 50 ppm clock accuracy.  That works out to be 3 msec per minute.  In a 5 minute test at 1000 kHz, that works out to be a 15 sample shift.

 

This is why I have long been a fan of syncing tasks via a shared sample clock rather than (solely) via trigger.  The method covers both aspects of sync - sampling starts in sync and remains in sync thereafter.  If your DMM's support this, you could configure them all to get their sample clock from the task on your 6221.  Then make sure to start the 6221 task *last*.

 

Here's a post from a prior thread I was in about sync.  The key things to get from it are:

- reserve the 6221 task before querying for its Sample Clock Terminal.

- then query for both the terminal and rate, and feed them into the config for the DMM's (assuming this is supported somehow)

- then start all the DMM tasks first.  They can't do anything yet because the 6221 task hasn't started, and therefore isn't giving them a sample clock signal to use.

- finally start the 6221 task.  Then all devices will remain sync'ed by the sample clock signal they all share.

 

 

-Kevin P

 

-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 2 of 2
(989 Views)