NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

Best way to dynaically create and call seq or steps

I am trying to create an R&D system which allows for the testing of units over temperature and voltage conditions. I would like the operator to have the ability to randomly select a group test steps from a menu, and select whether to run the groups of tests over any number of temperature and voltage conditions. Each test is a unique VI with a unique connector pane and inputs for the course of the test sequence. Test step inputs are identical from one temp and voltage condition to the next.
 
The test list fans out such that a test sequence would perform the group of tests N times the number of Temps and M times the number of voltages. I envision creating testsequence from an array?
 
I need to understand the best way to perform this operation. I've looked in the forums and don't see anything that directly addresses this design challenge. I have explored creating sequences and skipping tests as  necessary but this is cumbersome. I am open to creating a LabView GUI to create the sequence or if there is an  easy way in TestStand?
 
Thanks in advance for the help,
BCE
0 Kudos
Message 1 of 5
(3,696 Views)

BCE,

There are many different ways in which you could implement your test system.  Fortunately, TestStand provides more than enough functionality so you could implement it in different ways.  One of the possibilities you mentioned in your post was to use LabVIEW to generate the TestSequence.  Although this is a good idea, and one that I have seen other customers use, it does have its drawbacks.  In order to create your Sequence you will have to save each Step's information in one of two ways.  You could save it in a file which you would parse through using your VI, or hard code the information into the VI's algorithm.  In both of these cases we will need some kind of file containing the Sequence information, be it a text file or a VI. 

Wouldn't it be easier to save all the Step information from your Sequence file in a Sequence file itself?  This begs the question, would it be necessary to create a Sequence at all?  Why couldn't we use a Sequence that contains all the possible steps and just disable the execution of some of them based on user input?  In your post you say that you find it cumbersome to skip certain steps.  In my opinion it is much more cumbersome to create a Sequence every time we want to run a test.

Therefore, I believe the best way to implement your system would be to have the first Step of your Sequence pop up a dialog box where users could select which types of tests they want to run.  (You might even want to add this to the Serial Number window inside the PreUUT callback).  Based on the users' input we would update an array of local boolean variables which determines what tests or test categories should be run.  Each Step in the Sequence would contain a precondition that would read the value from this array and determine if the Step would be executed or not.

Just my two cents.  What does the rest of the community think?  There is more than one way to skin a cat and TestStand provides more than enough silverware. 😉

 

Regards,

Santiago D

Message 2 of 5
(3,680 Views)

Santiago,

Creating a Sequence File of all of the possible test steps solves half of the problem. I am pretty new to TS, but i believe that the For Each flow control steps may solve the temperarature/voltage nested loop requirements. Use a pop-up to get temperatures and voltages and store in an array.

I'm not sure how I could change the order of the steps to allow for random test order within the temperature and voltage loops?

Thanks for your suggestions and any further ideas,

BCE

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

Hello BCE,

I am not exactly sure what you are trying to accomplish.  In your first message you mentioned that you wanted the user to be able to randomly select which test he wants to run.  If this is the case, you can create a sequence that runs steps based upon the users selection.  Santiago's suggestion of using a boolean array to determine whether a step executes or not would work great in this case.  Once you have a boolean that indicates if a step runs, you can use the pre-conditions section of a step to determine if it executes.

If you need to randomize the order of the steps in the sequence file (and not just execute or skip a test), you will need to programmatically create a sequence file.  You could programmatically create the sequence in LabVIEW or TestStand using the ActiveX server.  If you would like to see an example of how to do this in TestStand please see the example called 'Sequence Builder.seq' typically located in the following directory

C:\Program Files\National Instruments\TestStand 3.5\Examples\SequenceBuilderTool\LabVIEW

Regards,

Jesse O
Applications Engineering
National Instruments

Jesse O. | National Instruments R&D
0 Kudos
Message 4 of 5
(3,643 Views)

Jesse,

I'm trying to create a random order of the tests, so I will need to create a test sequence each time. Thanks for the suggestion, I'll check out the example.

 

BCE

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