09-11-2025 11:06 PM - edited 09-11-2025 11:36 PM
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:
Configuration: I need to configure each power supply to set the desired voltage levels and other parameters. (Done)
Data Acquisition: I want to read the current and voltage from each power supply after configuration.
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)
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:
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.
09-17-2025 09:48 AM
I would do measurements inside the clonable device module. Typically in a helper loop dedicated to this task.
09-19-2025 01:22 PM
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.
09-24-2025 11:00 PM
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?
09-25-2025 02:07 AM
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.
See that post for explanations :
How to synchronize tasks - NI Community