09-19-2025 04:41 AM - edited 09-19-2025 04:51 AM
Hi,
I’m creating a front panel to manage an 34980A in my test bench, so the user can select the channel to configure and what to do. Since the possible measure configurations are a lot I have thought to use a VI that, by means of a tab pane, manages the different channels configuration like this:
I don’t want to bring the complexity and the amount of input in the main VI so I have thought to use the subpanel as a way to “import” the front panel in the one of the main VI, which is like this:
I need to understand:
Thank you very much for the help!
Best Regards,
Zuc
09-19-2025 05:52 AM - edited 09-19-2025 05:56 AM
Hi,
I understand that your configuration window is temporary (displayed > user chooses config > close). Therefore, the easiest way is just to create a configuration VI and display it as popup.
If you really want to display it in a subpanel, I think you can make it work like you did but it is not really clean. The best way is to create a configuration module. By module, I mean a VI with producer consumer loops in which you need to manage actions like "Open module', "Close module", "Get window ref" to be display on your subpanel, etc...
I advise you to look at the DQMH architecture (most used in LabVIEW). You could see template of DQMH application and understand how to manage modules. With this architecture, you can easily create new modules with basic functions already created as "Start/Stop Module", "Show Panel' (in subpanel or popup), etc... With this method you will be able to create a lot of different modules quickly and handle big application in the future 😉
Note : Please, always change icons of you VIs with the names of the functions and try to keep the error wire flat : you will have a code more readable 🙂
Also, you should have only one error input of your VI (in 99,99% of cases).
09-19-2025 07:13 AM
@LoisLbsUromems wrote:
Also, you should have only one error input of your VI (in 99,99% of cases).
The previous responder, I thought, made excellent suggestions. To expand a bit on his (or her?) final note, there are certainly cases (such as setting up a DAQmx Read device and a DAQmx Write device) when you want to branch the Error lines (as you want the two devices to run "in parallel"). When the parallelism ends, use the "Merge Errors" (from the Dialog & User Interface palette) to bring them back together (and if neither input Error line has an error, the single output will also show "No Error", just what you want).
Bob Schor