NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

Multiple TestStand Engines/Sequence Editors Instances

 

I am looking for some advice on running multiple instances of TestStand.  Our goal is to run one or more tests on multiple "target" computers.  Each of these targets is completely independent of each other.  It is desired to run multiple instances of TestStand rather than having multiple testing "client" computers.  The goal is for the user to select a target computer along with some configuration information which will be applied to only to the current instance of TestStand.  We plan on using LabVIEW with re-entrant Vis along with the Sequential process model.

 

 

My understanding of this approach is below.  A verification of these items would be appreciated:

  • Each instance of the Sequence Editor is independent.  In the Sequential model, a single execution will be launched
  • FileGlobals and StationGlobals seem to be under the Sequence Context of the instance, i.e. Independent
  • StationGlobals do not update until the TestStand Sequence Editor Instance is re-launched

 

 

General Questions

  • Is there any documentation on running multiple instances of TestStand?
  • How can I deploy a system with this approach?
  • What are the licensing requirements for running multiple instances without the Sequence Editor?
  • What are the best practices for development in "thread-safe" sequences?
  • Is it possible to share StationGlobals across multiple instances of the Sequence Editor?
    • I realize this is possible using a non-reentrant VI in LabVIEW, but is this possible using TestStand only?
    • Is the only method to do this using Synchronization objects?
      • 8-3 of the NI TestStand Reference manual states "you can make a Synchronization object accessible from other processes, such as multiple instances of a user interface, by using an asterisk (*) as the first character in the name.

 

Any advice or feedback would be appreciated.  Thank You!

CLA, CTA
0 Kudos
Message 1 of 8
(5,696 Views)

Hi LVB,

 

I’ve got some suggestions for information that you might find useful.

 

The TestStand Reference Manual is a good place to get overviews if you know generally what you want to do.

Also, for a variable description, you can look at Using TestStand Ch5- Using Variable and Properties.

Start->All Programs->National Instruments->TestStand->Documentation->Manuals

 

StationGlobals are for constants for a machine while file globals are for the specific sequence. If you want to use variables across machines, you’ll want to use Synchronization.

 

For using variables across machines, Synchronization is going to be your best bet for remote execution:

http://digital.ni.com/public.nsf/allkb/C8938454B27D999986256C070062D56B?OpenDocument

 

Licensing for Remote Execution of TestStand Sequences –

http://digital.ni.com/public.nsf/allkb/AC73825EE0DB474286256EAE007FC0B2?OpenDocument

 

You’re going to want one development machine and have deployments on your other machines.

 

Regards,

 

Michael Miracle

NI Americas | AE

0 Kudos
Message 2 of 8
(5,679 Views)

Micheal,

 

Thank your for the response on remote execution.  However, I am looking to run multiple instances of TestStand locally on a single machine.  I should clarify that LabVIEW VIs handle the VI Server calls to the "server computer".

 

We do not wish to install additional software and overhead on the server computers as they have limited resources available.  Instead of having multiple "testing" computers each running a single instance of TestStand, we would like to have a single "testing" computer running multiple instances of TestStand.

 


@MichaelAE wrote:

Hi LVB,

 

I’ve got some suggestions for information that you might find useful.

 

The TestStand Reference Manual is a good place to get overviews if you know generally what you want to do.

Also, for a variable description, you can look at Using TestStand Ch5- Using Variable and Properties.

Start->All Programs->National Instruments->TestStand->Documentation->Manuals

 

StationGlobals are for constants for a machine while file globals are for the specific sequence. If you want to use variables across machines, you’ll want to use Synchronization.

 

For using variables across machines, Synchronization is going to be your best bet for remote execution:

http://digital.ni.com/public.nsf/allkb/C8938454B27D999986256C070062D56B?OpenDocument


I was not able to find information on variables use with multiple TestStand instances in this TestStand documentation.

 

 

Given this clarification, could you provide some suggestions for running multiple instances of TestStand on a single computer?  It would also be appreciated if you could address any of the previous questions from the original post regarding multiple instances on a single computer.

 

 

CLA, CTA
0 Kudos
Message 3 of 8
(5,639 Views)

Hi LVB!

 

You mention that you want to run several instances of teststand for controlling the same number of target computers. Regarding StationGlobals this seems to me not as a good solution. Why don't you run several executions within a single SequenceEditor/OperatorInterface? Then you have a centralized execution control and you can easily switch between the executions aka target computers. You also have one instance of the StationGlobals in memory and this prevents loss of information because the different instances of teststand do not share the StationGlobals (every instance loads the SG into memory when the engine starts).

 

Also regarding performance I think that you do not have a significant advantage by starting several operator intrefaces compared to starting several executions in one operator interface. In fact if you have MANY target computers (50?) and/or your test program is big (for example several MB) then you might run into memory issues because the non-executing sequence file is only once in memory. But as you have application code as VIs on your target computer this might not be an issue.

 

You might also consider to share Sequence File Globals between executions (this works only if you start the same test program in several executions). See sequence file properties. No matter if you use StationGlobals or shared FileGlobals for synchronization: it is faster to use the dedicated synchronization techniques. As far as I know there is no way to use these synchronization techniques between several instances of the teststand engine on the same computer - CMIIW.

 

Ciao

 

 

 

 

 

 

 

0 Kudos
Message 4 of 8
(5,627 Views)

You may have several OI running but I believe they are using the same instance of the engine and are using the same set of cfg files. Therefore if one OI execution changes these files including the StationGlobals and saves them then the other will what to refresh the loaded data with the recently saved version.

 

 

Regards
Ray Farmer
0 Kudos
Message 5 of 8
(5,622 Views)

Ciao and Ray,

 

Thank you for the responses.  You have provided some very useful advice and information.

 


weltaran wrote:

You might also consider to share Sequence File Globals between executions (this works only if you start the same test program in several executions). See sequence file properties. No matter if you use StationGlobals or shared FileGlobals for synchronization: it is faster to use the dedicated synchronization techniques. As far as I know there is no way to use these synchronization techniques between several instances of the teststand engine on the same computer - CMIIW.

 

Ciao


8-3 of the NI TestStand Reference manual states "you can make a Synchronization object accessible from other processes, such as multiple instances of a user interface, by using an asterisk (*) as the first character in the name.

 


@Ray Farmer wrote:

You may have several OI running but I believe they are using the same instance of the engine and are using the same set of cfg files. Therefore if one OI execution changes these files including the StationGlobals and saves them then the other will what to refresh the loaded data with the recently saved version.


Do you know of any documentation on multiple executions using the same TestStand instance?  Ironically, this thread is the first hit when I search on Google.

CLA, CTA
0 Kudos
Message 6 of 8
(5,610 Views)

Hello Michael,

 

The link you posted cannot be viewed:

 

http://digital.ni.com/public.nsf/allkb/C8938454B27D999986256C070062D56B?OpenDocument

 

It says "you are not authorized to view this document".

 

Pls suggest

0 Kudos
Message 7 of 8
(5,492 Views)

Hi AmitKaria2k,

 

How Do I Synchronize Steps Across Processes and Remote Executions - This link has been archived as the content is now in the TestStand Reference Manual (Start » All Programs » National Instruments » TestStand » Documentation » Manuals) in the Appendix B Synchronization Step Types.

 

Licensing for Remote Execution of TestStand Sequences

 

-Michael

0 Kudos
Message 8 of 8
(5,482 Views)