12-09-2009 02:54 AM
Solved! Go to Solution.
12-09-2009 03:43 AM
This question does not depend on PreUUT or ParallelModel at all.
First of all:
A Runtime Error is a situation where TestStand encounters a problem which makes further testing either impossible or senseless. So a Runtime Error always indicates a situation where proceeding the test sequence is not recommended.
Nevertheless, there are situation where you want to handle those errors without stopping the execution. A "traditional example" for this is initialising serial/GPIB devices. If the device does not reply, there might be different issues the operator can easily resolve and (if corrected) the sequence can proceed properly. The operators action could be:
- Check if device is switched on
- Check connection between PC and device
- ...
So the error state is used to inform the operator about the malfunctioning device and regarding of the actions the operator takes, the execution will either proceed or terminate.
When TestStand encounters a Runtime Error, it initially reacts with displaying a dialog. This behavior can be modified in the Station Options >> Preferences >> On Runtime Error.
Furthermore, you can install callback sequences which are called if an error occurs. Those would be either SequenceFilePostStepRuntimeError or ProcessModelPostStepRuntimeError (depending on the fact if you are changing the process model or simply working with client sequence file callback overrides). These are "normal" sequences you can use in order to get system information, loop on the step or....essentially do whatever you want. If you want to proceed though, you must not forget to reset the error flag.
hope this helps,
Norbert
12-09-2009 05:15 AM
12-09-2009 06:39 AM
Bendy,
there is no decent way to do this. The reason is the following: TestStand assumes that if a failure occurs in the setup mechanism for a single testsocket, it makes no sense to proceed with this testsocket at all. It is recommended to handle shutdown routines in this case using the SequenceFilePostStepRuntimeError callback. You can also use this callback to loop on the step which creates the error until the error is resolved.
By default, TestStand does not support an ackowledge of the error but proceeding into the sockets execution. You can only simply ignore the error (removing the error flag) or you can implement your own functionality. You can for instance set a custom error flag which will be evaluated as first step of your main. If the flag is set, you skip everything in your main.
I know that this suggestion seems not to be a good one because it's "hack mack", but it solves your issue. TestStand, as already statet, evaluates runtime errors which occur in the PreUUT as system critical failures and proceeding with any testing is not suggested....
Norbert
12-09-2009 11:07 AM
For completeness, I should mention that the behavior of not calling PostUUT if any error occurs in PreUUT is not hard-coded into Teststand, but rather is expressed in the process model. In this case, in this case in the Test UUTs -- Test Socket Entry Point sequence in ParallelModel.seq.
You could probably set the call to PreUUT to ignore RTEs and set a post action to branch to PostUUT is the status is "Error". In PostUUT, you could pass the status of the PreUUT call.
Not recommending it, just saying......
12-09-2009 09:10 PM
12-10-2009 07:17 AM
12-11-2009 12:17 AM
See attached example (TS 4.2)
Norbert