Today a few of us were discussing how front panel editing and execution works in LabVIEW, what it’s good at and where we could improve things. I’d be curious as to how people developing in LabVIEW day to day use some of these features and what works well for them and what doesn’t.
How Things Work Today
In general (ignoring the case of multiple instances of a VI Front Panel for re-entrant VIs or those targeted to multiple embedded devices) there is a one to on mapping between a Front Panel and a Block Diagram. On a Front Panel each control has a default value associated with it.
The following is really about interactive execution not use of a VI as a sub-VI:
- I run a VI the first time interactively it uses the default values on controls and gives me a result.
- I run the VI continuously or because there’s a for loop and while running the VI I can change the value of controls (inputs).
- When the VI stops the control retains that value.
- I run it again it keeps that updated value and runs again.
- Now I close the VI and open it again it starts up with the default value.
Some Things that can Cause Confusion
There are a couple of interesting things that happened in this simple example.
- In Step 4 and 5, did I really want to make those values the default value. Since the VI stopped running and it looked like it was in “edit mode” and I then save and close it there are times some people expect that value to be saved. Now this isn’t desirable in the case where this is really a sub-VI where I want the default value to remain as it was since that impacts programmatic behavior.
- Step 2, 3 and 4 can be a process I repeat multiple times when I’m characterizing a chip or a component. In that case I’d like to be able to see a history of that information and I only see the latest values.
What are the Different Ways People Need This to Work
Note: The above two examples I cited are really just two out of a very long list of use cases, we’ll keep discussing those but for now I’m interested in how people are affected by these.
I’m curious about how people make use of the interactive execution mode for VIs and default values and the data logging option with VIs. When do you use it in your regular work and which situations have you been confused by the current behavior? I’d like to make use of this information to help prioritize and guide some of our internal brainstorming on these topics so we can use these as validation use cases. Look forward to your thoughts.