Multiple VI on a Single Front Panel

Probably a simple question but I'm having trouble figuring out how to do it.
First, I have LabView 2010, Professional Development System
I have been trying to learn LabView the hard way.  I've been reading the documentation, starting with Getting Started and testing VI and front panels for instruments we have in the lab.  I can run the examples and control the instruments individually through individual front panels.
My question is, "How do I create a single front panel (or application), that consists of several instruments?"
For instance, I have an Agilent 34970, Data Actuisition Unit.  And I can create a front panel (and block diagram) to read data from the instrument input terminals, operate switches, etc.  I also have a GenSys Power Supply and can control the voltage levels and on/off, from it's front panel. But the two panels (and block diagrams) are not linked.
I have other instruments but understanding how to link two different block diagrams (with single front panel), will help me figure out how to expand it to multiple.
How do I integrate multiple block diagrams (or VI), with a single front panel (and block diagram) such that I can use loops, structures and conditions in one, that can be used to control the programming in the other.  For instance, say I want to sample an input on the 34970 and if it's between x and y voltage, then set the power supply to another voltage and test again. This requires two VI acting in synchronization with each other. 
I can do each seperately but am stuck on how to integrate these into a single application.
Thanks,

Hi Mike,
Patricia B is right... You can try sub vi. But if you really want to put two vi's in a same window you can try sub panel. But it is not recommanded... Check these vis....
<<Kudos are welcome>>
ELECTRO SAM
For God so loved the world that he gave his one and only Son, that whoever believes in him shall not perish but have eternal life.
- John 3:16
Attachments:
Try this.7z ‏26 KB

