Test Stand is an ideal tool for managing test sequences; test limit management; reporting and database result logging. A surprising number of installations use the default Sequence Editor User Interface (UI) to run production tests.
Test Stand Sequence Editor UI
Test Stand Sequence Editor
It is easy to run sequences from the Test Stand editor, however it is a highly complex UI,designed for the software developer, not for operators.
LabVIEW UI with Test Stand Controls
There are several Test Stand controls within LabVIEW and two example VI’s to give you a starting point for creating a custom UI.
Example LabVIEW UI with Test Stand Controls
Test Stand controls give developers access to many Test Stand functions without having to do much work behind the scenes. However, there is limited customization that can be made to Test Stand controls.
Creating a Custom UI
We were recently given a task to make a completely custom UI, using controls and indicators that did not look like Test Stand controls. The challenge in doing this was how to get information from Test Stand, in a way that can be displayed in a custom control.
Custom LabVIEW UI for Test Stand
The UI above, use a Tree control for the Procedure List. This is generated by parsing the Test Stand sequence for step and sequences names, results and status.
Buttons on this UI are easily customised in LabVIEW, functionality then needs to be added to send the correct command and parameters to Test Stand to start sequences, pause or abort.
Use Messages to Communicate to Test Stand
As recommended by Chris Roebuck and Mathis Baumert, it is beneficial to create ‘Thin’ Test Stand sequences, that communicate with modules within a LabVIEW application and perform the measurement or control functionality. This gives the ability to be able to debug all the test software functionality outside of Test Stand. Chris Roebuck also mentions a benefit that if each LabVIEW module uses events, it is possible to create a Sniffer that can monitor the data being sent back to Test Stand.
Get Updates from Test Stand with Trace UI Msg
Test Stand generates UI Messages during test executions to notify UIs that events have occurred. A full list of the default UI Messages can be found here.
A Trace message exists (UI_Msg: 4) which when Tracing is enabling in a sequence, will publish all step details using this event. Test Stand publishes this event when each step completes execution.
LabVIEW Callback VI handling Trace Events sent from Test Stand.
The event contains a reference to the step that has just finished executing, so in the UI it is possible to add code to get Step Type, Step Parameters and Step Results from this reference.
In the example above, a sub vi is used to use the step reference to build a cluster of step status, name, and results. This is then sent as a LabVIEW Event for the main UI to be handled and ultimately, displayed in the Sequence Tree control.
Send Data from the UI to Test Stand
As the decision has been made to use thin Test Stand sequence that communicates via a messaging API, getting data from the UI to Test Stand is a little more challenging. A message must be sent to Test Stand, but we must be sure that Test Stand receives it at the correct point in sequence execution.
It turns out we can use Test Stand UI Messages again to do this, as UI Messages can be Asynchronous or Synchronous. Synchronous messages can be used to set the value of Test Stand Variables.
This means we can generate a UI Message from Test Stand, including the parameter of the variable that we want to set, then use a LabVIEW callback in the UI to handle the event and set the value from the UI.
UI Msg Generated in Test Stand is handled in LabVIEW Callback. The parameter is sent back to Test Stand as a String.
Developers can create their own custom UI Messages starting at index 10,000. So you can build into your application any number of custom messages to communicate between Test Stand and a UI.
It does take a lot of effort to develop a custom UI for Test Stand. However, once understood, these techniques can produce a highly customized and attractive UI for Test Stand based software applications.