NI TestStand Idea Exchange

Community Browser
Top Authors
cancel
Showing results for 
Search instead for 
Did you mean: 
Post an idea

Hi,

 

Recently I've discovered that it would be very useful if developers can have a function which allows them to re-initialise all variables and limits containers for all test steps to the default value.

 

By default value I mean the state as the variables and limits containers are just after the sequence file is open.

 

This function would be used in the situation when the test station is testing a lot of DUTs one after another and as a result of this the MainSequence is called, but not re-loaded, every DUT tested. Without this function, as it is now, developer have to explicitly reinitialise all variables they are interested in. However, it causes the risk of forget to refresh/reinitialise some variables, which could lead to long and costly debugging.

 

Proposal (sudo code):

FileGlobals.ReinitialiseToDefault()

Locals.ReinitialiseToDefault()

ResultsContainers.ReinitialiseToDefault()

LimitsContainers.ReinitialiseToDefault()

 

It looks like to implement it on the sequential model needs a lot of modifications. http://forums.ni.com/t5/NI-TestStand/Loading-default-limits-for-every-execution/m-p/2943434/highlight/false

Hi,

 

I'd like to return to the idea posted by me on the forum here: http://forums.ni.com/t5/NI-TestStand/Concession/m-p/1458500/highlight/true#M31968

 

It would be very good if teststand would offer the native testing against multiple limits. Let say the test will pass if the measurement is less than 5 and it pass under concesion when is less than 7, otherwise its fail.

 

So, summarising TS shall have the ability to delinie not only one set of limits per measurement along with the different kinds of passes.

Hi,

 

As in subject,

 

It would be good to have the Fail execution option. When the step will fail the execution pointer shal be moved to clean-up part of the sequence (and parent sequences) and the whole execution will be marked as failed

 

forum.png

Currently the message popup step is quite primitive.

 

It would be good to enhance the functionality of this step.

 

Proposal: pressing the any button definied should be able to trigger the set of TS commands (as in Statement step) definied for any button.

 

In this case it would be helpful in that way that developers won't be needed to program separate modules to process the flow control flags and user interface popup.

Hi,

 

I'd like to propose a new feature for consideration. I'm missing the feature using which I could measure how long it takes to execute the freely chosen block of steps. To do this the new step would be needed.

 

Let say the step type name would be: "Time elapsed".

 

User would be able to specify the name for every instance of the step used, in the way as we can use the names in Rendezvous instances. And exactly as it is done in the rendezvous step type it would be some operations associated with that step type.

 

1. First call of "Time elapsed" step type would be called wit the operation: Create. The one obligatory argument would be the name.

2. Every other call of this step type with reference to the same name, apart from the last one, would be optional. The operation name this time would be Lap Time this time. The step would return the amount of time has gone from either the Create operation or the previous Lap Time operation.

3. And the last call of this step type with reference to the same name should be invoke with the operation called Finish for example, and it would return the time has passed from the first call of the step (with operation Create).

User would be able to create a lot of time elapsed type gauges, distinguish by their names.

 

This functionality would allow to measure the speed of the sequence during execution.

 

Example (sudo code):

 

TimeElapsed.Create("test01") //somewhere in the sequence

...

TimeElapsed.LapTime("test01") //somewhere in the sub-sequence

...

TimeElapsed.LapTime("test01") //somewhere in the sequence

...

TimeElapsed.Finish("test01") //somewhere in the sub-sequence

 

Values returned respectively could be:

0s

32s

35s

107s

 

Kamil

Hi,

 

I suggest being able to group steps in a sequence:

 

TS_Group_Steps.png

 

Steps that are grouped should in interactive mode be forced to be handled together, e.g. "Run selected steps" would always select all the steps in the group. This way you could re-use certain steps multiple times down the sequence without allowing such steps to be executed by themselves (or the opposite, make sure certain steps were never executed without surrounding safeguards).

 

