Programmatically Reset Control Values of VI to Default

Updated Mar 3, 2022

Environment

Software

  • LabVIEW

  • How do I reset all my Control panel values to default at the beginning of each VI run?
  • Sometimes the values on the Front Panel of a VI carry over from previous runs. Is there a way to programmatically reset all the values of all Controls on my Front Panel?

First, you must specify the desired default values for your Front Panel Controls by manually setting them and then left clicking on each and selecting Data Operations >> Make Current Value Default. Alternatively, you can manually set all Front Panel Controls to desired values and set all Controls as default at once by navigating to the Edit toolbar and selecting Make Current Values Default. Then, you'll be able to configure your VI to programmatically reset to these values at the beginning of each VI run.

If you are using LabVIEW version 8.0 or later, there is a VI Class Method called Default Values.Reinitialize All to Default. This method is identical to the menu option Edit>>Reinitialize All Values to Default. To call this method programmatically, follow the steps outlined below:

  1. Select the Block Diagram window.
  2. Bring up the Quick Drop (Press CTRL + SPACE).
  3. Type VI Server Reference and double click the top result.
  4. Place the ‘This VI’ box on the Block Diagram by left clicking.
  5. Hover over the right hand side until the wiring tool appears.
  6. Right click and select Create >> Method for VI Class >> Default Values >> Reinitialize default Values.
  7. Wire the output of the ‘VI Server Reference’ to the top left input of the Invoke Method.
 

Invoke Reinitialise All.png
Note: This image is a LabVIEW snippet, which includes LabVIEW code that you can reuse in your project. To use a snippet, right-click the image, save it to your computer, and drag the file onto your LabVIEW diagram.


In versions of LabVIEW prior to 8.0, you will need to use the Control Class Method Control.Reinitialize To Default to set the default value of each Front Panel Control individually. To implement this, follow the below steps for each Control:

  1. Select the Block Diagram window.
  2. Bring up the Quick Drop (Press CTRL + SPACE).
  3. Type VI Server Reference and double click the top result.
  4. Place the ‘This VI’ box on the Block Diagram by left clicking.
  5. Hover over the right hand side until the wiring tool appears.
  6. Right click and select Create >> Property for VI Class >> Front Panel.
     

  1. Right click the Panel output of the newly created Property Node and select Create >> Property for Panel Class >> Control[].


  1. Bring up the Quick Drop (Press CTRL + SPACE).
  2. Type For Loop and double click the top result.
  3. Place the For loop down by clicking and dragging.
  4. Bring up the Quick Drop (Press CTRL + SPACE).
  5. Type Invoke Node and double click the top result.
  6. Place the Invoke Node in the For Loop.
  7. Wire together these elements following the image below​.
For Loop Reinitialise.png
Note: This image is a LabVIEW snippet, which includes LabVIEW code that you can reuse in your project. To use a snippet, right-click the image, save it to your computer, and drag the file onto your LabVIEW diagram.
 
  1. Click on the method in your Invoke Node and select Reinitialize to Default.