Similar Messages

  • Multiple subvi's in main front panel

    Hello and welcome (it is my first post here),
    sorry if such subject was already risen, however I don't know how to specify it exactly in terms of LV nomenclature (I'm a beginner in LV) what makes it quite difficult to search the forum.
    I need to create an interface with user specified number of input channels (specified during application work, so dynamic loading is necessary). Each channel is to be controlled by subVI. I'd like to load panels of all running input subVI's into some container in a main front panel (similarly to subpanel, but loading multiple VI, not single one). Is there a container capable of this? Is it at all possible in LV?
    Regards,
    kaolpr
    Solved!
    Go to Solution.

    You can use multiple subpanels. Unfortunately the number of subpanels must be set during development. You could create a method of cycling through your various channels. This would involve loading and unloading the multiple subpanels that you do include in the UI.
    Another alternative would be to use a table or something similar. Have your subVIs post updates to the UI code via queues, notifiers or user events. Tables are much easier to manage when your number of elements varies. If you need to have the UI pass information to the subVIs it can also use queues, notifiers or user events.
    Mark Yedinak
    "Does anyone know where the love of God goes when the waves turn the minutes to hours?"
    Wreck of the Edmund Fitzgerald - Gordon Lightfoot

  • How can I stop and restart a .vi with a single front panel button?

    Hey guys, a newbie here.
    I have a .vi with a stacked sequence. The first few frames are hardware initialization and settings (LIN master node) and the data the hardware should transmit (frame response table). In the next frame there's a loop in which the hardware sends and recieves data (LIN monitor). If I want to change the initialization, settings or data values, I have to stop the .vi and restart it. I was wondering if there is a simple way of doing this with a single click (a button on the front panel).
    An alternative would be to put another loop outiside the whole stacked sequence and then run it a single time with a push of a button (the inner loop should let the outer one restart), is that possible?
    I hope I made any sense. Thanks for any suggestions.
    Tomaz
    Solved!
    Go to Solution.

    Ideally, redoing the code with a state machine would be the best way to go, if only so that you can add this powerful tool to your toolbox. That being said, wrapping your existing code in a while loop, with its own stop button to stop the program, will work if executing the entire sequence is ok. Where you might run into problems with this is if there is a step in the sequence that shouldn't be executed again, then it would require wrapping that sequence frame's code in a case statement that executes only the first time through. If you have the time, learning how to use a state machine would be a real benefit, really taking your LabVIEW knowledge to the next step, if you pardon the pun.
    Putnam
    Certified LabVIEW Developer
    Senior Test Engineer
    Currently using LV 6.1-LabVIEW 2012, RT8.5
    LabVIEW Champion

  • Urgent How to fulfill multiple lines input in CVI front panel?

    Hi Guys,
    I want to paste multiple lines text from other files to CVI front panel, but String, Text Box or List Box can't do when I tried.
    Could some one tell me how I can realize it or show me an example?
    Thanks in advance!

    You can add this functionality by using RunPopupMenu to display your own menu when right-clicking on the control: see this discussion and the example attached to this post.
    Proud to use LW/CVI from 3.1 on.
    My contributions to the Developer Zone Community
    If I have helped you, why not giving me a kudos?

  • Recalling front panel

    I know it is possible to show a VI's front panel when it is called by selecting "show front panel when called" in the VI Properties.  If you were to close this vi or stop it, you could once again view its front panel when it was called again.  Now with that said...   Is it possible to call a VI's front panel many times if you don't close it or stop it?

    Are you asking about showing multiple instances of the same front panel at once, or just the ability to open and close a front panel while the VI is running.  If it's the latter, you can use the VI Server to do so.  Get a reference to the VI using the Open VI Reference primitive, then wire that into a property node and select Front Panel Windowpen.  If you set that to true, the FP will be visible, if it is false, the FP is hidden.
    If you are trying to show multiple instances of the front panel, that's more difficult, but also possible.  If you want to do that, you will have to clone the VI in question or use a VI Template instead of a normal VI.  What you do from there depends on why you want multiple instances -- is it for showing historical data, or for showing multiple versions of the same data? 

  • How can I create multiple front panels for a single block diagram?

    Hello,
       I have developed a VI with multiple controls and indicators that needs to run on computers with screen resolutions ranging from 800x600 to 1680x1050. The problem I'm having is that the front panel does not properly scale for this range of resolutions by checking the options in the "VI properties" option. Is there a way to create multiple front panels of various sizes for my block diagram and programmatically select the appropriate front panel based on the screen resolution?
    Solved!
    Go to Solution.

    See the attached Zip file.
    I have two different front panels.  Open either one and run it.  They both call MainCode.vi which takes the references passed to it and register for events.  From there, it does all the work of the code you would have put in your front panel .vi.
    This way each front panel can be laid out however you want for each screen resolution.
    Attachments:
    MainCode.zip ‏22 KB

  • Loading Hex Files with multiple records with each line starting with : record marker, how do I load this hex file into a front panel table ? thanks in advance, Jeff.

    I have written a routine that loads a Hex file, checks for record marker,length,address etc then loads the data into a table on front panel. However, my routine only loads single record hex files. I need to be able to load multiple record files, I need to identify the ':' colon record marker start for each record in the hex file, I just can't see how to loop my routine so that all records with ':' prefix marker are loaded.

    Jeff,
    I'm not exactly sure of what you are trying to do. Is it possible you could post your code, or a screen shot of the diagram in question, so that I can get a better understanding, and possibly offer some assistance?
    I am familiar with hex files, but not with the : marker separating records. This may be able to be solved with simple text parsing, and as I am not familiar with how you are retrieving and/or displaying the files, I require more information.
    Thanks

  • How can I use multiple front panel controls to be mirrors of each other?

    Hi All:
        I know this is going to be a strange question, but I have multiple inputs that control one output.  This in itself not necessarily difficult, but I have a strange need.  If one of the control inputs change I would like this to be indicated by the other controls.  For example, I have a slider, numeric and dial controls on the front panel that control RPM.  If the slider changes to 1000 RPM I would like the numeric and dial controls to see that change.  Is this possible.  If so, can you give me advice on doing this.  I am using 7.1.  Thanks for the help.
    John Honnold

    What you want is not that hard, but asked for a rather  limited times.
    Here's a how to:
    Drop a slider
    Right click Visible items-> Digital display
    Right click on the slider Advanced-> Customize
    Right click on the Digital display Replace select the control you want to replace it with (a gauge for instance)
    Right click on the Gauge Visible items -> Digital Display
    Now you have one control with three control options:
    This was done in 8.2 but I think the same goes for 7.1
    Ton
    Message Edited by TonP on 04-06-2009 09:52 AM
    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!
    Attachments:
    Example_VI.png ‏7 KB

  • Opening multiple sub VIs (front panels) in an application

    Hi, 
    I am working on a small process control application. The main VI represents a layout of various equipment (pumps, valves, heat exchangers). Each TYPE of equipment
    can be turned on/off through a particular subVI. The subVI is displayed when the operator clicks on the component.  At the moment only one subVI front panel can be loaded. I would like to have multiple panels open at the same time; this to include multiple instances of a same VI and different subVIs.
    I have tried to set properties in the WindowsApperance dialog box but cannot acheive the desired operation. 
    Any suggestions?
    Thanks

    Trust my personal experience: You do NOT want multiple dialog windows open.  The users will hate you and curse your name if you do.  You really want to use subpanels and limit what the user can do.  Subpanels are a way of inserting a VI's front panel into another VI's front panel.  So you want to have a section of your main front panel that the user can load whatever control subVI they need.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Crio to host multiple remote front panels

    Hello all,
    I've a question abt remote front panel hosted by a cRIO system (cRIO9068 to be more specific, running RTOS).
    I have a top level VI (main) as the start up vi in my cRIO system, and it would call a subvi during run. I'd like to enable remote front panel for both the main vi and the sub vi so that I can see both front panels using a web browser. I'm not sure if such a configuration is possible at all and would like to listen to comments by users who have similar experiences.
    Thank you very much!
    Best,
    Jidong

    Hello hhaamm,
    To the best of my knowledge, I don't believe it is possible to host multiple remote front panels from the same executable, and, if it is, would be very difficult. The NI Web Server configuration file only specifies one port on which an executable can run web services, like remote front panels. In, short, I am not sure how you would be able to accomplish this.
    Another thing to keep in mind is that what you want to accomplish can be done in many different ways that would be much easier than creating multiple remote front panels.
    One of these is to move all of your controls and indicators to the top level VI. i.e. make the data you want to see from the sub-VI an output of the sub-VI and create a new indicator for this on your top-level front panel. This way you can still use a remote front panel and can use different decorations and labels to separate the top-level and sub-VI outputs.
    Another way to do this is to use the tab control to create multiple tabs, one for your top-level indicators, and one for your sub-VI indicators. This would still enable you to use remote front panels and would allow for the separation of your different indicators. Here is a note on how to do that:
    http://zone.ni.com/reference/en-XX/help/371361H-01/lvhowto/creating_tab_controls/
    And here is a more in-depth forum post on how to create them:
    https://forums.ni.com/t5/LabVIEW/how-do-you-create-tabs-on-the-front-panel/td-p/201495
    The final way I can think how you would accomplish this is to use a web service instead of remote front panels and host the output of the sub-VI as a separate website. 
    Hope this helps!
    Collin D.
    Applications Engineer
    National Instruments

  • How is it best to develope a multiple window (front panel) application in LabVIEW?

    I have only been using LabVIEW for a couple months so keep this in mind while I ask this question.
    I have been testing out multiple ways of developing a application using multiple windows and passing data between them, in LabVIEW. I am not sure how to best do this. First (See attached TestApp1.0) I used the Open VI.vi to open and close the VIs as I wanted to use them. This worked well I could have multiple windows open at once and could easily pass data to them by simply laying the VI in the main while loop. The draw back was it required polling and lots of extra logic to open and close the different VIs.
    Next I used the event loop ( see TestApp2.0)and eliminat
    ed the use of Open VI by simply laying the VIs into the event loop and selecting them to display front panel when called. The draw back to this was I could only have one window opened at a time, and since I had to put the SubVIs in loops I could not pass data easily from another form to it while it was running.
    Finally, I have seen examples using a VI server. This looks much more complex and I am not sure if it would be worth the time figuring it out.
    Does anyone have any suggestions for what the best way to design this type of application is? Am I missing something?
    Attachments:
    TestApp1.0.zip ‏31 KB
    TestApp2.0.zip ‏23 KB

    Hello NIBOUND,
    I looked into your "Method 1"-files. That's roughly
    the way I would do this, but I changed the files a
    little bit.
    The subform2 (input of data) is now only called when
    the user wants to input some data. I changed the
    window setting to "Open when called" and "Close after
    run". The other vi subform1 runs the whole time in
    your main loop. Is this wanted? If not, then you can
    change it to the same behaviour as subform2...
    Best regards
    Gerd
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome
    Attachments:
    Test1.zip ‏32 KB

  • Multiple (floating) front panel application in labview

    I am trying to build a multi-window application. My goal is to be able to have multiple floating windows open simultaneously, which all allow user input. 
    My problem is, when I open a new floating window, I can no longer click buttons in the other windows.
    I've attached a simple example of what I'm trying to do. The Main.vi has two parallel loops and two event structures. One loop has the sole purpose of running the Sub.vi after a button is clicked. The other loop performs some functions when the other buttons are clicked. Since these loops run in parallel, I would think that I can interact with both VI's when the front panels are open.
    What am I missing here?
    Any help is appreciated. Thanks. 

    Your bottom loop stops because you have a regular call to the subVI.
    The event loop cannot finish until the subVI finishes.
    To strictly answer your question, Take a look at the options for the EVENT structure.  By default the LOCK OUT KEYBOARD UNTIL THIS EVENT IS FINISHED is set ON.
    That means just what it says.  When you call that subVI, the event locks out the keyboard/mouse on the calling (MAIN) VI.
    Having TWO event structures in one VI is asking for trouble.
    I have an app with 10-12 windows, all of which are overlappable, and usable.
    the way you do it is to run all 10 VIs at startup, but keep them closed.
    Send each one an EVENT from the main VI when you want it to open.  All they do in response to that event is FP.OPEN.
     

  • Is there a way to change the colors of multiple VI front panels?

    Hi,
    I am currently creating a LabView program controlling a lot of sensors and actuators. I have based the GUI on a tab-control with different buttons which again opens up different VI front panels in a singel sub panel below. I realy want to have a different color theme on my program than the standard gray LabView theme, but I would like to change the colors for all my VIs in a smooth and quick way. I really would not like to click on all controls, indicators etc. to get new colors, as there are a lot of them! Any ideas out there, if this is possible?
    Thanks in advance!
    Lars

    Lars,
    please note that using the grayscale theme is recommended not only by NI. Using color is very delicate thing since you have to consider:
    - readability of text might suffer due to insufficient contrast
    - overuse of (signaling) color might distract the user from important settings/information
    - color-blind user?
    That being said, you can color the frontpanels of the VIs you include in the sub panel dynamically. Please take a look into attached example on how this could be done (LV 2009).
    Please note that this is recoloring the frontpanel background only. If you need other elements to recolor as well, this can be done similar but is more effort....
    hope this helps,
    Norbert
    CEO: What exactly is stopping us from doing this?
    Expert: Geometry
    Marketing Manager: Just ignore it.
    Attachments:
    FP ColorChange.vi ‏14 KB

  • Front panels of multiple processes called do not overlap as expected

    Hello-  
    I'm hoping this solution is simple, but who knows. 
    My situation is as follows:
    I have a Main.vi that calls 2 processes (Remote.vi and Motion.vi) via 'start async call', right after the Main.vi calls them, it calls UI.vi via 'call by reference'.
    the remote and motion vis are supposed to be entirely background processes, no visual presence at all.  The UI, is the user interface that's supposed to take up the whole screen.
    The problem is that the motion vi's front panel is coming up in front of the UI (how rude of it... vi has no manners).  
    I'm not quite sure why this is happening, seeing as they are called in that order...
    any help is greatly appreciated.
    thanks

    If you want a launcher that start-up stuff and then closes itself and lets them run, then opening a ref to it's own FP is a method that will keep the VI in mmemory and thereby avoiding the LV clean-up tossing the launched when the launcher exits.
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • How do I group a large logic circuit into a single icon that still allows for control of that VI's front panel?

    I have a graphical representation of a P&ID made of LED lights that turns green or red depending on if that 
    process line is open or closed. The coorisponding block diagram is a rather large logic circuit that controls 
    these LED lights.
    My problem is that I want to essentailly block that large piece of code into a "Sub VI" but I still want to use that 
    code to control THAT VI's front panal. This would allow me to, in the future, make an automated sequence that can 
    still use this light show without opening another VI's front panal.
    If anyone has used Simulink this is the exact same thing as its grouping function...

    Are you asking how to control the front panel of one VI from the front panel of one of its subVIs (or another VI)?  Is so, check out VI server.  VI server functions are found on the Application Control palette.  For a short demo, right click on one of your controls and select Create»Reference.  You will be switched to the block diagram and have a reference node attached to your cursor.  Drop it.  Now go to the Application Control palette and select and drop a Property Node.  Connect the newly created reference to the Property Node top left terminal.  Click the Property Node's Property area and scroll down to the Value property and select it.  Right click on the Value and select Change to Write.  Wire a value to this input and it will change the value of the control.  You now have a method that allows you to change the value of a control from another VI.
    Some caveats.  This can be slow.  It is synchronous, meaning that the function will not return until the front panel has been updated.  If you want to do a lot of controls at once, use the VI property Defer Panel Updates to turn updates of the front panel off while you are writing to it.  Don't forget to turn it back on.  If you can use a terminal or local variable, do not use the Value property.
    My apologies if I have misinterpreted your request.  Let us know if you need more info.
    This account is no longer active. Contact ShadesOfGray for current posts and information.

Maybe you are looking for