How to Programmatically Get Clone VI Names in Labview?

Updated Dec 6, 2019

Reported In

Software

  • LabVIEW

Issue Details

  • I want to get the Clone VI names programmatically. How can I do that?
  • How to close particular clone vi using Clone VI name? 

Solution

  1. Calling the VI Server references that is running.
  2. Place an Invoke node and choose the Front Panel >> Open.
  3. Check to see if the VI is a Clone VI using the Property Node >> Is Clone VI.
  4. Get the Clone VI names using the Property Node >> Clone Name. 
  5. Close the reference to the VI Server. By closing the reference to the VI server, you will be able to close the particular clone VI.

Figure : Get Clone VI name programmatically
6. You can also check the VI name before closing the reference to ensure that you close the correct clone VI.
Figure: Close the clone VI based on the name

Additional Information

A VI that is non-reentrant means there is only ever a single copy of the VI that is running at any given time.  If you try to call a non-reentrant VI from multiple places at the same time, each subVI instance has to wait until the other subVI instances have stopped using it.  With a reentrant VI, a copy of the VI is made which called 'clone VI'.  That means more than one copy of the same subVI can run at the same time, each with its own memory space.