LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How to call the subvi's recursively?

Hi,
can u tell me how to call the subvi's recursively?
0 Kudos
Message 1 of 10
(4,602 Views)
 
 
You need LabVIEW 8.5. For more details, have a look at the manual:
 
 
🙂

Before LabVIEW 8.5 it's not really possible without jumping through a few flaming hoops. 🙂
You can search for recursion here in the forum and find e.g. the following thread:

https://forums.ni.com/t5/LabVIEW/Two-vi-s-calling-each-other-recursively/m-p/194282

I don't think it's worth the trouble.

 😮

 

Message Edited by altenbach on 09-04-2007 11:01 PM

Message 2 of 10
(4,592 Views)

To achieve what functionality, do you wish to call a VI recursively.

Can you elaborate more on the idea ?

- Partha ( CLD until Oct 2027 🙂 )
Message 3 of 10
(4,562 Views)
I use 'Call by Reference Node' (to find controls in controls in controls.....)
 
Here is the recusive call
Bart Boshuizen,
www.morechemistry.com
0 Kudos
Message 4 of 10
(4,560 Views)
Similar to Bart's answer but a lit more detailed:

Ton
Free Code Capture Tool! Version 2.1.3 with comments, web-upload, back-save and snippets!
Nederlandse LabVIEW user groep www.lvug.nl
My LabVIEW Ideas

LabVIEW, programming like it should be!
Message 5 of 10
(4,543 Views)

Just curious, you're not trying to make a sub-vi re-entrant, are you? 

Maybe it's the terminology...  >>> just in case.... <<<  Here's C/P from the help menu:

Simultaneously Calling SubVIs from Multiple Places

Under normal circumstances, the execution system cannot run multiple calls to the same subVI simultaneously. If you try to call a subVI that is not reentrant from more than one place, one call runs and the other call waits for the first to finish before running. In reentrant execution, calls to multiple instances of a subVI can execute in parallel with distinct and separate data storage. If the subVI is reentrant, the second call can start before the first call finishes running. In a reentrant VI, each instance of the call maintains its own state of information. Then, the execution system runs the same subVI simultaneously from multiple places. Reentrant execution is useful in the following situations:

  • When a VI waits for a specified length of time or until a timeout occurs
  • When a VI contains data that should not be shared among multiple instances of the same VI

To make a VI reentrant, select File»VI Properties, select Execution in the VI Properties dialog box, and place a checkmark in the Reentrant execution checkbox.

Message Edited by JoeLabView on 09-05-2007 07:44 AM

Message 6 of 10
(4,542 Views)
Christian wrote
 

 
You need LabVIEW 8.5. For more details, have a look at the manual:
 
 

I thought I read that Aristos Queue mentioned that you have to use LVOOP for that. The link you provided appears to confirm that when you look at the links contained therein.

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
Message 7 of 10
(4,520 Views)

Ton,

How did you create the Reference "This VI" - there is no variable for it... ?! Wont the implicitly defined Property node itselfI suffice to point to the current VI ? 

Is the 8 missing out in Open VI Reference ? I dont get your point no 6 also...

Joe,

The link you ve attached fails to open (picture), I think...

- Partha ( CLD until Oct 2027 🙂 )
Message 8 of 10
(4,507 Views)
I'm not fully positive all these steps are necessary, but this is what I did

Drop a VI-refernce (the big one with the shortcut arrow)
Right click, browse for path
Right click, make stricly type
Right click, create constant

At this moment you have two VI refs delete the one linked to the path (with the VI icon)

I'm not sure the last part is necessary but better safe than sorry

Ton

Yes I missed the 8 option
Free Code Capture Tool! Version 2.1.3 with comments, web-upload, back-save and snippets!
Nederlandse LabVIEW user groep www.lvug.nl
My LabVIEW Ideas

LabVIEW, programming like it should be!
Message 9 of 10
(4,461 Views)


To make a VI reentrant, select File»VI Properties, select Execution in the VI Properties dialog box, and place a checkmark in the Reentrant execution checkbox.


Sorry... it was from the help menu..

Here is the VI Properties:

VI Properties Dialog Box
Right-click the VI icon on the front panel or block diagram and select VI Properties from the shortcut menu or select File»VI Properties to display this dialog box. You cannot access this dialog box while a VI runs.

Use this dialog box to customize VIs. Use the pull-down menu at the top of the dialog box to access the following options:

General—Displays the VI icon, VI location, and revision information.
Memory Usage—Displays the amount of disk and system memory the VI uses.
Documentation—Sets the VI description and creates links from the VI to HTML files or compiled help files.
Revision History—Sets the revision history options for the current VI.
Editor Options—Sets the size of the alignment grid and the style of the control or indicator LabVIEW creates when you right-click a terminal and select Create»Control or Create»Indicator from the shortcut menu.
Protection—Sets options for password-protected VIs.
Window Appearance—Customizes window appearance.
Window Size—Customizes window size.
Window Run-Time Position—Customizes the run-time front panel window position and size.
Execution—Sets execution properties.
Print Options—Sets print options for VI, template, or object documentation.

0 Kudos
Message 10 of 10
(4,446 Views)