11-21-2011 04:02 PM
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:
General Questions
Any advice or feedback would be appreciated. Thank You!
11-22-2011 02:25 PM
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
11-30-2011 10:28 AM
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.
11-30-2011 01:37 PM
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
11-30-2011 02:10 PM
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.
11-30-2011 07:26 PM
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.
04-25-2012 01:56 AM
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
04-25-2012 10:19 AM
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