LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Implementing DQMH Structure for Parallel Measurements with Multiple Power Supplies

I am currently working on a project that involves connecting and managing two or more power supplies using the DQMH (Dynamic Queue Message Handler) architecture in LabVIEW.

Here are the specific requirements and challenges I am facing:

  1. Configuration: I need to configure each power supply to set the desired voltage levels and other parameters. (Done) 

  2. Data Acquisition: I want to read the current and voltage from each power supply after configuration. 

  3. Cloneable Module: I have already created a cloneable module for the power supplies, which allows me to configure each unit using its unique module ID. (Done)

  4. Parallel Measurements: The main challenge I am facing is how to efficiently take measurements from all two ore more power supplies in parallel and ensure that the data is correctly sent to the tdms, csv, etc. 

Could you please provide guidance on how to structure the DQMH implementation to achieve the following:

 

  • Implement parallel data acquisition from all power supplies.
  • Synchronize the data collection and ensure it is correctly formatted to send for post processing and save accordingly.

Would a helper loop cloneable help me achieve this? Of course I would need to make sure what module id is running and such. But how can I ask for all modules id to report this data and receive them almost immediately. 

0 Kudos
Message 1 of 5
(269 Views)

I would do measurements inside the clonable device module. Typically in a helper loop dedicated to this task.

0 Kudos
Message 2 of 5
(175 Views)

You need to have a look at the labview help for DQMH. There is an example project for data ACQ that explains what you need to do. Yes Helper loops in the cloned module will be the easiest to implement.




Joe.
"NOTHING IS EVER EASY"
0 Kudos
Message 3 of 5
(134 Views)

Hey @Joe_H,

 

I tried looking at some examples, but I just didn't get it. Currently, when I click "start," I send the DAQ module IDs. For instance, if I have three SMUs from which I am taking measurements, I send three unique module IDs to start the helper loop and take measurements.

I also have a main GUI with a shift register that waits for these three unique module IDs. Once I receive all three data points, I clear the register and continue waiting for the next data from the DAQ. Additionally, I am using cloneables in my implementation.

 

However, I'm struggling to understand if this is the best approach, especially since there is jitter when I take measurements. I'm concerned about whether the measurements are truly happening at the exact same time. For example, if I want to take measurements every three seconds for the three DAQs, how can I be certain that these DAQs are taking measurements simultaneously? 

0 Kudos
Message 4 of 5
(65 Views)

I would do DAQ inside the modules. I mean would create REquests :

- StartAcq

- StopAcq

- GetAcq (that give back a cvomplete signal)

 

If you want to syncronise DAQmx tasks, you should get SampleClock of the first created task.
Then you have to set this clock to the other tasks.
Then you have to start all tasks, but the the ref task should be started at LAST.

 

Walker34_0-1758783885701.png

 

See that post for explanations :

How to synchronize tasks - NI Community

 

 

 

0 Kudos
Message 5 of 5
(44 Views)