Issue of feedback loop

SEE ATTACHMENT BELOW *.

I created a program that creates a constantly updated intensity image, but I would like the user to be able to adjust the 'exposure' command when using the camera. Currently, the unit is set and continuously takes pictures on a single exposure setting. I don't know how to integrate the exposure time in the loop, without compromising the structure of the program.

There are 2 approaches (well, there is more, but I'll describe 2 of them )

(1) use the 2 loops. The inner loop (the one you have) ends when the user changes the exposure. The outer loop just updates the exhibition and then again the inner loop.

(2) put the VI exhibition in your acquisition loop, but only called when the user changes it (use a shift register to check if the value has changed. Place the VI so the exhibition is changed so that no data is acquired (for example between data and begins to take a new picture).

I hope this helps.

Tags: NI Software

Similar Questions

  • Anyway to save the data in a loop without using shift register or feedback loop

    Hi all

    I've been thinking, is it possible to save data in a loop to the next iteration without the use of a shift register or a feedback loop?

    I need the possibility to reload the data within a loop from a file of lvm, but I want to use the same data until I have load some new.

    The reason why I don't want use the node registry or feedback shift is due to speed, although I don't know if the registry change

    in fact moves all the data of one register to another, or if it is stopped until a change data occur.

    I want to reuse data medium and large (6 measure of strength, pressure 2, 1 flow channels) of about 10 s data in each file with samplingsrate of 2 kHz...

    In my testing program, I have several CPU demanding computations and 3D graphics, so I want just to minimize the CPU loading as much as I can for each part of the

    software...

    I am enclosing a small VI to explain what I mean.

    I have now, I shouldn't use the express VI and I'll change that as well - it's just a proof of concept!

    Hope you guys can help me better understand this shift register...

    Thank you!

    -Tommy

    If the speed is the name of the game, go with the flow (data) and stick to a shift of registers or feedback node.  No data is moved, their job is to do pretty much exactly what you describe.  Any other solution, control/locals/globals will imply a copy of the data, and then you will have problems with speed.

  • feedback loop on the impact force

    Hello

    I use labview 8.5 and a card Ni USB-6221 to control the power output of an actuator and monitor the output signal of a load cell.  The actuator allows strength 50 Hz which is measured by the sensor.

    The signal from the load cell is basically a very narrow peak occurring at a 50 Hz.  I want to measure the height of each peak, average figure (maximum strength varies from 2 or 3%) and then use this data to provide a feedback loop to keep the constant force applied.

    [img] http://farm4.static.flickr.com/3067/3077344302_4b7bb5f2a3.jpg [line]

    I tried to use 'amplitude and levels' vi 'peak', for an average to exit mode.  However, this seems to give a result fluctuate widly which is useless for feedback purposes. I tried to increase the sample of this vi period with no luck.

    Anyopne there any suggestions on how to do this? I could do this using the detection of peaks of waveform?

    Any help or advice would be greatly appreciated.

    Thank you very much.

    Hi John,.

    Thanks for your post and I hope that your well.

    To create a circular buffer in LabVIEW, you can use a shift register. However, for large number of data points with a large displacement to register on the side of the loop are stupid and impractical. This is why you must use a table, in which you update the value of the old with the new value, and you set the size of the table for the number of points you want to have in the buffer.

    I have created an example of a buffer in LabVIEW 8.5 - Please see attached VI.

    Also, if you do any static anylsis so perhaps consider using the functions of point by point, which no longer require the updated value to calculate the most recent average (for example). This saves because of the calculation table in its entirety every time.

    Hope this helps,

  • "Ground feedback loop."

    I searched a lot of places to find the answer to this question, so I hope I can get help here.

    I first noticed this problem a few weeks ago.  I lived a few white lines rolling on one of my monitors (I use 2, normally).  So, I contacted the manufacturer of my video card, and they proceeded to solve several problems.  I consider myself a fairly technical person, so when they offered a possible culprit, I would try several things to fix.  Now, I liquidated their inconvenience when I realized that (stupid on my part) my computer was sitting on top of a speaker.  Move the speaker removed the lines... temporarily.  They returned a few hours later.  This made me think that it wasn't a physical problem with my hardware, but a sort of interference of the devices plugged into my computer.

    I found that by unplugging my audio device, interference went.  So, I tried "Routing" my audio through my DVR (by plugging my audio device on my PC in the entrance and exit of the DVR) but the rows returned.  Naturally, this made me think, it's the receiver (Pioneer Surround) I always used as my PC audio device, so I tried to connect my computer to my TV (LCD Sharp), but it produces the same result (even with nothing else plugged in).  Eager to solve the problem, I tried hang my PC up to my DVR (unplug the TV and receiver) and persistent interference.

    So, it seems that no matter WHAT, I plugged my sound card created this interference, but I use an INTEGRATED sound card, so if that was the problem, I was in big trouble.  As a last ditch effort, I found a pair of old speakers bureau with an AC adapter.  The adapter has only two pins, so I guess that means no basis (not exactly).  They worked.  No interference present on each monitor, cementing my theory, that it was a "ground loop", but...

    My question is, how can I fix it with other devices?

    Also, I have all the Tech Info. If this is necessary, but I don't know what information is needed in view of the issue.

    Edit: I have test points of sale that everything is attached and that they are properly grounded, there must be something I forgot.

    So, after some additional testing, I discovered that this problem is caused by a problem with my cable emitting interference. The cable line itself is originally a kind of interference and any equipment to which it transfers this interference. (TV, DVR box) It is including any device connected to these devices. Disconnect the cable from the cable box solved the problem, if this good obviously a problem with my cable provider.

    Sorry to bother someone.

  • Feedback loops for the algorithm of peak power of solar cell

    Hello. I have some experience with Labview but I am struggling with the structures and feedback. I have an instrument that defines a load power voltage and measures. It will be connected to a solar cell that has a peak power (see the trace on the photo). I need a simple program that will make the instrument to oscillate around the point of maximum power. He must set the voltage, power, add a voltage increase, measure power, then add or subtract the voltage according to the question of whether the power has increased or decreased from previous measure. I am attaching a schema. Start V and delta V will be given and fixed. I don't know how to implement with Labview code. Thanks for any help!

    Hello

    Search here for a simulated a simple peak loop

    It allows to store the previous registry data at offset

    e time delay without the processor and also to simulate the transfer of communication with instrument

    concerning

    Tinnitus

  • DAQmx feedback loop

    Hello

    I write a VI in which an output voltage signal is sent initial (for example 10 cycles of a wave of fishing) in an electronic device. At the same time, another channel reads the voltage. In the next iteration of a loop, I want the voltage signal recorded to read to write to the output of the initial channel, such as entry becomes output and so on.

    Here's my vi at the present time, it works in the most generous sense, but I got some errors that I can't fix.

    Initially, the first iteration is registered without problem, but then, in the reading part, I get error-200279, then 200462 of error in the passage of Scripture. These are related to overwrite data in the input buffer and an empty output buffer, respectively.

    My .vi is attached. All the words of advice or encouragement?

    Thank you very much!

    OK thanks Kira T and Ye Yongqing for helping me through this, and I think I found a solution that I wanted to put in case it helps other people with their projects.

    Kira, I took your vi and, as suggested, exchanged the data record for a manual recording of data in the .tdms and that solved the 2525 error problem. However, when I have read the data (see data1.jpg), there are 2 immediate problems:

    The beginning of the initial wave of sin was being cut. I attributed this to the fact that the first task of writing Daq starts before reading inside the loop, so the first bits of the wave of fishing through the system until the task of reading can begin. I fixed that by placing the start task for writing vi inside the while loop, in a case statement that would run only on the initial iteration. Now reading and writing tasks have been synchronized.

    The second problem is quite strange - it seems that only a part of the 'i' iteration data is returned in the task of writing for iteration i + 1, and so the signal becomes gradually slowed down or expanded with each iteration since the writing task writes a progressively smaller chunck of the initial wave of fishing. By trial and error, I found that, in re-introducing the calendar than VI on the task of reading, this problem has been resolved.

    In the feedback v1_3. The desired effect is achieved: the signal is sent on itself, the noise level increases regularly with each iteration, and it doesn't seem to be cutting or the shortening of the wave of fishing.

    Thanks again to you both for your help!

    -gim

  • Issue of feedback during calls blackBerry Smartphones

    Hi all

    I have experienced the following problem on my Curve 8330 from Verizon for about the last 2 weeks, since I upgraded to 4.5.0.138. I am running 4.5.0.175 (Platform 3.4.0.55).

    In about 80% of the calls that I make or receive, I get a very strong, very strong feedback effect in the call. This will happen if I use the handset, speaker or a headset (Plantronics Voyager 520) Bluetooth. Appellants complained to hear the same noise so I think it's just on my side. Noise may occur at any time during the call and often occurs in bursts - say, 2 or three "tweets" within a few seconds. I wiped the handset completely twice and new 4.5.0.175 installation from a local copy. It has had an effect on the issue zero.

    Today's applications, I'm running are Gmail 2.0.6 Google Sync 0.5.15, Blackberry Messenger 5.0.0.57.

    Any suggestions?

    As I don't know IF the OS 5.0 corrects the chirp, I would downgrade also.

  • in parallel, the read button issue execution state loop

    Hello

    I have a while loop and another loop timed running at the same time. There is a button control in the timed loop whose status is copied to an LED. It is, when the while loop is, the Press Conference the button is not in the timed loop. only when the loop exits, I can't press the button again. Fixing of the vi.

    Basically, I need to detect the button press regardless of the status of the while loop execution. and it should be possible under the principles of parallel execution. Why is it not the case? How can I do this?

    Hello

    If you change the structures of your event and you disable the locking of the table until the end of the matter for this event, this will help your application and allow the thread of Control Panel before continuing. I would also add an event to the stop button so that you can stop the lower loop without hitting another button.

    Last point, it is advisable to put the terminal in the case of the structure of the event that refers to it.

    Mike

  • Nestled in the issue of the loop

    Hello

    I have something like this

    begin
      for r in (select * from table_a where data_start <= sysdate) loop
        <something>
        for r_prod in (select * from table_b) loop
          for p in (
            select * from table_c where ....... and rownum = 1
          ) loop
    -- <do something>
            -- and then I want to exit from the current loop (p), and r_prod also, and jumping to the next iteration of "r" cursor.
          end loop;
        end loop
      end loop;
    end;
    /
    
    
    

    Is it possible to get out of the third loop, the second also and go to the next iteration of the hand for... loop (with continue statement)?

    Thank you!

    Just the outer loop label and use...

     

    CONTINUE outer_loop;

  • For the issue of the LOOP

    questions about a loop if anyone can help

    Here's a sp that I run manually.

    Set serveroutput on
    Start
    TBPNE. PROADMIN (p_user_id = > '123456', p_proj_id = > '5001');
    end;
    /


    creates a table with all the p_proj_id because they are different.
    Have 1 p_user_id im using

    can I run a loop like that?


    BEGIN
    FOR I IN (SELECT p_proj_id of ADMIN)
    II IN (SELECT user_id FROM user_master@PCRG_GP17 where user_id = "123456")
    LOOP
    TBPNE. PROADMIN@PCRG_GP17_EXEC (ii.p_user_id, i.p_proj_id);
    END LOOP;
    END;

    This is the part that I don't understand (ii.p_user_id, i.p_proj_id);
    If my variable SP 1 had no problem, but now I must fill in 2 variables, is this correct syntax?
    did I miss a comma after FOR i IN (SELECT p_proj_id FROM ADMIN)

    Using the format of your original example, passing parameters by keyword...

    BEGIN
      FOR i IN (SELECT p_proj_id FROM ADMIN)
      LOOP
        TBPNE.PROADMIN@PCRG_GP17_EXEC (p_user_id=>'123456',p_proj_id=>i.p_proj_id );
      END LOOP;
    END;
    

    If PCRG_GP17_EXEC() is defined with the parameters in this order (p_user_id, p_proj_id) then you can pass the same parameters of position;

    BEGIN
      FOR i IN (SELECT p_proj_id FROM ADMIN)
      LOOP
        TBPNE.PROADMIN@PCRG_GP17_EXEC ('123456',p_proj_id );
      END LOOP;
    END;
    
  • The sum of several waveforms, created inside the loop for

    Hello

    I am currently viewing the Gibbs phenomenon by adding several sine waves. The issue I'm having is that I can't understand how to add sine waves created in the loop. I have attached a picture of the basic structure for my project below. I tried to use simply "add" with a feedback loop, but it seems that my programming skills apply here. Any suggestion is appreciated. Thank you!

    0

    Something like that?

    1. make sure that you "reset" the generation of signals with each iteration

    2. with the waveforms, please make sure that the sample rate is the same.  This may be a problem with the first iteration.  Then add in a check to use only the first waveform on the first iteration.

  • for loop in formula node does not

    Hello

    I; m trying to use for loop in the node of the formula, but it is does not work. I want the output (y1) product value in certain range (a and d, and of course one is smaller than d). I ' do not use primitive labview since a and d are keep changing (both are variable). I tried to put "return 0;" after the y1 equation but the error popup.

    The issue of the loop works not because it gives the last value (I average would be ""). It does not begin with an (initial) value.

    Please help me how to solve this problem...

    Pls ignore other variables not used in the equation. Thank you!! A lot

    Your code works.

    But why you use loop?
    You get the last value, so you can get it in a single step with x correct;

    Also why you say that can not use primitives?
    If you use wire instead of terminals or local variable States values constant.

    Y1, y1_2, y1 3 is the same values calculated differently.

  • Cannot insert (video loop while VI)

    Hi all

    I'm building a VI to count the fringes of an interferometer using a video camera of Thorlabs 1645C (with the VI UC480). The intention of VI is to count time passing a certain pixel fringe and to do this, I need a counter threshold. As can be seen in the screenshot, video array is first reduced to a single pixel (using a slider) to get a 256-bit integer that indicates the levels of gray. This gray scale should trigger an account each time it passes a certain value, but the threshold detector resets whenever the grayscale value dips below the threshold. I tried to use while loops (and other loops of types), but in these cases the video play not at all, making it useless VI. When you use the other fixtures, however, as one set, the count will be just continue to rise as long as the grayscale value is greater than the given threshold, or it is not at all.

    After a week and a half of trying, I am ideas. Could someone please help?

    Next time, I have a question, I'll post an excerpt, but since this VI needs a specific camera, run, I was thinking that showing the complete VI would not be useful.

    I think I found the solution well! (It seems to work because as far as I know)

    It turns out that I needed a bigger? block instead, in which the feedback loop has a high value for an iteration unique 'loop' (which is strange, because I have used almost the exact same set-up, but instead of the threshold detector VI, I used a Boolean value, which has been without success).

    I added a screenshot because it seems more convenient than adding a VI (due in part to compatibility etc.)

    Thanks for all the comments

  • new issue of the labview user.

    How can I restart an inside a loop feedback loop for which is inside another loop?

    example: I want to run my outermost for loop twice.

    I also want to run the second loop for, which is inside the first three times.

    Inside this second loop is a feedback loop that starts at 1 and adds 2 whenever the second loop runs: 1, 3, 5

    My question is how can I do to make the loop back power supply will restart at 1 when outside for loop reinterates?

    so tha I get 1,3,5 for the first round of the outside of the loop and 1, 3, 5 again for the second run.  At the moment I get 1, 3, and 5 for the first run, then 7, 9, 11 for the second race.

    Thanks to you all

    Please include an example and tell us your version of LabVIEW.

    If you have a recent version of labVIEW, you can simply move the initializer of terminal to one of the stacked loops that surround it. Then initialize her there.

    If you have an older version of LabVIEW, you might need a little more code, for example another register shift. Nothing serious, though.

  • Cannot compile control &amp; Simulation loop

    Hi, I am trying to compile a simulation, and the problem is a feedback loop

    which is not accepted.

    I want to write a program that removes the signal of its DC component and controls the amplitude of the remaining AC signal

    Thanks to a feedbackloop. The PI-regulator controls the gain of an amplifier.

    Hello laskar01,

    Instead of the feedback, use VI memory node. Your problem should be solved.

Maybe you are looking for