11-01-2024 10:20 AM
Hi,
I am trying to evaluate if Teststand would be well adapted for my requirements. I believe so, but I would need some more info mainly to bring it up to my management (to justify some thousands € a year + training ....)
I have a lot of various questions, more or less technical, I am not sure when it is better to actually have a talk with NI or rather ask some advices here, please simply let me know if this is not the right place for that.
I am working for a low-volume production company, simply put: a product is never finished and we are constantly developing it and learning from it --> This is somewhat important as our tests are constantly evolving.
After assembly, every product goes into a verification phase with multiple tests ran throughout a few weeks/months over various testbeds.
Our current very much non-optimal solution is a mix of software I have designed to control our UUTs and acquire data from it on a local PC. This data is transferred to the server and someone run an analysis tool (in matlab) to evaluate the pass/fail criterias. The results are then used to create internal/external reports.
As you can imagine, this is painful, prone to errors, yet somewhat easy to work with, leaves a lot of flexibility and okay-ish so far since we didn't produce so much product.
That last statement is changing, so I am basically trying to change all of that: For one specific test-sequence, one operator would setup the UUT on the testbed, start-up the sequence, and be responsible personnel would be notified a few hours later when the test is finished, pass/fail situation, report creation if required and adding data in proper places/database (to be created...).
While the need of this control-software is still here (for development purposes), I thought of using teststand to develop such test-sequences. But so far with all the videos I saw, I am still not sure with the amount of work this will represent.
What I'm trying to understand if:
Thank you for your advices.
Best,
Vinny.
11-04-2024 12:01 AM - edited 11-04-2024 12:07 AM
There's always a religious war implied with questions like these ...
So as always.... the correct answer is: it depends!
On your company, the knowledge / setup of your team, ....
I am completely biassed. Especially due to the fact, that I had the doubtful pleasure of phasing out homegrown solutions ("how hard can it be to kae a sequencer?") multiple times during my career. Since they dind't scale.
On the other hand: TestStand is no silver bullet either. Yet it is highly customizable.
[EDIT]
Imagine TestStand to be the resusable framework / the infrastructure in which you run the actual tests. Once this is set up, you can focus on the tests themselves
Also... as with every infrastructure/ tool.... you can mess it up: I've also seen some very bad TestStand-based implementations.
@VinnyAstro wrote:
Hi,
What I'm trying to understand if:
- the code I already have can be re-used "as-is" (such as connectivity to the UUT, control, executing text-scripts etc.)
- I am working on a 2.0 version that will come out (hopefully) soon developed with DQMH- I'd like to know if there are any specificities I need to consider for this code re-use.
If you did a good job before creating modular software, it usually is. Code modules used by TestStand can focus on the test itself: you give'em the parameters they need, they return the results, TestStand does the rest.
@VinnyAstro wrote:
Hi,
What I'm trying to understand if:
- If I update my control-software modules, would that also update the code I have in Teststand
- My point being: My control-software has its own project folder. Most likely teststand will work with different dependencies then?
To me, this is more a generic: "how do I arrange my projects" question. The same question holds true for each sofware that consumes another independently maintained software.
You just need to set up your source code control sstem accordingly. Generally speaking, TestStand will only complain, if you are changing the interface of your code modules or LabVIEW version.
TestStand cosumes the code your specifying.
@VinnyAstro wrote:
Hi,
- The videos I saw show very simple drag and drops of tests developed in multiple languages, is it really that simple? So that way I could create the actual tests phases (or even some colleagues could create some in other languages), but my colleagues could create the sequences according to their procedures?
Videos always make it look simpler than it is, but yes, 😉
@VinnyAstro wrote:
Hi,
- Also, our tests typically require a change of Voltage supply (e.g. run test T1 at 28V, change to 18V, run test T2 etc.). I am aware of the parallelization of sequences, but since we do not have 1 PSU/UUT, but rather 1PSU/4 or even 8 UUTs:
- does that mean that I would need to create 1 sequence for multiple UUTs so that there is some sort of synchronisation before changing the voltage for all of them? (e.g. Run T1 at 28V for all UUTs, then change to 18V and run them all S2)
- Or 1 sequence/UUT running multiple times can be also synchronized with other sequences running in parallel? (e.g. Run S1 for UUT1 @28V wait for sync; Run T1 for UUT2 @28V wait for sync; IF Sync change to 18V and Run T2 for UUT1 @18V; Run T2 for UUT2 @18V
- There is also the power consumption concern: It would be nice if I could control when I can execute a test depending on the current power consumption from other UUTs.
TestStand offers multiple complexities for Multi-UUT handling (ProcessModels) and they also come along with multiple synchronization options, which allow you to handle shared resources quite easily like PSUPs.
If you are doing it right, you write that TestSequence once and than just configure the execution to run as many UUTs in parallel as your tester can handle 😉
Don't know if this exactly helps
11-04-2024 04:36 AM
Hi Oli,
@Oli_Wachno a écrit :
Don't know if this exactly helps
Given the main answer to my question was "it depends", you actually provided me with very nice answers, so thank you 🙂
@Oli_Wachno a écrit :
@VinnyAstro wrote:
Hi,
What I'm trying to understand if:
- the code I already have can be re-used "as-is" (such as connectivity to the UUT, control, executing text-scripts etc.)
- I am working on a 2.0 version that will come out (hopefully) soon developed with DQMH- I'd like to know if there are any specificities I need to consider for this code re-use.
If you did a good job before creating modular software, it usually is. Code modules used by TestStand can focus on the test itself: you give'em the parameters they need, they return the results, TestStand does the rest.
Yep ok I see. All of this is still fairly new to me, so I don't know if I can even judge myself in doing a good or bad job, but I guess only experience will tell me.
@Oli_Wachno a écrit :
To me, this is more a generic: "how do I arrange my projects" question. The same question holds true for each sofware that consumes another independently maintained software.
You just need to set up your source code control sstem accordingly. Generally speaking, TestStand will only complain, if you are changing the interface of your code modules or LabVIEW version.
TestStand cosumes the code your specifying.
Yep, makes a lot of sense.
@Oli_Wachno a écrit :
TestStand offers multiple complexities for Multi-UUT handling (ProcessModels) and they also come along with multiple synchronization options, which allow you to handle shared resources quite easily like PSUPs.
If you are doing it right, you write that TestSequence once and than just configure the execution to run as many UUTs in parallel as your tester can handle 😉
I'm not sure what you meant with PSUPs (is it a typo for PSUs or something else?)
And I'm not sure that I was super clear with my initial question either, but it seems that you have answer it quite well, and my problematic seems to be solvable with Teststand that way, so it's cool.
To clarify still, this is very roughly what I meant:
I will look into Process Models with NI teststand.
Thanks again for your help.
11-04-2024 10:28 AM
If PSU is a PowerSupply or similar, it's PSUP in my wording 🙂
When taking a look at the process models, I usually recommend using the Batch model if possible, since it is more convenient to use compared to the Parallel Model.
In the Batch Model you can use so called "Synchronized Sections" which allow you to easily implement different flavours of synchronization
11-05-2024 12:47 AM
We have a financial comparison here that could help bringing your management onboard.