Capture digital control last values

Hello

My front panel has several digital commands that I expect the user to enter data in before pressing a button that takes the values of the digital controls and

a power supply programs. What I discovered is that if a user types the digital control and does not support on enter or moves the cursor with the mouse to a new

control, the valleys of news are not captured when the button is pressed.

How to capture the most recent value in numerical order without waiting for the user to press ENTER after that that they typed in the value?

Two possible approaches to capture the value most recent inside a structure of the event:

(1) read the values of your digital controls in the case of events for the button.  It is the simplest solution.  If you need access to these numerical values in other cases of event, use the event to change value for these controls to update of the shift registers, or use a local variable.

(2) take advantage of the cause of the time-out period (if you are already using it you may need to do some creative re-use).  Store the time-out value in register shift and set to default-1 so that he will not run.  In your case of button, set the timeout to 0 shift register.  Move your key event code in the case of timeout.  LabVIEW will be re-read the values of your digital controls and the time-out event runs immediately.

Tags: NI Software

Similar Questions

  • Update of digital control with different values with array function

    Hello

    I have attached my code base. I want to execute the code for 2 sets of digital control with a gap between the two values, then pass it. Something like that

    ABC

    Initialize the P1 = 10; P2 = 20; P3 = 30; P4 = 40

    Run the code

    delay = 10ms

    Update of P1 = 150; P2 = 200; P3 = 350; P4 = 500

    Run the code

    jump to abc

    I am stuck how can I update the values of P1, P2, P3, P4? I thought about using a function table but couldn't go further.

    Thanks for the help,

    Ana

    Hello Ana,

    One way you might achieve what you are looking for is using property nodes. These property nodes will allow you to change the values of the block diagram control. You can set up a structure of case inside your loop that will change control through nodes of property value after a certain number of iterations. Here is a community sample that shows how to use the nodes property to change the Boolean controls:

    https://decibel.NI.com/content/docs/doc-22669

    -Erik S

  • How to ensure that the value of a control (for example double) initializes the last value when the VI has been closed?

    I use a cluster as a control. I would like to double in this control to automoatically values to fill their last values set when the VI is opened or accessed for the first time. It would be great if someone could point out for me. Thanks in advance!

    In my opinion, the configuration files are the easiest method and the best.  Simply save your last values to the file when your code ends.  At the beginning of your code, to read the file and fill in the controls with the values read.  With the configuration files, the section name can be the name of the cluster, and key names can be control names.

    I know OpenG has some pretty nice to do, but I prefer to use the native functions OR when I can.  When porting to a new system, there is no need to copy any additional screws library (OpenG library).  The native DV come with Labview.

  • You can use the value of a digital indicator in a digital control?

    Hello!

    I have to develop a code where I need to find the maximum value of a waveform and draw a line at 50% of the value. So I chose find the amplitude of say 10 cycles of waveforms and found the maximum value of the amplitude.

    But my real problem is, I have to use the maximum amplitude value I get from the table VI maximum and back into a program to calculate the value of 50%.

    So it is possible to use the value of a digital indicator and put it in a digital control? As in MATLAB or C, you give a name to the variable and use it later to do all the calculations. Is it possible to do something similar in LabVIEW?


  • digital controls, by group of input values

    Hi, I want to reduce the input values that a user can define a digital control, I know I can set it up to only accept a concrete range but in my case I want to only accept a group of values such as [1,8,22], for example.

    Thank you!

    Use an enumeration or a ring.

    Cameron

  • Display hex values when editing a digital control

    Hexadecimal display is deleted when editing a digital control (in the settings) in cvi 2012. Is this a bug or am I missing something?

    I have informed our R & D Department of the format settings in 2012 of the CVI. I have filed a request for Corrective Action (CAR # 379345) on this issue, but cannot guarantee that when this problem will be solved. You can check if this problem has been resolved in future versions of the CVI by searching the CAR identification number listed previously in the correction of a CVI Bug information.

  • Is it possible to have explicit '+' sign to digital controls?

    Hello

    I was looking for a possibility to show the sign of a numeric value to digital controls, i.e. the control should display "-1.2345" or "+ 6.789" because this value will be added or subtracted another parameter value. "". " Accordingly, no sign, i.e. "6.789' is not meaningful in this case."

    Unfortunately, I couldn't find any opportunity to do so (CVI8.5.1). I don't want to use a text control where this would be possible, because I have the up and down arrows to scroll upwards or downwards. I've missed something trivial - or is really not possible STD? Seems so simple and natural...

    Thank you very much

    Wolfgang

    Hello Wolfgang,.

    We will add this as a suggestion of product. In the meantime, have you tried to capture the top and bottom event keypress in the reminder of chain drive and increment/decrement the value yourself?

    Moreover, you always expect to see a sign "+" when the control value is 0? Or no sign at all, in this case?

    Luis

  • How to create a digital control (of any type) which can be increased or decreased by a 'unit' at the same time?

    As in the title.  I want to create a digital control (no current limitation on its type) with a range of 1 to 10 (and a step of 1).  The only difficulty that I have, is that the user should only be able to increase or decrease 1 at any time.  Code initiated by this change of value must have completed at least once before that the value can be changed again.  This is because code of VI is mainly contained in a while loop and control are read once at each iteration and its last value should not differ more than 1.

    Is this possible with LabVIEW 6.1 and if so, how?

    One of the solutions that I came up with so far is to disable the control immediately after its reading, and to turn it on again immediately seized is read the next time (I have to assume that the user is unable to click twice before the control is disabled).  It is an acceptable method, or is there a better way?

    I also had an idea of partially disable a normal digital control, such that it could not be typed in - only arrows remained operational.  However, I'm not sure how.

    James

    Hi James,

    You can use the two buttons (by releasing latch) and a digital display that shows the current value. Button increased the value and the other decreases. Store the value in a shiftregister to work with her.

    I don't know if your solution would work because use may directly enter the new value.

    It will be useful.

    Mike

  • display the last value

    Hi all

    I have a questions. It is that I create a Subvi to my table and it can display the last value in the upper part. Below attached snapshots of my programming. I use a number random and STOP for control of you guys let see the whole process of what I want.

    but when I change "constant true/false" and using a digital command. and I put it in my program. It won't list down the values and it will not display the most recent value at the top. What is the problem? I was stuck on this problem for a while.

    and another question was how to keep the size of the list is constant? for example, I onli wants to view 30readings on my table. as the program continued to run, the oldest value will be overwritten. because if kept under my table more, means memory increase my programming and registration of cause late development. I do not want to happen. So is it possible to maintain the display of fixed table values?

    Hi Isabelle,.

    I think that the problem causes initialization of a register shift to void / vi. If you initialize a shift register, each time sub vi is called, he will replace value in the registry to offset with initialized value. Uninitialize a registry change to resolve a problem. I've attached a screenshot of my sub vi for your reference.

    Sincerely, Kate

  • strange appearance of the digital control

    Hello...

    I met a strange appearance of a digital control, see the below two screen captures.

    Reminder: on a tabpanel, two of several digital controls have been changed programmatically if I put an indicator with a checkbox that is located on another tab of the Panel:

    -control mode is switched / battery hot

    -precision went from 6 to 4 figures to compensate for the space of digital arrows

    These changes are applied to three checks, but only the first (highest) behaves unexpectedly, while others are very well...

    (A) if both attributes are changed, the two top controls look like this:

    in other words, the left most of the characters of the control are somehow overlapping, giving the impression of a fat o material

    (B) if only the command mode of the higher control is changed to hot, the following result is obtained:

    This makes it more obvious that somehow the two zeros on the left of the control are pressed together.

    Interesting, if I operate the higher control by clicking on the arrow/top down, the result displays (1.0000E - 3) is ok.

    I was much afraid to post this mystery which could well be a stupid mine mistake, but unable to locate a problem in the code, I thought that it could possibly be linked to the issue tab panel reported here

    Comments, suggestions?

    Thanks, Wolfgang

    Hi Wolfgang,.

    I checked your project, and it looks like a bug. I created a CAR. The number is 282946.

    I guess that at the moment, you have to live with it or place the box on the same tab.

    See you soon,.

    RMathews

  • A digital control takes no account of the limits of data at entry entry is typed, why?

    Limits of data located in the property entry seem to have no effect on data entry. A value written to a property node limit the contribution of the increment of buttons but not the data which are entered in the control. How to stop digital control to accept out of desired range values? In the attached example, why I can type in any number for control and data entry limit is ignored?

    In the Properties window of data entry for the digital control, you have the "answer of value out of range" ignore the value.  Change it to compel.

  • Digital control over several orders of magnitude

    Hi all,

    I'm trying to get a digital control with a suitable addition to the order of magnitude.

    For example, I have a front panel for an osziloscope, sometimes that samples on some ns, sometimes a few seconds, sometimes a few milivolts, sometimes a few volts, who knows, right
    I was playing around with the digital control units, but it doesn't quite fit my needs. I can't change the prefix of a unit on the duration, for example of microseconds to seconds, but then I change the issue as well, because on change the prefix, the previous number is only multiplied by the factor according to, for example, 1000, so 5 became US 5th-6s. So change the record length of the default value of 500 ms to 100 ns would require two klicks type, and I can instead just type "100th-9', which is good too."

    However, I would like to have a digital control from 0 to 1000 combined with for example a button for prefix i.e. nano, micro, mili etc. and combine this values internally, i.e. of mulitplying accordingly. But I couldn't set the increment to "3 orders of magnitude" even with the option to log scale.

    I know, I could use an enum with the names and values according to, but this is not very satisfactory.

    So perhaps the question would be: is it possible to combine two digital controls or the value for the prefix, in a suitable and easy way? Or how do you manage the digital values over several orders of magnitude in a case like mine?

    Thanks for your replies in advance.

    Best,

    bastlwastl

    Display format is SI units

    It helps in these situations

  • How to separate the 'down' key panel and digital control

    Hi all

    I have a key to proecess vi events for Panel and a digital control in this Panel. the app will do:

    1. when the Panel is focused, allows the user 'up' and 'down' to the driver of some hardware.

    2. when the digital control is activated, 'up' and 'down' change its value as usual.

    somehow the other did not, because the round table 'touch down' was trigger as well when I use «to the top "'down' key aminata CNC.»

    Then, I used "Key down?" digital control to block the "up/down" key But the first time, when I run the Vi, the Panel always got triggered only once.

    any suggestions on this? test code attached to this post too.

    Thank you

    It works for me in 2014.  In short, you just need to check to see if your digital has the focus.  If it isn't, then you treat the value of the key.  No need of any other event here except the stop button.

  • Flashing LEDS with digital control

    Hello

    I want to do a simple program that goes like this. I have 2 digital controls and 2 comparisons. 1 digital will compare if the number if there is less than 50. Second comparison if it is longer than 50. If less than 50, according to this number LED is blink your eyes upward and will stay on. If the second number is greater than 50 the LED belonging to this number is then blinking and will remain lit. NOW...

    If one OR both of these lights light up, a THIRD light should BLINK automatically. If the two first two traffic lights are off, then the third should stay off.

    I tried using shift registers and a deadline for the delay, but I'm stuck.

    Any help would be great. Thank you!

    Thuba25

    First, you must modify your code for an interactive real state machine. Your code is inside-out.

    Currently, the controls are read once at the beginning of the program and then never.

    • Do not use internal loops. Use a single outside WHILE loop that encompasses all of the code.
    • Get rid of the stacked sequence, she is useless and obscures just the code.
    • The case structure belongs inside the loop and not vice versa.
    • Read the commands with each iteration and decide depending on their value.
    • ...

    See how far you get... Good luck.

  • Digital controls by default Reint?

    I am VERY new to LabVIEW and were loaded to think beyond my skill level. I'm sure it's an easy fix, but I am at a loss.

    I have a digital control that changes of the user. The value of the digital control is then added with a reading of a strain gauge. I need to find a way to return the digital order to its default value. I read something on the forums on the use of a node to invoke, but I don't have a clue how to set up.

    Thank you so much, in advance.

    Thank you so much, I spent hours trying to use the loops and conditions. I didn't know where to put it in my program. One of the loops has finished the program to the point where the display was 5 seconds behind the data behind.

    You guys are life savers!

    Here is a selection of the node implimented. I used a button to "lock when you press on.

Maybe you are looking for