Show front panel of subVI on a real-time target

Hi,
I'm running an application on a real-time target (14.00). On the main front panel of the application, I have a button who open another VI with the invoke node method but this component doesn't work with Real-Time taget. So, how can I show the front panel without this method ?
Thank you

Hint: RT = there should be no GUI.
RT applications are meant to just run off on their own.  GUI is not part of a real RT system since that adds a non-deterministic process to the system, adding jitter (which is a big no-no in RT).  What you should be doing is making a Windows host application that can communicate with the RT system (via Network Streams, TCP/IP, etc).  The host application acts as the GUI/HMI.
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines

Similar Messages

  • How to display remote front panels of subvis that are already open

    I inherited an RT project that uses remote front panels for nearly all the user interfaces. The host application opens a remote front panel the the top level RT vi, and there are several subvis on the RT system that are opened from that top level vi and thus displayed on the host (i.e. their "Show Front Panel When Called" properties are set TRUE).
    If the Host loses its connection to the RT system when any subvi front panels are opened, and the host application is restarted, it can re-open the top level vi remote front panel, but all the RT subvis that are already open will not display their front panels. I am looking for a way to open the front panels to these subvis from the host application.
    The kicker is, I need to know which subvis are actually running before I attempt to open remote front panels. Is there any way to determine what subvis are actively running (and not just in memory, such as subvis that won't get executed until the top level vi reaches a certain state)? I am thinking that I could create a list of the subvis that I need access to, check to see if any are actively running on the RT system, and then invoke a remote front panel connection with those that are running.
    Does anyone have any ideas as to how I might be able to do so? Or any other suggestions? [and yes, I know that RFP communication is probably not the best way to go, but we're too entrenched in this software to start over with a new system!]

    TurboPhil wrote:
    If the Host loses its connection to the RT system when any subvi front panels are opened, and the host application is restarted, it can re-open the top level vi remote front panel, but all the RT subvis that are already open will not display their front panels. I am looking for a way to open the front panels to these subvis from the host application.
    It might be possible to work around this behavior by placing VI invoke nodes in your top level VI that reference each of your subvis and setting the Wait Until Done invoke method to false.  This should cause the subvi to close when the top level VI closes even in the case of an unexpected restart.
    You can access this invode node in the functions pallet by selecting Application Control » Invoke Node and also selecting Application Control » Static VI reference.    Wire the Static VI Reference to the vi reference input node and double click the Static VI Reference and select the appropriate subvi in the dialog window.  Left click on the Method section of the invoke node and select Run VI. Finally right click on the Wait Until Done invoke method and select Create Constant and ensure this constant is set to false. 
    TurboPhil wrote:
    The kicker is, I need to know which subvis are actually running before I attempt to open remote front panels. Is there any way to determine what subvis are actively running (and not just in memory, such as subvis that won't get executed until the top level vi reaches a certain state)? I am thinking that I could create a list of the subvis that I need access to, check to see if any are actively running on the RT system, and then invoke a remote front panel connection with those that are running.
    You can access this information by using the Real-Time System Manager (Tools » Real-Time Module » System Manager).  This can be used to show what VIs and subvis are loaded into memory and which are running.
    For more information on using this tool please referere to this Knowledge Base article. 
    Message Edited by BLAQmx on 02-18-2008 11:40 AM
    Mark
    LabVIEW R&D

  • Show front panels of sub VIs when running a EXE (build application)

    I've created a exe file and it works fine. However, it only shows the front panel of main VI and I can not open sub VIs (it looks like they are all hidden). I know it can be done by creating a library file along with this exe file, but that's not what I want. I want to create a single exe file that shows several front panels, and that can be run with run time engine. Is there any way to show front panels of sub VIs by running a exe file?

    In the development mode, how are you displaying the front panels? Did you right click on the subVI and select SubVI Node Setup and choose 'Show Font Panel when called/Close afterwards if originallly closed' or did you choose the same options from VI Properties for each subVI. If the second, then the app builder will automatically retain the front panels of the subVI. If you chose the first option or if you are using VI Server to open a front panel, then the default setting in the app builder is to remove the front panels. You would then have to go the VI Setting tab in app builder and edit the settings.

  • 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

  • Show front panel in runtime

    I want to show front panel in runtime( or when called) without all the
    menus, tool bars and scroll bar, just as a ordinary control panel only
    with window title.
    any suggest will be appreciated.
    Jacob
    Sent via Deja.com http://www.deja.com/
    Share what you know. Learn what you don't.

    [email protected] wrote:
    > I want to show front panel in runtime( or when called) without all the
    > menus, tool bars and scroll bar, just as a ordinary control panel only
    > with window title.
    >
    > any suggest will be appreciated.
    >
    > Jacob
    >
    > Sent via Deja.com http://www.deja.com/
    > Share what you know. Learn what you don't.
    These are options you can setup using the Sub-VI Setup.
    You can also access these through the VI Server.
    If you look on NI's web site and get the Splash Screen VI
    you can see how to do this.
    I can't get to LAbview right now or I would be more specific.

  • VI Server in the real time target and Vi client under the local computer

    Hi,
       In my project i want to make a data communication between a vi server which is runnig in the real time target and a vi client runs under the local computer (My Computer target).
    My problem is when i Click the property terminal of the property node function (located on the Functions>>All Functions>>
    Application Control palette) , i don't find the front panel open option from the shortcut menu.
    Thanks.

    The Front Panel options are methods.  Try dropping an Invoke Node down instead of a Property Node.
    Applications Engineer
    National Instruments

  • Producer/consumer architecture over network variables with Real-Time target.

    Hi all,
    I am maintaining a producer/consumer data acquisition program to be deployed on a real-time target. The main code is deployed to and run on the real-time target during experiments, but was having trouble because the program was originally designed to write all experimental data to disk on the real time during acquisition, which puts the whole experiment at the mercy of the hard drive. I am now trying to rework the code so that the host takes care of logging, so that my time-critical loops don't have to wait.
    I am currently using LabVIEW 8.5
    I have two questions:
    First, how can I programmatically call the data-logging subvi on the host so that it runs in parallel with the main vi which runs the experiment and collects data on the real-time? I have attached the test code that I have been working with to figure this out, but it does not run the logging vi continuously in the background. I am aware that there is better functionality for this in newer versions of LabVIEW, but I would prefer not to upgrade unless there is no other option. I would like to be able to run my data-generating vi and have it start the data logging remotely.
    Second, is there a way in the host VI to read values off the network variable using an event structure rather than polling it for updates?
    Any help would be sincerely appreciated!
    Attachments:
    testRemoteLogging.zip ‏124 KB

    VI server
    Mark the target VI as served on the machine on which it will execute and use VI server Call by reference to invoke the served VI.
    This used to be taught as THE way to communicate syncronously with an RT app.
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • Can i use cpu vortex86DX-1GHZ as Real-Time Target?

    can i use PDX-057T (Panel PC) with DM&P SoC CPU Vortex86DX-1GHZ as Real-Time Target?

    maji wrote:
    can i use PDX-057T (Panel PC) with DM&P SoC CPU Vortex86DX-1GHZ as Real-Time Target?
     I do not know, but you may test your computer with a tool. Take a look here, and also note the related links i the bottom http://zone.ni.com/devzone/cda/tut/p/id/2733
    Besides which, my opinion is that Express VIs Carthage must be destroyed deleted
    (Sorry no Labview "brag list" so far)

  • How to install the NI-DAQmx driver on a real time target PC?

    Hi, I’m painful about how I can install a PCI-6363 DAQmx on my real time desktop PC target. The PCI-6363 is directly connected to the real time PC. And I’m using LabVIEW 2011 and MAX 5.0. 
    The DAQmx device driver can be seen in software lIst in the host PC, but it can not be found in the install wizard. Is there something wrong with my host PC? or is that wrong to connect PCI-6363 with real time desktop PC?
    I would be grateful for any advice that I could get here.
    Solved!
    Go to Solution.

    Hi Zhleo,
    If you are about to use the PCI-6363 with the Real-Time Desktop you are right you need to have it installed, and then you need to deploy DAQmx driver software to the real-time target.
    To do that you access your real-time desktop under Remote Systems in MAX and start the Real-Time Software Wizard. There you should see DAQmx listed. 
    In case you do not have DAQmx listed there, see this KB: Deploying DAQmx to a Real-Time Controller or PC?
    Regards,
    Eirikur Runarsson
    Platinum Applications Engineer
    NI Denmark

  • How to get last Build date of a dll in the real time target

    Info On My Project    
       I am working on LabWindows CVI 12.0 for development . This project is a real time application for hardware, which is having Phar Lap ETS as RTOS...  
    I am facing some problems while checking Build date of my Application file( .dll)
    I have tried to use GetFileDate API. But it is not supporting for realtime Target..
    So i have tried __DATE__ macro.. That also having some problems..
    How to get last Build date of a dll from the real time target  ??
    Please Help to solve this....
    Thanks
    Vaishakh A  K

    Please reply if any one have suggestion...

  • How to create RT boot disk for labview real time target

    Hi All
    I want to use desktop PC as real time target and for this i have to boot this desktop using RT operating system. I tried to use RT disk utilities in TOOLS menu in MAX but at the end it says no disk found in A drive or B drive since i do not have flopy drive in my laptop. I can not make a PC utility USB drive also since this option is not highlighted in the options hence i can not select it. Is there a way to create this RT operating system on a CD drive or can i download this operating system from somewhere so that i can boot desktop PC as real time target. Thak you for your help.
    Chauhan

    Hello,
    Well... you have a problem. : )
    The easy solution that i can remember it's.... Buy a usb floppy disk.
    Sorry, but it's the only think that i can remember.
    Software developer
    www.mcm-electronics.com
    PS: Don't forget to rate a good anwser ; )
    Currently using Labview 2011
    PORTUGAL

  • How to install Vision run-time engine to a desktop PC converted to real-time target

    Hi, all
    I don't know how can I install the vision run-time engine to a desktop PC which I converted to a real-time target.  The same problem applies to installing real-time run-time engine and labview run-time engine to the real-time target.  The only way to install software to real-time target is through "add/remove software" in MAX for remote system, but it is not for all types of run-time engine installation.  
    I am also confused about how to activate those run-time engines for the desktop PC as real-time target.
    Please help and great thanks.
    Wei 

    Hi turtle,
    Here is a link that explains how to set up a desktop PC as a real-time target.  The section for Formatting & Setup should help you the most.
    NI Developer Zone Tutorial: Requirements for Desktop PCs as LabVIEW Real-Time Targets
    Justin D.
    Applications Engineer
    National Instruments

  • "Waiting for real-time target (RT PXI target) to respond" error when the program waits interrupts

    Hi there,
    I have developed an application to detect interrupts generated by a electronic card and act in consequence. The program has been developed in labview but it calls a dll; that was created with labwindows. The dll is programmed to open the visa communication, enable events and install the interrupt handler and when an interrupt is detected, it reads the value of the different registers of the card and returns it to labview to visualize them. 
    The problem is that when the program waits for an interrupt, a prompt appears with the message "Waiting for real-time target (RT PXI target) to respond" and the only option I have is to click on the button to disconnect from the pxi or just wait. If I wait and I generate an interrupt, the prompt disappears and the application visualize the data like it was expected. 
    To wait for the interrupt the following code has been programmed in the function:
                    while (flag == 0)
                                    Sleep (1000);
    When an interrupt occurs, the value of flag changes to 1 and the function continue without any problem. I am not really sure, but probably here is the problem and probably this is not the best way to wait for an interrupt because the sleep function suspends the thread for the configured time, but at least the computing load in the PXI is between 0% and 1%. I was wondering if somebody knows how to wait for an interrupt without "lost" the communication with the PXI and if there is a better way to do it. 
    Any answer will be welcome and thanks for them,
    Jaime
    Solved!
    Go to Solution.

    Hello Naity,
    First of all, in which thread runs the waiting process? Is it scheduled in another thread than the function setting the flag?
    It scheduled in the same thread that I use to configure the communications and configure the card. Anyway, here is the pseudo code of the function interrupt that I programmed under labwindows,.
    char* interrupt(void)
    1. Open visa communications
    2.Install handler interrupt --> status = viInstallHandler (instr, VI_EVENT_PXI_INTR, IntrHandler, VI_NULL);   // the function IntrHandler will be called when an interrupt occurs
    3. Enable event PXI interrupt
    4. Wait
    while (flag == 0)
                  Sleep (1000);
    5. Visualize the data coming from the interrupt (registers and values measured with the card)
    6. Uninstall handler interrupt
    7. Close visa session
    The interrupt handler function IntrHandler is called immediately when an interrupt occurs and the pseudo code is like this
    ViStatus _VI_FUNCH IntrHandler(ViSession instr, ViEventType etype, ViEvent event, ViAddr userhandle)
    1. Disable some functions of the card to avoid damages. 
    2. Read registers and put them in a buffer
    3. Change the value of flag ---> flag = 1;
    In labview, I call the function interrupt with a call library function node (see the capture attached) and the program reads and saves the data from returned from the function.
    Secondly, I am not sure this method is the most elegant. You could for example register an event with the function and, insteand of setting a flag to 1, trigger the event and schedule it in another thread (if the function is thread safe). This could reduce your CPU Load even more and seem a bit cleaner to me.
    I've never used events before in labwindows but I will try to do it in this way. But anyway, I suppose that I should; somehow, wait the event to occurs in labview while the waiting for the event is programmed inside the dll...and probably the same prompt that i am trying to avoid is going to appear again, because I am not returning the "control" to labview (I mean, labview executes the dll and waits for the event to occur. Then the execution of the labview program is stopped in the call library function node executing the dll)
    Third point, which environment of development are you using?
    I am working with LV 2010 sp1 and Labwindows cv 10.0.1 and with the real time module.
    I did also another test, I divided the program in different functions, one to initialize the communication, another to wait until a interrupt has been detected and the other to obtain the data from the interrupt and close communications. With labview I call first with the call library function node the function to initialize, later I call inside a while loop the wait function like this
    int waitAseconds (double seconds, short stop_waiting)
    if(flag==1 || stop_waiting == 1)
    flag = 1; //to detect the stop_waiting button
    printf("flagAA =1 stop waiting = %d time = %d\n", stop_waiting, clock());
    return flag;
    else
    SleepUS(seconds*1000000);
    //a++;
    printf("flag a= %d stop waiting = %d time = %d\n", flag, stop_waiting, clock());
    return flag;
     and when the program detects an interrupt, the function returns to labview the flag and stops the loop. Finally, it reads the values and close communications. 
    In this way, the prompt appears but after running the application for 10 or 20 minutes and also i checked that there is a time gap between the executions in the loop.
    Thanks for your reply and your help,
    Jaime
    Attachments:
    capture.png ‏40 KB

  • Desktop PC as LabVIEW Real-Time Target and DAQ ISA card

    I want to use LabVIEW Real-Time (Desktop PC + OS Pharlap ETS) for operation with DAQ ISA card.
    Pharlap ETS supports operation from Windows dll and can supports Third Party Device PCI.
    Whether there is a possibility to work with ISA card in Pharlap ETS?
    I want to work for example with card PC20TR from BMC Messsysteme GmbH.
    Does anyone have tricks for using ISA card in Pharlap ETS?

    Hi,
    If you have reviewed the requirements for a Real-Time target and verified that your computer is compliant you might want to check out this article.  The main issue that people encounter when using PC's as RT targets is have the correct network card.  Make sure the card you have is on the supported devices list on the webpage that Christian posted.  You should be able to develop a driver using low level VISA commands but it is not an easy task.  Read over the developer zone article to learn more about it.
    Eric A.
    National Instruments
    Distributed I/O Product Support Engineer

  • Requirements for Desktop PCs as LabVIEW Real-Time Targets

    Hello
    I have read the Requirements for Desktop PCs as LabVIEW Real-Time Targets
    http://www.ni.com/white-paper/8239/en/
    and i have 2 questions:
    Supported Ethernet Chipsets:   Is Intel® i210AT Controller supported?
    Supported Processors: Is E3 and E5 Xeon Supported?
    thank you

    Dear goltnum9,
    Here some Whitepapers where you can read which Requirements must be given and also how do convert.
    Requirements for Desktop PCs as LabVIEW Real-Time Targets
    How do I Create a Desktop Real-Time System?
    Kind Regards,
    SG3 | Applications Engineering | National Instruments | NIG |

Maybe you are looking for

  • How do I use my second monitor when first monitor in full screen??

    HI.  I just added a second monitor to my mac mini lion setup and when I go full screen with an app I can't use the other monitor.  How do I fix this?  Thanks.

  • Playing 1080p from macbook pro to hdtv?

    hello, i have a mac book pro original: Model Name: MacBook Pro 15" Model Identifier: MacBookPro2,2 Processor Name: Intel Core 2 Duo Processor Speed: 2.33 GHz Number Of Processors: 1 Total Number Of Cores: 2 L2 Cache: 4 MB Memory: 2 GB Bus Speed: 667

  • Styles Not Mapped Correctly in Output

    I am using RoboHelp 8 and I am trying to produce printed documentation from a WebHelp project. I have chosen to use styles from a Microsoft Word template. I have a RoboHelp paragraph style named NumberedProcedure mapped to a Word paragraph style name

  • VSC 4.2.1 on vSphere 5.5 U2 fails to 'Set Recommended Values'

    I have three ESXi 5.5 U2 hosts and each time I click on 'Set Recommended Values' I get the following: "You have selected one or more hosts that the Monitoring and Host Configuration is unable to set the recommended values for." Can you guys think of

  • How Do You Create Subdirectories?

    Hello, I want to design my website with subdirectories, but do not know how to do it. For example, for my photo pages, I would like to individually list each year from 2001 to 2007 on one page (such as a welcome page) and then under each year have pa