08-14-2018 06:50 AM
I want to automate process for product testing using Teststand. Device that tests products has "4 test plates". Two of this 4 plates uses tests 1 and other two plates use test 2 for testing products. Tests 1 and Test 2 are totally different tests. All tests must run in parallel and they all need to communicate with device and a robot. The robot is putting products on this plates, so TS needs to tell robot that it can load/reload products for testing.
I can realize testing products on first two plates using test 1 - > I used Parallel process model. But how can I realize testing also other two plates with test 2 and with the same TS?
I know I can realize it with using another PC with TS or to open two TS on the same PC. But what are other options?
I also read this:
https://forums.ni.com/t5/NI-TestStand/Independent-sequences-in-parallel/m-p/3575661#M53686
Solved! Go to Solution.
08-16-2018 08:45 AM - edited 08-16-2018 08:58 AM
Let me know if this helps and if you have any questions.
EDIT: updated example to handle error if wrong serial number entered.
Cheers,
08-17-2018 06:00 AM
jiggawax thank you, this is really ok starting point for me...
You select whitch sequence to call by entering serial number.
I need to update this a bit, so that:
1.at test sockets 0 and 1 I execute test A and on test socket 2 and 3 I execute test B.
2. Calling sequence "Test A" or "Test B" is triggered by external signal, for example robot controller. Of Course we can simulate this by some boolean...
Can You give me some advice?
08-17-2018 12:48 PM
If you always know which socket will run which sequence this makes it even easier. You can strip out all of the stuff dealing with serial numbers. And use RunState.TestSocket.MyIndex to trigger which sequence to call.
08-20-2018 01:05 AM
Thanks for advice.
Yes I know that:
-sequence A will always run on Test Socket 0 or on Test Socket 1,
- and I know that sequence B will always run on Test Socket 2 or on Test Socket 3.
The robot controller (connected using TCP/IP) will trigger sequence call. For example, robot puts UUT on test socket 0 and Teststand gets command from controller to run Sequence A on Test Socket 0 (let's say that robot controller will send string "Run_Test_A_On_Test_Socket_0").
So Teststand should wait for robot command and then run sequence. Whitch sequence to run depends on string from controller.
Can You please upload quick example program with this idea?
08-21-2018 08:33 AM
I've done what you are asking before. Unfortunately I cannot share that code with you as it is proprietary. The key is replacing the UUT Dialog with something that communicates with the robot.
This KB helps a lot: https://zone.ni.com/reference/en-XX/help/370052K-01/tssuppref/infotopics/process_model_parallel/
The idea is that you need to override and replace that dialog with something that just polls your robot for messages.
08-21-2018 08:35 AM
Not sure what version of TS you have but in 2014 it is here: C:\Users\Public\Documents\National Instruments\TestStand 2014 (32-bit)\Examples\Modifying Process Models\Overriding Model Callbacks - Parallel Model