LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

modify VI during runtime

Solved!
Go to solution

Dear LabView users,

 

I have a quite general question about project development what requires continuous control of the hardware. To be more specific, I am developing LabView control and DAQ softwares for large volume calorimeters in the last 2 years. Such a device requires several PID controls, and it has many subsystems. Due to the large heat capacities, it takes about 3-4 days to start up the system. So if I need to modify for example something in a final stage fine control of a specific subsystem, I have to shut down the LabView code, I modify the specific part, I restart the system, I wait 3 days, and then I can see the result of my changes.

 

My question is kind of general: what is the common, lets say the "best practice" to avoid such a dead time?

Is it possible to change a VI during runtime?

I understand that, if I run independent VIs, what take care of the subsystems, I could avoid this problem. But if I have already a compact "main" VI, including all the subVIs, what can I do?

It would be nice to have a kind of "hot swapping" feature in LabView, so during runtime of my project's main VI, I could edit the subVI what I want, and when it is ready to activate, the runtime engine would swap it with the old version.

 

Thanks for any advice and opinions!

Best Wishes,

Message 1 of 6
(2,753 Views)
Solution
Accepted by topic author Blokk

Hi,

all depends on how your vi works...

The only way I see, is to use dynamic calls : A vi which is dynamically called is editable even if the caller vi is running.


So you can modify the called vi as long as the caller doesn't calls the vi.

 

This is how the caller launch a sub vi (this includes connectors values, and run the VI):

 

 

 

 

 

Best Regards,

 

V-F
Message 2 of 6
(2,743 Views)

Can you modify your algorithims to use parameteric data? If so you can input those control parameters in a variety of ways external to the code itself and change the behavior of the running code. If you need to maodify the code itself you will need to call the code dynamically. If you do so though you will need to make sure you actually load the code right before it executes otherwise you run the risk of using code in memory.



Mark Yedinak
Certified LabVIEW Architect
LabVIEW Champion

"Does anyone know where the love of God goes when the waves turn the minutes to hours?"
Wreck of the Edmund Fitzgerald - Gordon Lightfoot
Message 3 of 6
(2,720 Views)

Thank you for info, so the only way is to call the VI dynamically. Anyway, it would be nice to have a kind of basic "hot-swapping" feature...

Message 4 of 6
(2,712 Views)

@Blokk wrote:

Thank you for info, so the only way is to call the VI dynamically. Anyway, it would be nice to have a kind of basic "hot-swapping" feature...


You do, call the code dynamically.



Mark Yedinak
Certified LabVIEW Architect
LabVIEW Champion

"Does anyone know where the love of God goes when the waves turn the minutes to hours?"
Wreck of the Edmund Fitzgerald - Gordon Lightfoot
Message 5 of 6
(2,703 Views)

okey, clear 🙂

Message 6 of 6
(2,689 Views)