From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

passing data between a Labview VI and teststand sequence

My apologies if this is posted in the wrong section as it contains both Labview

and Test Stand questions and I wasn't sure what the appropriate location on this

board was to post these questions...

 

I am new to test stand and have some experieince with Labview but I am

looking for examples of how to pass data between a Labview VI and teststand sequence.

 

I have an exisiting VI that reads an ini file and sets up relays with a PXI module and then reads

voltages with another PXI module.

 

This part works just fine but  I would like to modify this VI so that I can pass the name of the ini file

and its path and the section name of the ini file from teststand into the Labview VI.

 

I would also like the labview VI to return info from the ini file along with the measured value back to

the Teststand sequence that send it the file and section information.

 

I am guessing that this might require a cluster but I am not sure how to set up the VI or how to send this

information from the test stand and an example would be marvelous...

 

I have attached my Labview VI to this message but it is currently set up as a state machine and I would

modify it to only perform one section of my ini file from data passed to it from test stand.

 

Thanks

0 Kudos
Message 1 of 9
(5,089 Views)

You just use the connector pane of your VI.  TestStand can read/write to/from you indicators/controls just like a top level VI.


GCentral
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
Message 2 of 9
(5,073 Views)

Thanks for the tip...

I forgot all about hte connector pane...

 

I set up the following test stand step but  Iam not sure how to make the outputs from my VI into

variabeles and the used them with a following test step to verify the test and display the values.

 

Any examples on how to do this?

 

thanks

 

teststand call1.jpg

0 Kudos
Message 3 of 9
(5,034 Views)
Simply assign the values to local variables that you create.
Message 4 of 9
(5,019 Views)

You need to set up variables in TestStand as well.  You just use those variables in the step to pass/get those values from/to the VI.


GCentral
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
Message 5 of 9
(5,009 Views)

Thanks for the tips.

 

I was able to set up some local variables and assign them to the data returned by my VI.

My VI pulls data from an ini file and sets relays based upon the data pulled from the ini file.
It then then takes a voltage measurement and reports back the measurement along with

the high low info from the ini file.


I added a Numeric Limit test step following the relay setting measurement step mentioned above.

This Numeric Limit test takes the VI returned measured value and compares it to the VI returned

high and low values which are stored local variables that were set by the previous step.

 

For some reason unknown to me, this step is returning an error stating:

 

Files must be found on disk 
File '' was not found. 
relaytestload.seq Seq["MainSequence"].Main["Verify voltage is in range"].TS.SData.ViCall.VIPath


Also, I added a step after that which is the same as the first step to turn off all relays and this returns

an error stating

 

Expressions must evaluate to a value of the expected type.
GeneralUnknown variable or property name 'Parameters.Packaged'. 
relaytestload.seq Seq["MainSequence"].Main["Set Port0 data to zero"].TS.PreCond 

 

Unfortunately I am not comprehending these error messages and would appreciate any guidance

that you can offer.

 

thanks again

0 Kudos
Message 6 of 9
(4,989 Views)

I attempted to address the "The Files must be found on disk error" by setting the path for the NumericLimitTest.vi to the following absolute path: 

 

C:\Users\Public\Documents\National Instruments\TestStand 2014 (32-bit)\Tutorial\VI with Cluster Input.vi

 

and after a little more exploring, I found the error is 


Unable to load VI "VI with Cluster Input.vi" with Labview runtime engine '11.0'.
The version of subVI might not match the version of the run-time engine  or a VI dependency might be missing.

 

My test stand about window has the following info:


NI TestStand Engine Version 2014 (14.0.0.274) 32-bit
Sequence Editor Version 14.0.0.274

 


I am using Labview Version 14.0f1 (32-bit) but is the above error message telling me that teststand thinks that I am using an older version run-time engine. If so, how do I fix this?

 

thanks

 

0 Kudos
Message 7 of 9
(4,974 Views)

Something still isn't quite correct as I keep getting expected type errors as shown in the image below

(and attached).

Can you tell if I linked the variables correctly by the image below?

Thanks

expected type error.jpg

0 Kudos
Message 8 of 9
(4,938 Views)

Looks like you used the wrong column.

You should be putting the variables you want to log in the Value to Log column.

If you're just assigning variables, that should be done on the Module tab.

The condition column should describe the conditions under which you want to log the values and should evaluate to a True/False.

Message 9 of 9
(4,929 Views)