NI TestStand Idea Exchange

cancel
Showing results for 
Search instead for 
Did you mean: 
MimiKLM

New feature request: Time elapsed step type

Status: Declined

I'm declining this due to lack of community support.

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

3 Comments
dug9000
NI Employee (retired)

Perhaps you'd prefer a step type for this, but you can already accomplish something very similar as follows:

 

Create local variables:

 

Locals.StartTime

Locals.LapStartTime

Locals.LapEndTime

 

Then in your sequence:

 

Expression Step (Equivalent of Create):

    Locals.StartTime = RunState.Engine.SecondsSinceStart,

    Locals.LapStartTime = Locals.StartTime

 

Expression Step (Equivalent of LapTime):

    Locals.LapEndTime= RunState.Engine.SecondsSinceStart

    Locals.TimeElapsedSinceLastLap = Locals.LapEndTime - Locals.LapStartTime,

    Locals.LapStartTime = Locals.LapEndTime

 

Expression Step (Equivalent of Finish):

    Locals.TotalElapsedTime = RunState.Engine.SecondsSinceStart - Locals.StartTime,
 

Hope this helps,

-Doug

MimiKLM
Active Participant

Hi dug9k,

 

Your solution represents functionality I want. But it would be more easy if you could do that as only as injection of few steps, and get it recorded.

WireWeaver
Active Participant
Status changed to: Declined

I'm declining this due to lack of community support.

https://www.linkedin.com/in/trentweaver