Today we'd usually enclose such must-work-together steps inside sub-sequences, but that solution does not safeguard against selecting a single step within that sub-sequence for execution by itself, and sometimes putting steps in a sub-sequence is non-optimal (one such case is when you have disabled tracing into subsequences, but this particular set of steps you'd like to have tracing on - I know there are ways to go about this, but these are cumbersome and non-trivial to spot when editing the sequence).

 

I wouldn't add any extra configuration options to a group, it should simply be a group/ungroup thing - all settings still being on a per step basis.

 

The use cases for a group could be expanded into making it easier to select a co-working set of steps for copying and pasting, it would be a good way to document co-working steps and so on.

 

Cheers,

Steen

In every TS step we have the looping feature. I find it very elegant feature which allows us to save implementing full loops for singular steps.
 
I wonder if some statistical information to the looping feature can be added to the looping feature.
 
We could image that there is a step with the i.e. LV module which is responsible for acquiring one sample of data. Let say the sampled signal is noisy. It would be fantastic if we can use this singular step which acquire singular sample and the looping feature of the TS step to get multiple samples and to have a statistic the samples taken. The statistic could be:
--averaging
--mediana
--standard deviation
--etc...
Now, if the number is exactly in between if two integers, TS rounding function uses bankers rounding method as a tie-breaking rule. Although bankers rounding tie-breaking rule generally secures equal statistical error distribution, in case of a need of rounding numbers with only one decimal place this tie-breaking rule produces output which could be different than - let say a natural - expectation. 
 
For example if we have a group of numbers like below:
 
{-2.0, -1.5, -1.0, -0.5, +0.0, +0.5, +1.0, +1.5, +2.0}
 
the basic expectation is to have them rounded like that (round-half-up):
 
{-2.0, -1.0, -1.0, +0.0, +0.0, +1.0, +1.0, +2.0, +2.0} 
 
However, using banker-rounding method instead of the rounding as above we see:
 
{-2.0, -2.0, -1.0, +0.0, +0.0, +0.0, +1.0, +2.0, +2.0}
 
I think round half up tie-breaking method option should be added for developers to use.
 
BTW: (the + and - signs and .0 notation are used just to keep the numbers to be easy to compare)

To change the step name the command Step.Name is commonly used.

 

However, if the step contains multiple measurements, changing their names dynamically is impossible.

 

It would be good if this opportunity would exists.

 

 

Hello

 

Execution of a single step is a process executing a lot of steps depending on looping and synchronization. Needing the option to call a PreExecuting and PostExecuting step before taking Looping, PreConditions and Synchronization options in consideration and after all other steps are executed. This is intended to custom step types for use with external customers.

StepExecution.png

StepType-SubSteps.png

 

Thanks Vagn

When developing code for the customization of the User (Operator) Interface, I would like the capability to provide my own custom dialog box for “Loop on Selected Steps” by overriding the standard dialog box that TestStand provides. TestStand provides this standard dialog box when the command kind “Loop On Selected Steps Using” is executed.

 

The problem in our production environment often is our production technicians are required to (manually) perform interactively with a series of sequence steps and repeat those steps 29 times (Our strict regulatory guidelines). Most of our technicians are technologically challenged in our production environment. In our environment, I have developed the TestStand User Interface to where the TestStand Execution and Sequence Views are hidden to production operators but visible to the developers (engineers) and administrators for trouble shooting capability.

 

If a custom dialog box cannot be done, at least provide the capability to where I can programmability change the properties of the “Loop On Selected Steps”. At least allow the dialog box to be programmability set to where I can set the number of loops, set the stop condition, stop expression, enable/disable the controls or hide the dialog box without the operator needing to manually entering those values into the dialog box.

Presently we can login into Teststand using the windows login. Carrying this forward it will be good if all Teststand configurations ( ex report type,process model,search directories) are user specific.

 

This will need maintaining separate config files for each user.

On start Teststand will check the windows user name logged in and accordingly copy relevant config files and configure the Teststand.

