NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

Solution for multiple station variants

Hello everyone,

 

I am looking for a long term solution for station management when same UUT is tested using differently configured stations to a subset of test specification.

 

What is the preferred method to customize test sequence then deploying? We now use local version controlled configuration files to store test limits and other parameters that need to be changeable post-deployment.

 

For instance, I need to test the same unit before conformal coating, after coating and after some mechanical assembly. If it fails, then I want to test it on a repair station. All stations use the same T&M instruments, all are based on the same test specification, but only a subset of tests are possible on each of them. For example pre-ceating test can use test points and connectors, post-coating can only access connectors and something can only be tested after the assembly. And standby current, some voltages are measured in every test. If something fails, QA will test the unit in repair station that has access to everything and some thorough tests that are not used in production.

 

0 Kudos
Message 1 of 4
(2,184 Views)

Hello Paulius,

 

I have some ideas on your questions respectively seen solutions for this. I assume that your production and test processes are at least mostly standardized, e.g. by your production planning department.

Having this, I'd define all test limits for all tests centrally and roll them out to all stations whenever they are changed.

On the test stations, it depends: Do you have dedicated stations per test? E.g. Station A does only the pre-coating test, Station B the post-coating one etc.? Or can all stations do all tests?

In the first case, I'd have a local setting / configuration file that determines the station type. That station then runs only the needed set of tests. In last case, you could either let your operator select the proper test set or use a barcode scanner to do so.

Of course you need a system to store all results of all tests, e.g. <UUT-ID>-<Test-ID>-<Test-sequential number>, e.g. 123456-10_PreCoating-01 for the first coating test, 123456-10_PreCoating-02 for the second one, in case the first failed, etc.


Ingo – LabVIEW 2013, 2014, 2015, 2016, 2017, 2018, NXG 2.0, 2.1, 3.0
CLADMSD
0 Kudos
Message 2 of 4
(2,158 Views)

Hello ikaiser,

 

thanks for your reply. First, answers to your questions. Every station has the same instruments, but unique test fixture to suit UUT at a specific production stage. Therefore every station can only do a subset of tests and must be configured according to where it is in the process.

 

Regarding your suggestion, I am now going the way you have suggested, more or less.

I made a Boolean array with a parameter per test step. In code, every test step now has it's corresponding parameter as precondition. If parameter is set to true, step runs and is skipped otherwise. Skipped steps can also be excluded from report. To control this I added an enum with possible station variants and use it to select and load a preset to the array. I built the array as a custom type so that I could centrally modify step names and add or remove them.

The concept works.

 

What is missing so far is external configuration storage. I could put the enum in station globals, I could put it in a configuration file next to all the limits or maybe do something else, so that when test software is updated, the enum's value is retained.

0 Kudos
Message 3 of 4
(2,151 Views)

@Paulius wrote:

 

What is missing so far is external configuration storage. I could put the enum in station globals, I could put it in a configuration file next to all the limits or maybe do something else, so that when test software is updated, the enum's value is retained.


To me, this sounds reasonable. To make this easier to update and maintain, I'd try something like this:

  • Have an array or all possible configurations, that is maintained centrally, part of the TestStand project. (Speaking in your project's language: Have a "parent array of the boolean arrays". If I understood your explanation correctly, this is exactly what your enum is.)
  • On each station store a value locally. This value defines which configuration to read from the enum/parent array.
    • You could either use the station type ("coating test", "wiring test"),
    • or have another lookup table stored in your TestStand Project, that links the hostname or any hardware ID of the computer to the wanted configuration (if possible in your TestStand version).
  • Regarding the station variants stored in the parent array/enum:
    • You could either have only the current configuration of each station type ("coating test", "wiring test") and then access these from the station.
    • Or have all versions that ever existed of these ("coating test 2015-05", "coating test 2017-06", "coating test 2018-08", "wiring test 2011-01"). This way, you can add a new version into the project, but still have control of when exactly a station switches the test it uses (as you have to change the ID read on the station).

Ingo – LabVIEW 2013, 2014, 2015, 2016, 2017, 2018, NXG 2.0, 2.1, 3.0
CLADMSD
0 Kudos
Message 4 of 4
(2,125 Views)