LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

don't wait until a VI completes in teststand

How do you call a VI from TS4 but not wait for completion to execute the next step in TS???  I want to use LV8 w TS4 to start a signal generation( ACTION w call to my VI) then continue on w the next step in TS.   My sig gen vi is in a "do while loop".  I found this but nothing for an Action Step.
 

Sequence Call Advanced Settings Window

New Execution

The Sequence Call Advanced Settings window contains the following options when you select Use New Execution in the Execution Options control on the Module tab:

  • Initially Suspended–Specifies that TestStand creates the new execution in a suspended state. Call the Execution.Resume method in the TestStand API to start the execution.
  • Initially Hidden and Disable Tracing–Specifies that the window for the new execution is initially hidden and that tracing is initially disabled.
  • Restartable–Specifies whether the execution can be restarted after it completes.
  • Close Window when Done–Specifies that the window for the execution closes when the execution completes.
  • Use Single-Threaded Apartment–Specifies whether the concurrency model of the thread is initialized as single-threaded apartment (STA) or multi-threaded apartment (MTA). By default, TestStand initializes new executions and threads to use the multi-threaded apartment model. A thread must use the single-threaded apartment model if the thread creates or launches a dialog box that contains ActiveX controls.

    If you use this option to launch a sequence that contains a step that displays an ActiveX control, you may need to set the Load option in the Run Options panel of the Step Settings pane to Load Dynamically. This ensures that TestStand loads the module called by the step in the thread initialized as STA.
  • Wait for Execution to Complete–Specifies whether to wait for the execution to complete. The following options are available in the ring control:
    • Before executing next step—Calling sequence waits for the execution to complete before executing another step.
    • Do not wait—Calling sequence does not wait for the execution to complete. Use this option and insert a Wait step in your sequence if you want to obtain the results, status, and error information from an asynchronous execution call.
    • At end of current sequence—Calling sequence waits for the execution to complete before the calling sequence returns.
0 Kudos
Message 1 of 4
(3,924 Views)
Hi Clint,

You have two options:

The first option is to use the execution option in the Sequence Call Step Type.  We can create a new sequence with only the VI and then launch the sequence in a new thread.

The second option is to use the Run VI Asynchronously Step Type (Under the LabVIEW Utility folder)

I hope this helps!
Matt S
National Instruments
Applications Engineer
Message 2 of 4
(3,891 Views)

OK Matt,

I tried but can't find anything that allows me to do your 1st option !  Help !

I could have sworn ( maybe older versions of TS??) that at one time I was able to click on a step and select/de-select a check box that allowed an Action (vi in my case)  to  "not wait for completion" and retrun to TS and continue on in the sequence.   I don't ever remember having to deal with Batch or Parallel Testing.

 

Thanks !

Clint

0 Kudos
Message 3 of 4
(3,871 Views)
Hi Clint,

Hope you had a good weekend!  I probably should have been more specific with my instructions.  When placing down a Sequence Call Step,  in the  Step Settings, Module tab, there is an option on the right side that specifies the Execution Option (See Image).  You have the option of changing that to "New Thread" or "New Execution".  So essentially, we would make a separate sequence with your VI, change the execution option and then call it from your main sequence.  I hope this helps!
Matt S
National Instruments
Applications Engineer
0 Kudos
Message 4 of 4
(3,865 Views)