JNR <[EMAIL PROTECTED]> wrote in message news:<[EMAIL PROTECTED]>... > I have a boolean control (Start Button) inside a while loop that needs > to initiate TWO processes when it is activated. For the FIRST of these > processes, it is imperative that once the button is pressed, the > boolean control must remain in its switched state (switch when > pressed) for the remaining duration of the VI. > > However, for the SECOND process, the same boolean control must trigger > a process (some code inside a Case Structure) only ONCE, and never > again. Due to various constraints, this Case Structure code is also in > the same While Loop that contains the boolean control. > > I am trying to figure out a way to do this, but have not been > successful so far. > > If the explanation of the problem I have provided above is not clear, > here's another way of looking at the problem: > > I need an effect similar to the "latch when pressed" mechanical action > of controls, but achieved programatically. The Case Structure > containing my code receives a default "False" status until the button > is pressed. After the button is pressed (and for the remainder of the > program), the status is changed to "True". This Case Structure is > inside a While Loop, which runs throughout the length of the program. > How do I make the code in the Case Structure only happen once, and not > with each iteration of the While Loop? > > Any suggestions are appreciated.
Add a shift register to the while loop. Connect the start button to the right-hand shift-register terminal. Connect a False constant to the left-hand shift-register terminal outside the while loop. Feed the selector of the case statement with the following logic: Start_Button AND (NOT left_hand_shift_register_terminal). This logic while cause the TRUE case to execute only on a transition of the Start button from F to T. Paul Cardinale
