Logning from single pass execution in TestStand
I am building a test system in NI TestStand 2019. The base principle of the system is that we have what we call a Station Control sequence file, which runs at system startup. The execution of this sequence file is the one to receive a UUT ID (part number and serial number) and then select the appropriate product test sequence file. This is done in an override of the PreUUT callback sequence.
Once we have the path for the product test sequence file, we start a new TestStand execution with this sequence file. It is run in the "Single Pass" execution entry point, since we do not want it to loop. We need to return to the Station Control execution to scan the next UUT barcode. The Product Test execution is started with the "Initially Suspended" flag set. We then clone the UUT container from the Station Control Execution to the Product Test execution to make sure we have the correct data for loading property files and logging, befor resuming the Product Test Execution.
This works perfect for the standard reporting and databas logging in TestStand, however in WATS I only get the steps from the MainSequence of the Station Control execution which I do not want any logging from, but not steps from the Production Test execution.
How do I solve this? Can it be true that it is not possible to log data to WATS when running Single Pass?
Hope you can help, thanks.
Yes, the WATS add-on do not create a UUT report using Single Pass, because we do not want UUT reports missing Serial Number, Part Number etc. (by default used for debug).
There is an option in the add on to disable looping (see section GeneralOptions.config in the User Manual PDF installed with the client), but it may not fit you depending on the setup.
Do you execute the "Station Control sequence file" using a model (e.g. SequentialModel)? If so, one option is to change the "Station Control sequence file" to a Model type. (to avoid a UUT with steps from the MainSequence of the Station Control execution).
Second, you may modify the WATS_ReportLogger.seq plug-in - Model Plugin - UUT Done - IF sentence to include Single pass. If you do, make a copy of the original WATS file (a client update will overwrite the file), and disable report generation on this one.
We could also do an online session to discuss this in detail, just submit a ticket to firstname.lastname@example.org and we can schedule a date.
Nice hearing from you, its been a while since w last ran in to each other :-)
For the Station Control sequence file we use the sequential model right now. I had not considered turning it in to a Model type sequence, but I guess that is an options we could look into.
My college Mads told me that he had done the solution of changing the WATS Model Plugin sequence file in his previous job. I must say that I will prefer not to do that, since I then will be the one responsible for maintaining it. And as you write, an update of the WATS client will override it, so that is bound to go wrong at some point in time.
After I had send the post in here I looked in the WATS_ReportLogger.seq, and found that you make an if statement on the execution entry point "Test UUTs". If the point is that you do not want to make log entries if you are missing a serial and / or part number, would it not be more robust to just check if these strings are empty or not?
I have right now made a bit of a hack that makes it work, but it is hack. I have made an override to the ModelOptions callback in both my Station Control sequenec file and my Product Test sequence file. In the first I set EntryPoint to "Singel Passe" in stead of "Test UUT's" and in the other I do the opposite. It works, but I do not like it.
I am out of office tomorrow, but I will discuss it further with Mads and Steen on Monday.
Same to you.
I agree, using standard WATS add-on files is preferred. We do make some improvements to the files and having your own version(s) will require you to merge these changes.
I would have to test the impact of changing that IF statement, but would it also be an option to disable looping with the WATS setting and use the "Parameters.ModelPluginConfiguration.RuntimeVariables.ModelDialogsEnabled.SequentialShowSerialNumber" property to disable the Identify UUT popup?
Let me know your thoughts on this.
I have now set "LoopUUT" to False in the GeneralOptions.config file, and it almost does the trick.
The Product Test execution does not loop back but I get the status banner twice; once for the Station Control and one for the Product Test. It there a config parameter for this too?
I think that in any case it would be an improvement to not IF on the name of an execution entry point, but on something closer to the cause for doing the IF statement. So I hope you can look in to this possibility.
Hi, yes, we'll consider that.
Disable status banner: https://virinco.zendesk.com/hc/en-us/articles/207424543-Disable-or-edit-timeout-Sequential-Status-Dialog
I have two issues I need to mentions.
First, what I sad yesterday about that it was working with "LoopUUT" = False, turns out not to be quite true. The issue is that this option does not prevent the system from getting a log entry from the Station Control execution in the WATS database. And this is because the IF("Test UUTs") statement is still true. It is an entry with no steps, but still it should not be there.
The second issue is that the option you suggest in the linked post will make the dialog disappear completely, not just for the Station Control execution. Should I use the "WATSOptions" callback sequence to keep it from appearing in the Station Control execution, I would need to use the "WATS_SequentialModel" for this sequence file instead of just the normal Sequential model. But then I have a new issue which is that the setting "LoopUUT" = False also applies to the Station Control execution. So it terminates after just one run.
Essentially the problem is not solved with these workarounds. The only thing that fully works right now is my hack from last Wednesday. We can probably live with that for now, but as I have previously stated you should really look at another and better way of deciding if results should be logged or not. Relying on just the name of an execution entry point is very fragile in my opinion.
Section 1; yes, change "Station Control execution" to a model.
Section 2; change "Station Control execution" to a model.
If you like, let's discuss this in a Teams session. Submit a ticket to email@example.com and we'll plan from there.
Please sign in to leave a comment.