NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

Suggestions for Optimizing Preload?

I have a few questions in regards to Preload options for TestStand.  I am writing a custom user interface with the NI TestStand UI Controls.

 

1. When loading large sequence files, TestStand does not display progress and appears to "lock up" both TestStand and LabVIEW.  Is there any way to display progress during preload?

 

2. Is there a method to Preload sequence file steps that could be called in the background while the user is doing other tasks?

I have attempted to "Run" and abort immediately, but this generates a failure report in addition to locking the LabVIEW UI while the preload occurs.

 

 

Any advice would be greatly appreciated!

CLA, CTA
0 Kudos
Message 1 of 11
(4,923 Views)

All code modules have to be in memory when the execution is calling them.

That being said, you have to invest the time to load the modules.

 

What can you do in order to reduce the initial loading time?

Distribute the loading of the modules to different locations. You can do this by setting different "load options" in your sequence for each module.

The possible selections are:

Preload when execution begins (default): Loading takes place in the first run if the module is not already in memory.

Preload when opening sequence file: Loading will be done when you load the sequence.

Load dynamically: Loading will be done when the execution enters the step and the module is not already in memory.

 

hopt his helps,

Norbert

Norbert
----------------------------------------------------------------------------------------------------
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.
0 Kudos
Message 2 of 11
(4,914 Views)

Thanks for the response Norbert.

 

I was already aware of how code module loading (preload) operates.  However, I am looking for solutions to the questions #1 and #2 above.

CLA, CTA
0 Kudos
Message 3 of 11
(4,904 Views)

If you set the Options for the VIs in a sequence file to 'Preload when Opening Sequence File' the interface will 'lockup' after you call the

 

ApplicationMgr

OpenSequenceFile Method.

 

While there is no way to determine exactly how much time it will take for this to occur, what I do is simply start a progress bar before calling the method and then close the progress bar afterwards.  The progress bar will be continuing to run BUT will still give the Operator some indication that the application is not locked up.  We had issues where the operator thought the application would hang on opening large sequence files.

 

Using the default 'Preload when execution begins' will 'hang' TestStand when the Executions starts.   We used a UIControl to start the execution so it is not as easy to add a Progress Bar to the code becasue the UIControl execution is not contained in a event structure but is behind the scenes.

 

See attachment for my progress bar,

 

Thanks,

 

PH

 

 

 

 

0 Kudos
Message 4 of 11
(4,900 Views)

Teds,

 

I have actually implemented similar code upon the EntryPoint1 (Single Pass) button click.

 

My sequence steps use the "Preload when execution begins" and "Unload when sequence file is unloaded".  It appears your sequence steps are using "Preload when opening sequence file".

 

The issue I have with the progress dialog is the LabVIEW interface seems to stop redrawing upon clicking "Single Pass".

 

  • If you minimize to the desktop while your "progress dialog" is displayed (Win+D).  Then re-display (Win+D again) does your dialog display properly?
  • Could you post your progress dialog?

 

Thanks

CLA, CTA
0 Kudos
Message 5 of 11
(4,895 Views)

I recommend you consider posting the idea of adding progress indicators for preloading to the TestStand idea exchange.

 

http://forums.ni.com/t5/NI-TestStand-Idea-Exchange/idb-p/teststandideas

 

-Doug

0 Kudos
Message 6 of 11
(4,893 Views)

Are there any suggestions for displaying a dialog while preloading occurs?  Is there a certain execution thread the VI should display in?

 

Currently, it appears the system is "locked up" as described in my previous post.

CLA, CTA
0 Kudos
Message 7 of 11
(4,774 Views)

LVB

 

Your system only appears locked up when the user minimizes to the desktop? WIN +D?

 

I noticed in my implementation that clicking on Win + D causes the progress bar to stop and the operator interface window appears hung, at least most of the time.    Normally, it works fine and the progress bar increments.

 

I used a progress bar with an Above Normal Priority but it has the same Execution system as 'same as caller'  I spawn the VI using VI server.

 

You could always play around with different priority and Execution settings.

 

Thanks,

 

PH

0 Kudos
Message 8 of 11
(4,770 Views)

The system always appears locked up.  Sometimes for up to 5 minutes due to the size of the sequences.

CLA, CTA
0 Kudos
Message 9 of 11
(4,759 Views)

Here is my attached Launch VI and progress dialog VI.

 

This project is from TestStand 4.0 and LabVIEW 8.5

 

Thanks,

 

PH

0 Kudos
Message 10 of 11
(4,724 Views)