Pop Up Subvi in Labview
Hello, all
I am having the following issue. I would like to have a subVI pop-up window when user wants to do so, in other words at the press of a button. I can do this by playing with "Windows Appearance" parameters, however, my subVI is need to be called continuosly as it displays the data coming from the instrument. Thus I can not figure the way to close this pop-up window, as the my whole program is in a while loop. Every time I call the subVI the pop-up window appears, and there is not way to get rid of it.
I would greatly appreacite i quick and dirty solution for this issue
Thanks for your time
Regards,
Viktar Tatsiankou
Hi Victoroza
I have done something as you describe...and application with a pop up that display some data and can be closed or opened at any time.
On the Windows Appearence of the pop up vi I custimize the following options:
Show front panel when called
Close afterwards if originally closed
Window Behavior : Floating
Next, to call the popup I use the Call By Reverence Node Function (on application control pallette)... Setup this to load the popup vi and on loading options check the "Load and retain on first call"
Well, I hope this can be usefull for you.
Regards,
Matthuz
Similar Messages
-
Hello, I have a strange situation with labview. A subvi pops up
everytime it is called during the operation of the main program. This
is annoying becuase the display in the front panel is completely
blocked by this popped up subvi. Is there any recommendation on how I
can prevent this sub vi from popping up (this subvi has some global
and local variables)? I would also like to know why this sub vi is
popping up while the others are work just fine.
Thanks.Double check that the window properties are not set to "Show front panel
when called." (Right click on the icon in the upper right corner, VI
Properties...->Category->Window Appearance->Customize...)
"Sam" wrote in message
news:[email protected]om...
> Hello, I have a strange situation with labview. A subvi pops up
> everytime it is called during the operation of the main program. This
> is annoying becuase the display in the front panel is completely
> blocked by this popped up subvi. Is there any recommendation on how I
> can prevent this sub vi from popping up (this subvi has some global
> and local variables)? I would also like to know why this sub vi is
> popping up while the others are work just fine.
>
> Thanks.
> -
I've searched the boards, and I have not found a solution for creating
a LLB with all subVIs for LabVIEW 8.0.1. I've seen the answer to
use Save With Options. I haven't been able to locate this.
I'm not too familiar with all of LabVIEWs options, so I greatly
appreciate any help that can be offered on this.You can do Save As... and then go to Duplicate Hierarchy to new location and then under Packiging options, select custom and then check the box that says save as llb.
Yo u can also specifiy the loaction of the files in this screen.
Kenny
Kenny -
Can i make subcircuit in multisim like subvi in labview?
in my project i have to work in modules, so can i connect those?
like we use SUBVI in labview, can i make subcircuit in multisim?
Solved!
Go to Solution.Yes! You can just right select all the components you want to make a subcircuit out of and right click » Replace by subcircuit...
You now have a subcircuit that is saved with your design. If you like having different files for your modules (I personally do), you can instead create the subcircuit in a different file, attach HB/SC connectors to the pins you want to send the signals outof/into, save the file and in your main circuit, right click » Place on schematic » Hierarchical block from file... this way, the module can be reused as many times as you like.
Cheers,
Miguel V
National Instruments -
How to convert Subvi into Labview function
Hi,
I made costum vis of UDP Read and Write using dot net functions.when i tried to Make them reentrant. It is halting the application.
i want to run these vis in sepate thread.
Can you please tell me how can i convert sub vi in labview fuction(like yellow one in Function pallet eg.Index arry or replace array).
Regards
Sandeep soni
9922958092From help
Adding VIs and Controls to the User and Instrument Drivers Subpalettes
Adding VIs and Controls to the User and Instrument Drivers Subpalettes
The
User Controls and User Libraries palettes
contain subpalettes for each directory, LLB, or palette (.mnu) file in labview\user.lib and icons for each file in labview\user.lib.
Save
subVIs in the user.lib directory only if they are usable, without
modification, across projects. Paths to VIs in user.lib are relative to the labview directory. Paths to subVIs you save elsewhere are
relative to the parent VI. Therefore, copying a VI from user.lib to modify it for a special case does not change
the path to its subVIs located in user.lib.
Caution Do not save
your own VIs and other files in LLB
files installed with LabVIEW. Save your controls and VIs in the user.lib directory to add them to the
Controls and Functions
palettes.
Complete the following steps to add new VIs and controls to the
user palettes.
Save the controls and VIs in the labview\user.lib directory to add them to the
User Controls and User Libraries palettes,
respectively.
Restart LabVIEW. LabVIEW updates the palettes to contain the controls and
VIs in the labview\user.lib directory.
The
Instrument Drivers palette corresponds to the labview\instr.lib directory. Save instrument drivers in
this directory to add them to the Functions palette.
Note If you add a subdirectory or LLB to the labview\user.lib or labview\instr.lib directory and the subdirectory or
filename begins with an underscore (_), the
contents of the subdirectory or file do not appear on the User
Libraries or Instrument Drivers palettes. -
Passing control reference to subVI crashes labview
Hi,
using a image control (as indicator) provided by imaq Vision, I tried to pass the reference of the control to a subVI. On a computer it works and on a other (same labview version, same vision version, same os, same hardware and hardware drivers!), this crashes labview. I tried to close the control refnum at the end of the subVI, but that changed nothing to the issue. Now I use the reference as a global variable and it seems to work...nevertheless, I would like to understand what the issue and if I should remove any passing to subVI of control ref because this can potentially triggers an error. My correlated question is if this global passing is a "fake" workaround or have real chance of improving (this before going through the whole code for changing all passing of reference to subVI)
thanks a lotHi,
thank CoastalMaineBird for your answer
How do you know it's this issue which causes the crash?
When I remove this parameter from and the only property node in the subVi that write to it, I have no longer any problem. Moreover, to ensure that's really the "passing", and made a global variable containing the reference to this control and use my original SubVi that do access the control through its reference number
, and it works! In this last exemple, the only change is the way of transmitting the reference
What LabVIEW version?
8.0.1
up to date according Measurement & Automation update tool
Given that one computer works OK, and another crashes, I would say that
you are seeing the effect of something else, not the cause. If passing
a control ref via terminals was fatal, it would be fatal all the time.
You have some other sort of issue, perhaps timing of the different
machines triggers the bug, perhaps running out of memory, perhaps
LabVIEW is corrupted on one machine.... But I don't think changing all
your code to use globals would solve the real problem. Actually, saying that I wonder about problem of synchronisation. I know from Visual C++ that this kind of error happens if two process try to access the same control at the same time. This is typically an error changing from a computer to an other, and mutex or semaphore are the way to deal nicely with that. But does labview contains already such a securisation? If so, the global variable point on a single object and can "fell" the semaphore/mutex. But passing make a copy that will likely have two different semaphore/mutex but will point to a single control! Do someone know if I'm wrong in this idea or not?
Thanks -
I have a executable labview 6.1 program with a front panel. The front panel pops up every time I run it. Can I force the program to run without popping up its front panel.
Thanks in AdvanceIf you're using MS Window, you can use lvwutil32.zip to hide the front panel. lvwutil32.zip can be downloaded from NI site.
Or you can move your front offscreen, so that user can't see it. And save your vi. When you run your vi again, it'll popup at the offscreen position. NI uses this trick to hide windows from LabVIEW users. You can also set front panel size to 0.
George Zou
http://gtoolbox.yeah.net -
Running independent subVIs on LabVIEW FPGA
I currently have a collection of read and write functions on my FPGA VI that need to be running independent from each other. The issue that I am facing is that the read function writes to a DMA FIFO and every time that read function completes I want the FIFO to be read by the Host VI. I have tried putting these sets of VIs in a while loop to ensure independence, but when I do this the Host VI does not know when to read from the FIFO. I have tried adding interrupts when the read function ends, but this doesn't seem to be working either. I'm not really sure what else I can do to get the result that i am looking for. Any help is appreciated.
ThanksI usually just always have my host reading the DMA in a loop on its own. I also add extra bits to the data in the DMA to tell the host what the data is. I use this to command the host when the acquisition is done and it can react however it needs to from there.
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines -
Labview 7.1.1 crash on right click of subvi
We've started having a problem on one computer, with a 3.4ghz, Intel dual core motherboard, win XP pro. When a subvi, usually homemade, and begun under an earlier version of labview, is right clicked in the diagram, we get a dialog stating that "Labview has encountered a problem and needs to close". No kidding. It goes away like somebody filed a paternity suit. We are using some Measurement Computing devices, and their vi's seem particularly prone to this. I read the earlier thread from 2005, which didn't offer much help. Have already installed updated Intel graphics drivers(seemed to fix for a while, but NOT), removed/reinstalled Labview, tried Repair per Travis H. advice in aforementioned fourm thread:
ttp://forums.ni.com/ni/board/message?board.id=170&message.id=105471&query.id=402919#M105471
Also tried setting computer to use single core in BIOS. Anybody got new ideas??
Solved!
Go to Solution.Hi bill_gilbert,
Thanks for the post and I hope your well today!
It seems you have followed some pretty good advice so far.
Is it only this one subVI?
Have you tried re-compiling the subVI under LabVIEW 7.1.1? Best way to do this is Shifht+Control+RunArrow, or alteratively delete a wire, replace the wire and save the vi.
Are you using a type def that was created in an older version of LabVIEW in this program?
I have also read about a very similar issue which was casued by an error in user.lib because of an icon in the Tools library. When deleting dir.mnu the problem is solved.
Please let me know what you think and if anything works,
Kind Regards,
James.
Kind Regards
James Hillman
Applications Engineer 2008 to 2009 National Instruments UK & Ireland
Loughborough University UK - 2006 to 2011
Remember Kudos those who help! -
Pop-up in event structure halts execution
If I place a pop-up subVI in an event case of an event structure and this pop-up subVI contains a while loop and a stop button that would stop this while loop (thereby closing the subVI), will other events declared in the event structure be handled only after the user clicked the stop button of the subVI? If yes, is there a way for other events to be handled while the pop-up subVI is still running?
Solved!
Go to Solution.Yes, it will stop everything in you rmain VI until the popup VI returns. The events will still be buffered, but they won't be handled by the event structure, until your pop up is closed (assuming your pop up is non-modal). If it's modal, the user won't be able to click anything at all, except controls on the pop up itself.
If you still want the user to be able to interact with your front panel while the pop up is showing, and have the FP respond, you will want to launch the popup dynamically in its own parallel process. If you are using LV 2012 you can use the start asynchronous call node. If you are using an earlier version of LabVIEW, you will have to use the "Run" method with an invoke node.
CLA, LabVIEW Versions 2010-2013 -
Hi,
I am currently writing a program in which I need a "pop up" SubVI.
The SubVI opens when the user presses a button and closes again when it is finished. I am doing this with an event structure.
Tha main program consists of several while loops.
When I start the program for the first time, everything will run fine. If I now stop the main program with the LabView stop button and the restart the program, everything is still running fine.
If I however stop the program by terminating all the while loops in the main program and then restart and Call the SubVI, the main program will behave as if everything works fine, however the SubVI Frontpanel (or the entire SubVI, I don't know) won't open.
I really have no Idea what I did wrong there. Apparently the way I close the program does make a difference. As I undestand it, however it shouldn't, should it?
Or does it matter, that the "Pop Up" Sub-VI is called in an extra SubVI that doesn't pop up?
I have tried to reproduces this scenario in a simple example that I've attached. However, even though it is in all means similar to the real program, here, the error doesn't occur.
Maybe anyone of you had the same problem before or has an idea what happens there?
Thanks for your help!
In the attachments, "test" is the main Program!
Solved!
Go to Solution.
Attachments:
SubVI.vi 7 KB
CallSubVI.vi 6 KB
Test.vi 13 KBYou may have misunderstood my earlier comments. The reason your code does not exit is that you are simply reading the value of the stop button in the loop with the event structure. That loop cannot complete until everything in it has completed. That means it is a MUST to check the stop condition after an event has been processed. Doing it outside of the event structure like your code does will mean that the while loop is sitting there waiting for the event structure to complete. This will never happen once you stop you application using the button as currently written. If you hit the stop button and then follow that with pressing the Call subVI button your application will actually stop. In addition, your event structure will not process the Stop button until the subVI (your pop-up) has actually exited. The event containing that call will not complete until the subVI completes.
I have posted a simple modification to your code that includes some of the suggestions I made earlier.
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
Attachments:
Test-modified.vi 17 KB -
I am using the touch panel module to build an application onto a NI TPC-2106T. I am finding that if I use functions like a dialog box, or call the front panel of a sub VI, nothing happens in the touch panel display. Is this because the pop-up windows need to be positioned correctly, or does the touch panel not support this kind of thing?
mstudioHi there,
With reference to this thread:
http://forums.ni.com/ni/board/message?board.id=170&message.id=317640&requireLogin=False
Some of LabVIEW's features/functionality operates differently with the Touchpanel Module, or is not available. The above thread mentions about the behaviour of pop up subVIs, so this should help you with your question.
Regards,
Dan - NIUK -
I'm trying to create a subVI from a VI in which most of the controls and indicators (that will become the terminals of the subVI) reside in loops. I then connect the resulting subVI into a wrapper VI.
One boolean control within a while loop in the subVI is assigned to a terminal. If I connect a button in the wrapper VI to this terminal, the subVI doesn't seem to notice the input from the button at all. If I push the button on the subVI front panel, however, this works fine.
For indicators that reside in loops, the corresponding output terminals do not seem to reflect the subVI outputs either.
What am I doing wrong?Barry_Wealand wrote:
What am I doing wrong?
You don't understand dataflow yet.
A subVI receives values on all inputs when called and returns values on all outputs after it completes. The callling VI cannot continue with anything depending on the subVI output and thus it will also not read the control you are changing until the next iteration. Once called, all operations are local to the subVI. You can do what you are trying to do by wiring control references into the suVI and read values via value propety nodes wired to the references, for example. There are many other ways, though. Some better than others.
It would probably help i you could describe what you are trying to achieve with all this. Most likley there are much better solutions. Why is there a loop in the subVI?
Can you attach a simplified version of your architecture (i.e. toplevel VI and subVI)?
LabVIEW Champion . Do more with less code and in less time . -
Front Panel Controller SubVI?
Here is the scenario, I have a main VI that uses an event structure to call various other SubVI's depending on what control is pressed and to update the front panel accordingly. The front panel of the Main VI is a Tab Control with ~25 controls total. As you can imagine, some controls should not be enabled until other events happen. For example, I have a menu ring called "Report Type" of which you can choose 'HTML' or 'Send to Printer.' Next to this ring is a boolean control called "Open in Browser?" , I want to only enable this boolean control only when "Report Type" is set to 'HTML.' Likewise I want both the "Report Type" and "Open in Browser?" controls to be disabled if the user has not hit the "Download Data" control to get data from the RT Controller (otherwise there would be nothing to report.)
These are just a few examples of what I need to do, I have been adding 'Disabled' property nodes throughout my event cases but it is becoming very unwieldy and making my block diagram quite cluttered and hard to understand. What I want to do is have a 'Front Panel Controller SubVI' of sorts, of which I define about 10 or so various states the front panel can be in and pass that state to the controller SubVI which in turn disables/enables controlls accordingly. This idea sounds good but so far the implementation seems pretty bad. I was hoping I could just make a cluster of control references and pass that into the SubVI but LabVIEW 8.2 doesn't seem to allow me to wrap up references in a cluster. This has forced me to use VI Server to get the references. What I've been able to come up with using VI Server works, but I can't believe its the most elegant solution. Basically, for each of the possible states, I iterate over all the controls in the front panel and have a case structure for their Label Text which determins if that control should be enabled/disabled for the given state passed in. Also, for some reason it seems that it is not grabbing references to ALL of my controls. There is a menu ring control on the front panel that isn't in the Controls[] array. I should mention that this particular Control already has a reference node created for it that gets passed to a SubVI, perhaps this is why its not found in the Controls[] array, but this doesn't seem to be very intuititve, or documetned for that matter.
<a href="http://tinypic.com" target="_blank"><img src="http://i37.tinypic.com/fjgwtv.gif" border="0" alt="Image and video hosting by TinyPic"></a>Thats a very good idea, although I'd probably want to put a case structure around the disable property node and have it only change value when the search array function does *not* return -1, otherwise I'll be disabling things I might want to maintain in an enabled state.
Just before I read your post, another thought came to me and that why use a SubVI, I could just use a parallel loop with queues to send back state information. Since queues can be blocking, this would not negate my event structure. I could combine the idea you gave me with this architecture. Thanks -
Teststand error states that a vi failed to load in the Labview Run-Time Engine
I am getting an error in teststand that states that a vi failed to load in the Labview Run-Time Engine version '14.0.1'
If I look at the software loaded on my system with the NI Measurement and Automation Explorer I have Labview Run Time engines for version 2009, 2010, 2011, 2012, 2013, & 2014 on my system.
How do I get this VI to run on this system when it is called by test Stand?
Thank youThe RTE 14.0 was loaded as part of my deployment and after I ran this I got an update notice for the F1 patch which I also loaded.
I do not have labview loaded on this system, only the run time engines from running my deployment.
When I launch t he teststand sequence, when it calls the labview VI, I get the following error moessage:
Error: Failed to load VI 'C:\builds\RelayVoltageMeaure.vi' in the LabVIEW Run-Time Engine version '14.0.1'. LabVIEW: The VI is not executable. This error may occur because the VI is either broken or contains a subVI that LabVIEW cannot locate. Select File>>Open to open the VI and verify that you can run it. VI Path: C:\builds\RelayVoltageMeaure.vi[Error Code: -17600, Failed to load a required step's associated module. ]
I have attached the teststand sequence if this helps.
Thanks
Attachments:
QuantumDigitalBd.seq 13 KB
Maybe you are looking for
-
Photoshop CS3 versus Photoshop CS4
Hi I have Lightroom 2.3 Photoshop CS3 Mac OS X 10.5.6. After editing Photo in Lightroom my transfer to CS3 came up with the following message: "This version of Lightroom may require the Photoshop Camera Raw plug-in version 5.3 for full compatibility.
-
How to create daily shift logbook
Hi experts, Can u pl provide me the solution for daily shift logbook entry. Measuring documents should create automatically when i enter the value in the log book against the equipment or functionalocation. Logbook should provide entry of other gener
-
Hi can any one tell me the procedure of Pushing BO inbox item to Lotus Notes and SAP Inbox with step by step means , how to cofigure it ?
-
Function Module Failing in Run Time
Hello Friend. Thanks to SDN to get this FM created , but still i have some more issues. I copied the function module RSAX_BIW_GET_DATA_SIMPLE using SE80 TO Z_CUSTOMERB and also the Function Group I copied from RSAX TO ZCUSTB in SE80 ABAP area. <b>Er
-
When I try to add a photo from and email in Safari, I get a message that says could not add photo Safari cannot communicate with iPhoto. How can I get them to communicate? Or, more to the point, how can I get a photo from Safari (usually attached to