02-04-2014 05:27 AM
I am finishing my final degree project and I want to do a final thing and I have not managed how. I am acquising three signals that comes from three different pressure sensons with the use of the DAQAssistant, configurating it to acquire form three of the analogical ports (there is a screen picture of that below), and after that is shown in the same graph (second image below).
That works properly, but my trouble resides in the fact that I want to measure the maximum and the minimum pressure value of each channel and always it is measured the first of them. I have divided the measures into time-slopes as it is shown in the last picture attached. I have tried every single Vi of the manipulating signal part of the function palete, but or I am still failing in the way of using them or I am complety wrong actuing in that way.
Could anybody give me a hand??
Thanks in advance.
Solved! Go to Solution.
02-04-2014 08:13 AM
We really don't have enough information to give you good advice, but I can give you some generic advice. If you want the max and min values from an array of values, use the Array Max & Min from the Array palette. Unfortunately, the DAQ assistant outputs the dynamic data type, which can be either an array of waveforms or a single waveform depending upon how you do it. From your DAQ Assistant configuration, it appears you are getting an array of waveforms, but using it like a single waveform. Right after you take the data, convert your data type from dynamic data type to an array of waveforms using the from DDT express VI in the Express->Data Manipulation palette. This will probably break a lot of your code, and that is a good thing. The broken parts are the parts that are probably causing you problems. You can now use index array to get the individual waveforms from the array, and Get Waveform Components to get the array of data from the waveform. Use this array with Array Max & Min to actually find your max and min values.
Alternately, you can use Split Signal from the Express->Data Manipulation palette to split your output into three, single waveform signals. Each of these signals can be wired directly into the Array Max & Min (LabVIEW will script in the necessary converter). However, I strongly recommend you NOT do this. It still leaves you with the problem that your data type is not well defined, as it is still a dynamic data type.
Also note that the use of globals as seen in your code images is bad practice which can lead to all sorts of problems. However, I cannot offer you much advice on how to fix it without the rest of your code (hint: will probably involve shift registers). Please post your VIs if you have further questions so we can offer better advice.
02-06-2014 07:35 AM
Thank you very much, now it works properly.