Updated in time real front panel

Hello dear colleagues,

I'm working on a program to test a printed circuit board. The problem is I want to show the progress of the test on the front panel in real time. Global variables found to be very useful, but they are not exactly what I'm looking for, since writing to the variable does not influence the indicators of reading instantly him (naturally).

If the solution I provided is to have 2 loops: one where the subVIs and the subsubVIs are executed and write their date to the global variable as soon as it becomes available. And a second loop that runs at the same time and goes constantly date of the global variable to the indicators.

However, this loop 2 solutions feels strange to me. Is there a better way to update the façade in real-time? Something like the pointers or references? I tried the nodes property and 'references' but they both work only locally...

I wish all a pleasant day

Tarik

I usually have a loop which does no GUI: users by pressing the buttons/edit orders digital and/or update of the indicators.  So my trick is to use user events to pass data subVIs and loop parallel to the GUI.  The Structure of the event will see the event and you can just write directly to the terminal of the indicator.  It works very well and is much more scalable than the global method.  It is not also question, so you're not wasting CPU and memory resourses to update an indicator that has no real need to update.

Tags: NI Software

Similar Questions

  • The time on front panel display

    Problem solved.

    Apologies to remove the original message. He initial post was something like this:

    --------------

    I twice parallel loops running - 1 who acquires the data every 30 seconds and the other just infintely loop to show the time on the front panel. But for some reason, timed loop data acquisition has been working well and do not release control to the other timed loop - for this reason present on the front was not getting updates.

    --------------

    After various discussions, I found what was my mistake:

    There are dependencies between the 2 rings - and no doubt because of the time was not getting updated.

    Solution:

    http://forums.NI.com/NI/board/message?board.ID=170&message.ID=75933&query.ID=60956#M75933

    Instead of using 2 timed loop, I used a timed loop to purchase and a while loop as explained in the thread above to display the time on the front panel.

    I hope this helps.

    Thank you.

  • Is it possible to get a panel of Photoshop to receive updates in time real color?

    Hello community CS SDK!

    I hope that I can tap into your knowledge of experts here because I'm not an expert (yet intellectually curious and always want to learn). I was able to build a few panels and write some scripts useful for Photoshop with success. But so far, I would not say that I did something too ambitious. Now, I'm ready take the next step.

    I am currently developing a Photoshop Panel that did some calculations and analysis between the foreground and background colors. But I need to find a way for my Panel to receive real-time updates of foreground and background colors, but I honestly don't know how or where start. Specifically, I would like as my Panel to receive this kind of events, so that I can update the value of the color associated from Photoshop:

    1. Foreground and background color change events to stay in harmony with the colors of foreground and background in Photoshop:
      fgbgColors.png
    2. Events associated with Photoshop color dialogue selector and how the Panel can get the 'new color' value (before the user clicks OK):
      colorPicker.png
    3. The color that is under the mouse cursor (color in real time as can be seen in the DETAILS pane data):
      infoPane.png

    I thank you in advance for any help, you might be able to provide!

    Jeremy

    What you have looks like a valid syntax.

    My guess is that by copying the code of the documentation, you copied the french quotation marks (http://en.wikipedia.org/wiki/Quotation_mark_glyphs) and the compiler will not like that. I manually replace all quotes and retype it to make sure they are all dumb quote.

  • Best way to share/update buttons on the front panel

    Hi y ' All!

    I am a beginner in LabVIEW (2 years experience: 1.5 academic year and a team of the FRC and professionnellement.5 of mentoring as a new graduate in a startup).

    We develop an application using LabVIEW which is intended to be user-friendly touch screen and we have so many front-facing button with which we are dealing. In order to make the code more readable in force and easily scalabe, I will like to know if there is an effective way to process orders from the front.

    To illustrate, let's say I have this UI:

    The real way we propagte these controls is to create a cluster of the reference of all controls (it's where I wish we had LabVIEW 2012-_-) once unbundle that we need in the appropriate section of the code (means it's a large number of sons everywhere...)

    So are there better ways to achieve the same goal?

    Thank you!

    I'm talking about a Controller of GUI in this thread. This can give you an idea.

    Ben

  • Update the controls on the front panel producer consumer

    Hello

    I wanted to ask you a few tips.

    Usually, when I implemented a consumer producer I use producer to create items from queue whose state of the enum and pack all the necessary data in the process of the event in a Variant.

    Then the consumer does all the work.

    There are two areas where I feel that I could not be using the best approaches...

    (1) when I need to update a control on front panel I Pack a reference to this control on front panel in the variant in order to access the property nodes in the consumer and to update.

    I have attached photos with an example. It's simplified code where the user must perform a task of data acquisition in the analysis of certain parameters. The code increases the setting of a fixed amount to each race to help the user in its sweep.

    Is there a best way to do this?

    (2) when events require the same control to be plugged into the variant for the handling of the loop of consumer I create local variables or references to this control to other events. Would it be better to have a registry change that crosses the loop producer which gets updated values of façade at each time the loop iteration?

    Thank you.

    Because you use a loop of events such as the producer, I would use user events to update your controls.  This way you are not circulate references just to set/update a control.  You can make a user event and handle this event with the structure of your event.  Your client sends just the event with all the necessary data.  I found this configuration really useful since it retains all the GUI code centralized in a single loop.

  • Update of Acquisition of tension over on front panel

    I have this simple motor driver program that communicates with a stepper motor controller. I now have to combine this vi with person who acquires a finite number of data points of tension. I found an example of tension over who works with my daq (usb-6009). I was thinking about another stacked in a loop sequence for works to save the voltages, motor training, save several tensions, etc. a desired amount of time.

    I wish I could see the tension on the front panel, because I'm their record. Is there a simple way to do this when requiring a finite number of tensions? I use finish because I need only say 10 seconds of data in each engine position and fixing the number of samples whose rate is a simple way to adjust the ignition.

    The examples I've seen update tension using a while loop. If I do this then the while loop keeps going until the user stops it.

    Thank you very much. 2 vi, I work with is attached.

    BTW, I'm a graduate of mechanical engineering student.

    Hello

    See this link on the waveform data type.

    http://digital.NI.com/public.nsf/allkb/B965F316364DE17B862572DF00363B10

    Writing custom file Express VI will be likely to work as a note for a long time the sample and, therefore, the loop rate is not too high.  It's because the writing on a file of measures, although practical, contains a bit of overhead.  If you want to display multiple channels, you can merge the signals and display them on a single diagram, or use several.  It will be you.

    The best indicator to use will depend on what data you want to display.  The waveform table is going to be the most complete, but as you have found the samples back in the form of an array of double type, you can indicators table, or remove points on the table and use digital indicators as well.

  • How to make non-visible control on the Front Panel appear at Design time?

    I have a few controls on the front whose visibility is changed (on or off) at run time. The problem is that if I stop the Run time, the visibility of the control remains in the running in design mode state. So I am not able to see or find the control to make changes in design mode.

    How can I make all the visible front-panel controls, or find and make it visible to a control on the front whose visibility has False?

    Thank you.

    It is documented in the help of LabVIEW.

    Hidden front panel display


    Perform the following steps to display a hidden front control or indicator. You can also hide the indicators and controls on the front panel.

    1. Find the terminal block schema for the object. "If you have multiple devices with the same type of data, right click on the terminals and select visible elements" Label in the context menu. Find the object with the label that corresponds to the object hidden façade.

    2. Right-click in the Terminal, and then select Show Control context menu if the object is a control or indicator to show if the object is an indicator.

    You can also use the Visible property to display the controls and indicators by program.

    You can also view all hidden front panel controls and indicators.

    Path: Fundamentals-> build the façade-> how-to--> configure the objects-> display on front panel of the façade hidden object.

  • Screenshot or image of the camera in front panel

    Im trying to take a snapshot of a CCD image in my front panel every time my program iterates. CCD image is updated of my camera which is connected online. Ideally, I want just to save an image in .jpg of this image of the camera of each iteration, but I can't do with the invoke node option. Any ideas?

    Is attached a screenshot of the front part, let me know if you need the real VI

    Hi Manderson13,

    Norbert is absolutely right that you can record images using the NI Vision software. What kind of camera you have, and how you currently gain to display images on your front? Documentation on how that here you can use our vision software to record images to the file.

    Thank you!

  • OR scope Soft Front Panel fails to load

    Hello

    I use the scope Soft Front Panel OR with my USB NI 5132 for some time successfully. However, recently it has stopped working completely - seems to load a bit then fails before you even open the screen. The same thing happens in MAX I did all the updates critical, uninstalled then reinstalled NI Scope, uninstalled Labview (the only thing I had changed after the last time, I know that it worked successfully) and checked the nitaglv.dll library was in the right place according to this post: http://digital.ni.com/public.nsf/allkb/63739991438EC593862579C6007301EC

    So far nothing's worked. I NI SCOPE 4.0 and NI-VISA 5.3.0 installed, and the computer could see successfully the digitizer USB 5132 Max after the relocation OR scope, well that the flexible façade does not always load and making the Panel test Max also does not.

    I have attached a picture of the screen to load before it disappears so that could provide clues.

    Suggestions?


  • Front panel locked, but not due to the structure of the event

    Hi it LV community.

    I did a staemachine program that executes an oscilloscope (screenshot of a provided below... the State of the problem). I ran my program yesterday and it worked very well. Then, like a model, a dialog box opens and I just clicked on it in a hurry. now my front hangs as soon as I move the above-mentioned State "the Oscilloscope settings.

    As indicated, I have go a repeat loop that collects successive impulses of my oscilloscope and displays on the front panel (it works fine). In parallel, I have a structure of the event that makes the tail for the real-time feedback of changes to parameters that I placed on the façade (exodus of state change).

    Here's the problem: as soon as I State 'Oscilloscope Settings' using a Boolean button on the front panel for get me there, the front hangs... No event triggered by this point, and even if it did, I already deselected the "Lock panel until the end of the matter for this event" checkbox in the case where the structure menu.

    So WHY is my front lock now? Thoughts anyone?

    Read the detailed help for event structures.

    He urged that a single event structure serve in a VI. There are moments where more can be used effectively, but caution and a thorough understanding of the structure are needed.

    The problem is that you have several structures of the event in the various cases of the state machine and they are set to respond to the same events.

    When the button Set Oscilloscope, the structures of the event in the purchase Menu and home screen States receive the event. The two lock the screen, but only one of these cases may work. It can transfer control to the State of the Oscilloscope settings, but the other event responding to this same event structure maintains the locked Panel.

    The solution is not not to release any of the event. The default value is usually the best setting. The best solution is to spend on an architecture of producer/consumer (events). Who uses two parallel loops. The producer has the one and the only structure of the event and passes orders to consumer loop through a queue.

    Probalby want as the mechanical action on the buttons to lock when you press. Put kiosks inside the respective case of event changed value and local variables becomes unnecessary.

    Lynn

  • Open FPGA references change to no. target when compiled with executable in time real start

    Hello again you useful forum fans!  I have a problem that I hope someone can give me a hand with.

    I have a project that has a Windows component and a component of the target in real time, that are running on a hypervisor type NI PXI-8110 system.  Communication both sides between them using shared variables.

    On the real-time side, I have four FPGA targets who are reading and writing various analog and discrete inputs and outputs.  I several periods loops which opens a reference to one of the FPGA targets during the first call, then pass this reference in several subVIs that read and write to panels prior to the FPGA.  The loops the FPGA reference thus made available and reuse it in the next iteration through the shift registers.  Each FPGA target has only a single reference open to him.  One of the loops is using the FPGA reference directly and does not pass it in any subVIs.

    It all works very well in the development environment, I can read and control inputs and outputs FPGAS via the front panel of the application of the side Windows.  It also works very well if I start the game real time in the development environment, and run the code of windows as a stand-alone executable file.

    However, when I compile the code in real-time in an executable startup and deploy it to the target, it does not work.  I enabled debugging on the executable, and when I connect to it via the operation-> debug executable in the menu, I see an arrow broken at execution.  Further investigation shows that each of the four open screw reference FPGA is now empty, the text under them is "no target" and the thread for reference on their part to my first Subvi is broken.  I need your help to understand how to operate as it does in the development environment.

    I followed the instructions of these two knowledge base articles to compile and download the bitfiles FPGA on the FPGA target and execute on start or restart:

    http://digital.NI.com/public.nsf/allkb/39795847AC67296D862575FB0046944F

    http://digital.NI.com/public.nsf/allkb/BC513C2A0DC29C89862574BF0002B0B9?OpenDocument

    Open FPGA reference screw are configured for the FPGA to build specifications that I created for each target in the LabVIEW FPGA project.

    I called technical support, NO phone, and yet were able to determine this one out, so additional "brownie" points if you do!  I would offer you the same no detailed screenshot that I have (I can't give more detailed code out because its owner, unfortunately), but apparently the forum doesn't like my image file, as I can't seem to load.

    Please let me know if you have any ideas regarding what is happening!  I appreciate it.

    Jon,

    I'm always up for the challenge.  Have you tryied recompile the FPGA VI that accesses the RT VI?  I also suggest to try and open the bitfile instead of the FPGA VI.  You run in dynamic mode (this is not a suggestion, it's just a question)? There is no difference if you try to open the FPGA VI reference outside the while loop, then past the reference to use inside the while loop without shift registers, then close the reference to the FPGA VI outside the while loop?

    Let me know if these suggestions makes no difference.

  • Reminders does not work in the executable LabVIEW front panel

    I have a couple of reminders in the process template that trigger an event in the event structure to update of the lights on the front panel for the user. Everything works fine until I have create an executable file. This can also be an indication of the other points, I have not discovered yet.

    Any ideas?

    Thanks for all the help.

    Found!

    Not unlike most of LabVIEW developers, I have a range of utility screws that I use over and over again. Such vi is vi uses a property node to find out what environment the application is running in, i.e. .llb, exe, development, publishing student, etc.. This vi is used because SEO screws in an executable file have a way different than when their listing in the development environment. Using this vi allows your code to reference the screws properly when developing and when the executable is built. The code still works because it automatically adjusts the referenced path of the vi. See attachment 'Path Finder.vi environment'.

    Now for the fun part! For some reason, perhaps because of the friendly character of NOR and the relationship it is with its developers :-), AND decided to change the path of the executables in LabVIEW 2009. After hours of troubleshooting and countless rebuilt, I came to the conclusion that the ' paths of the band of "work magically stopped working. It was at this time one of my friends happened to walk and ask why I had everything in my monitor across the room (figuratively speaking of course, I'm sure we've all been there). I explained what could be the only conclusion, band paths do not work!

    My friend immediately began laughing, having recently had the same problem. He explained that in LabVIEW 2009 executable paths are different and our 'find the path vi' would not work. He added that NOR, after finding this funny, however gave the developers a way to solve this problem with a check box within the app Builder. The box is called "Layout using LabVIEW 8.x file." See attached photo named "App Builder."

    The only thing I could say to my friend was, ' silly me, I should have know what that.»

    Laughing out loud

    Thank you for trying to help, it launched my butt.

  • pause button on the front panel

    Hello.

    I try to run synchronous, continuous analog conversion of 2 cards of PXI-6259, and capture the State of the several digital at the same time.  I managed to get everything is configured and working properly, however I have a problem if the user presses the button "pause" on the front panel.

    From what I can tell, acquisitions of data will continue to run in the background (I'm using a task DAQmx and stop was never called).  For my analog inputs, this is not a problem.  However, the digital inputs always generate a ' 200010 - on-board memory overflow error. Due to the limitations of system and/or the bandwidth of the bus, the driver could not read data the device enough fast to follow the flow of the unit. »

    Is it possible to register for an event of user interface that is generated when the user presses the button "pause", so that I can stop the acquisitoin of data before the error occurs?

    Thanks in advance,

    -Rich

    NormPgh wrote:

    I thought to add my own button "pause" / control, but my users have become accustomed to hitting the pause on the front panel button, and it will be difficult to get them to change.  I guess that the error would remind them :-)

    Well, that's easy to fix - change the appearance of window properties if the toolbar is not visible, while the code runs, and there will be a pause button for your users to click.

    Many of our applications have a function somewhat like this.  My colleague implementation in a very simple way: he put the graphical indicator within a box structure.  Connect a Boolean control "pause" to the structure of the case, and that's it.  Data acquisition runs constantly but will only update the chart when the pause button is false.  This approach might work for you?

  • Programmatically disable the controls on the front panel

    Hi all

    I have a case in which I need to activate the control of front panel during scanning or taking data and when this case is false / when not not taking data. I try to make the Subvi usng vi reference, the node property, making the label controls and disbaling it. I want to disable the control listed in the table during the real deal and allow them to return to the case of fake. But right now, it of not working and hangs my main program. Please see the vi attached and help find where I am doing wrong.

    Thank you

    The best way would be to create an array of references to the controls you want to mess with beforehand.  I say that because I'm guessing that you have several groups of controls you will be turn on/off at the same time.  If you have a table of these controls already created, then just run the table in a loop FOR and use the Disable property.  I made a few minor cleanups in your current VI.  I got rid of the outermost case structure since the two cases are essentially the same thing.  A selection function allows to choose to enable or disable.

    NOTE: the forums are screwing again and not let me post a VI.  Change the extension back to vi to open it in LabVIEW.

  • Boolean front panel disconnected from the block diagram

    It is very strange behavior I've ever seen elsewhere.

    I opened a program that I have used before that works, after the replacement of some dll which is called.  I don't know if it's relevant, but just in case.

    In any case, I have a structure of the event in a loop.  Events are to turn certain values of output in a bitmap and update some of the entries.  As you can see in the screenshot of the time-out loop, the values of the input bitmap are fed directly in the Boolean flags.  The problem is that even if the thread is true, the façade is not up-to-date.  Also, when I click on the button stop, the Boolean value on the wire is not up-to-date.  You can see on the screenshot of the probe and the front panel.

    At no time have I stopped explicitly updates from the front panel.  Indeed, the status indicator updates correctly.  But he only makes a Subvi.  If you pass a reference to a front panel indicator in a Subvi, it locks the front for some reason any?  I thought for sure, I had done this several times in the past without problem.

    I'll post not rather the VI publicly without more deletions.  Just the stuff company owner.  I wouldn't mind sending them to someone OR, however.

    Thanks for any help.

    It was apparently a transient state.  I arrived, open LabVIEW and the VI, and everything is fine now.  I don't know what that looks like, I am back and found a few nodes property overwrite values.  I promise you that I will not change anything.  I should have tried this yesterday, but it was the end of my day at that time and I had a place to be.

    If you want, bradyAE, you can send me your email address and I'll send you the VI, if you think it is useful to investigate it.  Like I said before, I would rather not post it publicly.

Maybe you are looking for