Thank you for your reply. it's perfect
a écrit : Hi,
Assume Locals.Meas is your measurement. Create a statement step with the expression
Locals.Meas = Round (Locals.Meas * 100) / 100
Regards
Laurent
Thank you for your reply. it's perfect
a écrit : Hi,
Assume Locals.Meas is your measurement. Create a statement step with the expression
Locals.Meas = Round (Locals.Meas * 100) / 100
Regards
Laurent
You can Implement the PreUUT Functionalities in the Main Sequence and call the Functionalities again when error encounters. In this case you dont want to restart or call PreUUT.
Thanks for your answer Palanivel.
The problem here is that the PreUUT defines which task is going to be made. Your solution is appropiate in the case that an error occurs inside the Main Sequence. But I need to handle the errors that happen in another 3 Sequences(A, B and C for example).
If I place the PreUUT funcionalities in those 3(A, B and C) Sequences, it wouldn't make any sense because the PreUUT tells the MainSequence which of these 3 (A, B or C) sequences to call.
Am I explaning myself? If not please ask me what thing i'm not explaining clearly.
Maybe you can use a boolean property that you set to true when a error occur (in the callback PostStepRuntimeError).
When a error occur, you terminate your current execution and restart another one. In PreUUT and PostUUT, you display popups only if this boolean property is false. If it is true, that mean that a error occured, you can get the serial number that was previously stored in a property instead of displaying the popup where you enter the serial number
Regards
Laurent
By terminate your current execution you mean the current step or you mean all the program?
If you mean terminate the step where the error ocurred, how can I make the condition to be evaluated exactly after it comes back from PostStepRuntimeError.
Regards
I just did what you said(Laurent) and removed the Terminated banner with the boolean condition.
But I don't know how to do this "You can get the serial number that was previously stored in a property instead of displaying the popup where you enter the serial number"
Could you be more descriptive?
Thanks.
Yes, when an error occured, you terminate the execution means TestStand execute the clean-up of sequences which are still running, then execute PostUUT and PreUUT.
When you are in PreUUT, check the boolean value (we can call it error flag)
if false (default value), display the serial number popup and store it in a station globals property, then execute the Mainsequence
if true (mean that an error occurred), don't display the serial number popup and get the previous serial numbere stored in Station globals
You can also store the error flag in station globals
Hope it helps
Regards
Laurent
Regards,
Laurent
Thank you I get that.
One of the goals besides of the 'automation' of the tests, is that
if an Error ocurrs:
1. Log that Error
2. Restart
3. Ignore that error if it is still there.
Do you think is it possible to ignore a specific Error after the restart with the same Logic you are using in your last Answer?
I think you should record all your error code in a array when you are in the PostStepRuntimeError callback.
When you got an error and go to the PostStepRuntimeError callback, check whether this error is in this array
- If not, add the new error code in the array and restart your test
- If yes, ignore the error and continue your test
Regards
Laurent
Thank you again for your answers.
That sounds like it really could work. And this array must be a StationGlobal variable right?
Yes
Because you want to reinitialize data at begining of each execution, you can't store data in your sequences. So Station globals seems the good place to me
Regards
Laurent
Hi Lbee11,
I would suggest that a similar question has been asked in the following Forum post:
https://forums.ni.com/t5/NI-TestStand/ProcessSetup-Callback/td-p/2456616
A workaround was given here and way to do this by creating a sub-sequence.
Kind Regards,
Matt Fergusson
Applications Engineer UK
That worked pretty well. Thanks a lot. I'm new to Teststand and thought Terminate wasn't something good to do, and since the instructions that were given to me were another ones, Terminate didn't come to my mind.
I appreciate you taking time to help me.
I have configured a TestStand sequence with a single NumericLimitTest step (using the LabVIEW Adapter but I am not sure that is relevant). My step has a Lower Limit value of INF. I can export my sequence properties successfully (including the LL), using the Import/Export Properties... in the TS Tool menu. However when I import the properties back into my sequence, my LL of INF gets modified to "Infinity" (see post-import screen shot below).
At run-time my sequence works fine, TestStand recognises "Infinity" as infinity but it is a little bit strange that it is not recognised at design time.
I am guessing this is something that has been introduced to TS recently (ish) as I don't recall it working in that way on TS2012 (my previous version). Any thoughts, suggestions or clarifications about why TS would work this way greatly received.
Steve
Hi Steve,
I have tested in TS2016. Export/Import is working on -INF/+INF/INF there
(tested with "none" adapter)
Which version is not working for you?
Regards
Juergen
Thanks Jeurgen
I am running TS2016 as well. I have not been able to reproduce the issue today, I have attempted to recreate what I did yesterday and I have also tried a similar sequence that uses the None Adapter both export and import INF limits fine .
If I manage to get it doing it again I will post up the sequence and properties file.
Regards
Steve
Hi Roxana,
I am trying to log the text of the button that was clicked by the user. The button number does not help when I want to know why the user selected that option. Within the pop-up message step, I use the following to evaluate the button text in "Additional Results":
#NoValidation, Evaluate(Evaluate("Step.Button"+Str(Step.Result.ButtonHit)+"Label"))
This evaluation will give an error if the close button on the pop-up window is clicked.
However, I have found the mistake I was making. In the "Button Options" section I select a button for "Cancel Button". If I select "None" here then the close option in the pop-up window is disabled and the user has to select one of the provided buttons.
Thanks
Sumit
Did you deploy the sequence that the custom tools menu invokes?
Worth mentioning in case you aren't aware, you can automatically install items to the tools menu by adding them to the \ToolsMenuToInstall directory (read more here).
As for the UI only remembering sequence files after they're opened, this is because the Application Manager stores recent sequence files in the userinterface.xml file located at %LocalAppData%\National Instruments\
Hope this helps!
Trent
Hi Trent,
Thanks. I did the same thing what you explained. But the issue is when i opened UI in deployed machine. The tools menu shows inbuilt menu item like , MAX, database.. etc along with my customized menu options. i am not sure how to avoid the default menu item getting appended to the customized toolmeni.ini file. The customized toolmenu.ini file getting updated for the first time when i invoke the teststand from user interface after deployment.
Any input for this.
Regard,
Anand
Hello everyone,
I have a question. I hope this is in the right forum.
At my work we have a automated testcase. We have some Teststand sequences which test the UUT automatically. Sometimes when we are testing, an USB driver stops working (error43 in Device Manager) and we need to shutdown Teststand and LabVIEW, disable the USB device, enable it, and start everything up again.
-I already updated every driver possible and every program on the pc.
-I also looked online, donwloaded some tools to scan the pc for broken and/or corrupted drivers, nothing found.
-I also disabled selective suspending and unchecked the box for disabling usb's to save power.
Anyone had the same issue or something related to it?
System is a Windows 10 with Teststand 16 and LabVIEW 15.