VeriStand

cancel
Showing results for 
Search instead for 
Did you mean: 

Passing very large arrays through Veristand Custom Device

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

0 Kudos
Message 1 of 5
(3,169 Views)

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.

Andy F.
Applications Engineering
National Instruments
0 Kudos
Message 2 of 5
(3,133 Views)

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. 

       

0 Kudos
Message 3 of 5
(3,129 Views)

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...,

0 Kudos
Message 4 of 5
(3,128 Views)

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.

Andy F.
Applications Engineering
National Instruments
0 Kudos
Message 5 of 5
(3,100 Views)