Being new to TestStand, this idea may actually already exist, but it would be great if there was a way to show what references are either still open at the end of an execution. I am having the dickens of a time identifying open refernces with very large scale programs, and if the open references overcome TestStand and it crashes, there seems to be no way of finding out why, assuming open references are the major player.

A TestStand configuration wizard

 

I would like to see a TestStand configuration wizard that would walk a developer through a checklist of all of the most important configuration settings and generate recommended changes.

 

It is best for a developer to be already familiar with Best Practices as in the following link:

 

Best Practices for Improving NI TestStand System Performance

http://zone.ni.com/devzone/cda/tut/p/id/7559

 

However, it would also be nice to have assistance in recording WHY certain choices are made as shown in this image:

17669iC6E2378DE5CA3B29

 

 

Eugene

Hi,

 

As in subject: allow the *.llbs, build as the Source Distributions in LV Application Builder, to work  with TestStand as indemendent application instances.

 

K.

Hello,

 

I have a sequence which must loop a very long time, with cyclic access to hardware components.

In order to limit the amount of memory used by my application i decide to use the famous "Disable result recording" flag.

 

Beside this problem, my sequence don't have to collapse in case of runtime error (Due to hardware manipulations during execution),

and operators don't have to aknowledge the "error dialog box" ... every time an error occurs !

 

To handle my runtime errors, i deceide to :

 

  • The main sequence is a loop calling the different fonctionnalities by sequence calls 
  • I configure the sequence calls with "ignore RTE", so my mainSequence never stops on runtime error 
  • I Configure the "runtime error handling" with the Run cleanup ... so no popup disturbs the operator

This is OK, but i also want to treat my errors (Tracing at least) ... and then i get the folowing problem ...

 

  • The errors are no more accessible using Runstate.previousStep.result.error... ... Runstate.sequence.main.... .... , because i have used the "Disable result recording" flag.
  • Storing a runtime error in locals is not possible in post expressions ... because post expressions are not executing after a runtime error

Perhaps the only way to handle my problem would be to use the SequenceFilePostStepRuntimeError callback ... 

But doing so, would need to use stationGlobals or FilesGlobals to get back the error in my main sequence. (A complicate architecture only to get an error !)

 

So, it would be nice, to be abble to ...

 

  • Let the result recording working
  • This make the runstate.previousstep.result.error... works fine
  • And sometimes, be abble to flush the result tree (Using a new API function. Something like <Execution>.FlushResults( ....) )

PS : My sequence don't use any report, database writing ... thats why disabling results recording is possible !

 

I don't know if i am clear ? (And with my bad english ???) Smiley Frustrated

 

Manu.

This would be a useful feature to recover from a unreposive code module. Particularly useful, if the code module communicates with the firmware inside the DUT which could become unresponsive due to unforeseen erronous conditions.

 

This option should be optiional. It should be configurable with different timeout values. Once set and configured, then TestStand shall stop executing the code module, return from it and generate an error.

Hi,

 

Sometimes I can find difficult to access arrays using indexes. Although straightforward it can be difficult to maintain in certain situations, like calibration data for a lot of frequencies. Lets imagine you have a table of sixty calibration factors per frequency and forty frequencies, generated by third party software to the excel file.

 

It would improve accessibility if we could name columns and rows and use their names instead/along with the indexes.

 

We can access the array data like AnArray[4][6] now. In this idea we could access the data like that: AnArray["63dB”]["125MHz"].

 

When we would like to import the data using property loader it would be easier to access the data with defined names of colums and rows rather than indexes. (data binding)

Hi,

 

Firstly, I've discussed the topic how to programatically disable assesing results here.

 

I've realised there is no such option. Only one alternative is to swich the comparison type to LOG going thru the steps one-by -one.

 

It would be good to have the override method not to compare ALLresults in the sequence (during execution).

Hi,

 

It'd be good if we can see the results come from multiple test limits display as we can see the result comes from single limit display.

 

For example during the runtime for numeric single limit test we see {111.12} in the execution tab.

 

It'd be good if for multiple numeric limit test we could see for example: {11.13, -12.6, 1234.445}. Now nothing is displayed.