03-01-2018 08:53 PM
Hello,
I am working on a Veristand project where I am designing a custom device for a GPIB piece of lab equipment. One of the functions of this device is the ability to send a digitized waveform back to the user. Sort of like the trigger on a scope, where once the trigger occurs thousands of discrete voltage measurements are made. And then you can capture all of those points in an array to do analysis on after.
I have worked with Veristand custom devices for a while, and I am familiar with sending discrete numeric floats, into the master array, that is the "wrapper" that houses my Labview code inside. I understand that Veristand can only deal with floats at the moment. No strings, etc. Is there perhaps a way of passing an entire array of floats through as a single entity? Can an output of a Custom Device somehow be defined as an array rather than a single float? My apologies if this was confusing. I find that even with pictures, it is sometimes very difficult to get concepts across in Veristand. Thanks...
Dan
03-04-2018 07:13 PM - edited 03-04-2018 07:14 PM
Hi Z4CRUZN,
I think I understand your question, but I think it would help to know what the end goal of the dataset is. Do you plan on performing control based on the entire dataset? Were you planning on averaging the values in some way once acquired?
I believe there's a Custom Device (CD) that ships with VeriStand 2017 (Pickering 40-295, located in C:\Users\Public\Documents\National Instruments\NI VeriStand 2017\Custom Devices\National Instruments), and that CD acquires an array of U32's from a DLL, then performs some calculations so as to output only one resistance value. Would that be similar to what you want to do? Or were you wanting to simply acquire all of this data, then log it as is?
I think understanding what you were planning on doing with the data may help us better understand how we can best work toward your end goal.
03-04-2018 07:45 PM
Thanks Andy,
This custom device would be used for a testing application with Teststand. We are not certain of exactly what we might want to test yet. So the idea would be to pass out of the custom device the entire array of points collected after a trigger in its entirety. Then the next step in Teststand would take that data and parse it for some piece of information with a specific .vi. Such as timing a transient pulse decay time.
03-04-2018 07:48 PM
The other way to go about it, would be to add cases to the custom device there are specific to each test, and internally calculate the piece of data that is needed. This of course would be much easier, it it also means having to continually add to the custom device code as more tests are designed...,
03-05-2018 02:21 PM
Hi Z4CRUZN,
I think one of the biggest considerations here would be whether you plan on these values being used for closed loop control. It would also help to know what this data is if you happen to know.
If you do not need to perform closed loop control with these values, you should be able to pack the data as a waveform, then unpack the data in TestStand to perform calculations as needed. You may also be able to get away with this method in closed loop control if the PCL rate is fairly low (<100 Hz).
If you are planning to use this data in closed loop control, then I would recommend something like your last idea where you have a subVI or case structure set aside to perform calculations within the engine. If you are experienced with object-oriented programming in LabVIEW, you may be able to utilize this to make your code more scalable as well.