05-26-2025 12:01 AM
Hi everyone,
I’m a beginner in LabVIEW and currently working on a project involving concrete mix testing. We're using a DAQ to acquire analog signals from two devices: a non-contact ultrasonic sensor and a Pundit tester.
Here’s what I want to do:
Each time we acquire 2000 samples, that’s one complete signal.
We repeat this process 100 times, ending up with a matrix of 2000 rows × 100 columns (each column = one signal).
I want to average these 100 signals row-wise, resulting in a single signal of 2000 averaged points.
This is similar to how the Average function in Signal Express works.
Then, this whole process (acquire + average) should repeat every 3 minutes.
For example, if the first acquisition starts at 12:05, the next cycle should start at 12:08, regardless of how fast the averaging finishes.
I’ve attached a vi file I'm working with for clarity.
Since I’m new to LabVIEW, I’m having a hard time implementing this. Any help, VI examples, or guidance would be very much appreciated!
Thanks in advance!
05-26-2025 04:37 AM
Why and how do these "2000" samples denote a complete signal?
Of course, you can create a 3-minute cycled capture, but I want to ensure you're doing things right if there is an additional reason why the number 2000
05-27-2025 08:48 AM
"The most important part of this signal occurs between 320 and 600 µs, and 2,000 samples are sufficient to capture it. So:"
"How can the time averaging feature of SignalExpress be implemented in LabVIEW?"
"How can a 3-minute loop be implemented?"
05-27-2025 11:28 AM
@wndulwlsp wrote:
Hi everyone,
I’m a beginner in LabVIEW and currently working on a project involving concrete mix testing. We're using a DAQ to acquire analog signals from two devices: a non-contact ultrasonic sensor and a Pundit tester.
If you only have 1 DAQ, then you need to combine the AI acquisitions into a single task or perform the tasks serially.
"How can a 3-minute loop be implemented?"
Your VI has no loops, so you need to add one. You would use a while loop. The while loop can exit when the user exits the program or an elapsed time is reached. I recommend a state machine.
"How can the time averaging feature of SignalExpress be implemented in LabVIEW?"
Add your waveforms together that you acquire and divide by the number of acquisitions. Use a shift register on your while loop to keep track of the sum.
You would average your waveform instead