07-31-2012 03:25 AM
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,
Solved! Go to Solution.
07-31-2012 05:05 AM
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,
07-31-2012 09:16 AM
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.
07-31-2012 09:45 AM
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...
07-31-2012 10:36 AM
@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.
07-31-2012 11:30 AM
okey, clear 🙂