How to make graphic XY interpret several plots of a While loop

I am a student of Georgia Tech researching prefabricated FETs, relatively new to LabVIEW, and I write a LabVIEW vi for the characteristics of output. Basically, a curve of Ids vs Vds with Vgs (curve tracer) evolution. I'm controlling a power supply via GPIB to bias the door while using another supply/power meter via GPIB to vary Vds while obtaining the IDs. My program is working as needed with one exception. After that I built my data table, my XY Graph interprets the data in the form of a plot and during the interpolation will connect all points of data together, as shown in the attached picture. I would like the chart to interpret the data in several plots in this way I can position the sliders along each plot for other parameters. I have also attached my vi if necessary. Any suggestions on how I can fix this?

~ jdamato3

Because you know from the start how much data will be in the plots, you can initialize the structure of final data once before beginning to loops. Now, the size of the data in the shift register structure is invariable for the duration of the race. It's a good thing!

In the previous implementation, each table grows with each added item, and given that the tables must be contiguous in memory, each culture operation is likely to require a new copy of the structure of the whole of the data in memory. The program will be spent most of his time to allocations of memory instead of actual work. (no much here since the tables are short, but imagine MB of data and it will become all very expensive and slow).

Here is a modification of the example. (remember that the data containing NaN show on graphs, thus giving the desired effect).

Tags: NI Software

Similar Questions

  • How to make a website in several languages

    How to make a website in several languages

    No magic. You design them as separate files of Muse and switch between languages using explicit links pointing to the same pages in a different language-specific subfolder. If you have already published your site, you should know all the links and the names of final document easily.

    Mylenium

  • How to make the sliders on two plots are linked

    I have two graphics of waveform on the face before (Ch3 and Ch4).  Each of them have the same X axis scale and for each have 2 cursors (0 and 1 slider slider). I want to make cursors follow one another.  For example, I select cursor Ch3 0 and move it to a certain position of X.  I then want to Ch4 cursor 0 to the same X position on the waveform of Ch4.  If I then move the cursor to 1 Ch4 cursor at a certain position of X, I want 1 Ch3 cursor to move to the same X position on the wave form Ch3.

    I tried using the event Structures and it works very well if I want to just Ch4 sliders to follow the Ch3 sliders.  But if I want to be able to adjust and have follow-up else I can't make it work.  If I could get two event structures in the same loop, it could work but A) I read is not a good idea and B) I have been unable to operate anyway.  I'm sure it's possible... could someone give me some suggestions?  Thank you.

    What do you mean by

    lme999 wrote:

    If I could get two event structures in the same while loop...

    ?

    You can manage events in the structure of the event (just set up 2 events).

    (It is true that it is not a good idea to have 2 event structures in a while loop. It's the nature of the stream... the while loop runs only when the two structures event run exactly once. Anyway, usually 1 event structure is sufficient.)

  • How to set up the execution in a way independent while loops?

    Hello

    I hope someone here can help point me in the right direction for that.  My system at this stage is still quite simple, I just data collection of 2 resistance probe and a pressure sensor, their output in the Panel before and sometimes to write.  I have put architecture in place to call parallel loops running at the frequency I would ideally like to do.  that is, I want the RTD to update every seconds and the pressure transducer for updating chaque.5s, I want to write to the file at a rate defined by the user and I want the Panel before updating a half second (correspondence with the pressure transducer).

    Now, in the structure, I wrote, it should run all the while loop once before it can restart the sequence.  Technically, the code works, but it takes ~1.5s to the RTD to collect and update and so the whole VI takes ~1.5s to complete.

    I don't care if the RTD is slow to update, but as I use the sensor as a gauge of the cell pressure I need to know at a high frequency that the pressure is in the cell, and I don't want to wait 2 seconds for the information.

    I know I'm starting to get into a much more advanced architecture for this and ive spent the last googler 6 hours trying to find a procedure for how it works but I can't figure out a way to have the whiles stop waiting for RTD loop finish.  I guess that this is to divide the VI in several screws and construction of a library, but the resources I could find about it were not very useful for a beginner like me.  If someone could point me in the right direction on where I should look then that would be great!

    Thank you

    Zach

    Zach,

    Because you created the tasks of data acquisition elsewhere, we do not understand how you have set up. Continuously, starting and stopping tasks may be slower than setting up of a permanent task and let it run.

    You have not indicated that you use the DAQ hardware.  It is often better to leave in the DAQ hardware clock set ignition rather than rely on software distribution. The pressure loop reads 1000 samples at a time and calculates their.  If you're not sampling at 2000 s/s or faster, the loop ends late due to waiting for data.  In two loops DAQ, you do not use the calendar information.  Acquire the data in tables rather than waveforms.

    The Dequeue functions in the loop at the bottom have no wait times for this loop will not iterate until all three queues have data. As the pressure loop runs faster than the loop of RTD, the queue of pressure slowly fills.

    The upper and lower loops are vying for the data.  The preview queue item does not delete data from the queue, but the functions of the Dequeue elements in the loop of the low fact.  If data is deleted form the queue before the upper loop resembles it, it will never be saved. With your installation there is no way to ensure that you get all the data or that you do not read and record the same data more than once.

    You don't have anything set up to stop one of the loops.  You use the Cancel button to stop your VI?  If Yes, STOP! Other aprticpant on the Forums said: "using the button abandon to stop a VI is similar to the use of a tree to stop a car.»  It works, but can have unintended consequences. "Things like closing of files, freeing up the queues, by closing the task of acquiring data, and other things can occur when the program is interrupted.  You do not shut down your computer by pulling the plug.  Stop your program also neatly.

    Ok.  I have highlighted some of the things that can keep your program to run as desired.  What can you do about them?

    1. you probably don't need call loops.  Normal so the loop should be good enough.

    2 put a stop button on the front panel. Put the terminal in loops (bottom) and connect it to a function to send a Notification and the status of the Terminal loop (stop sign).  Put wait Notification functions in each of the other loops.  Put a period shorter than the time loop minimum on all of them if the lops can work.

    3. see the comments above regarding the DAQ bed material.

    4 use the Dequeue timeouts to adjust the pitch of the loop the loop where the data is used.  Also make sure that all data is removed.  You need to think about your time together and what are the bottlenecks.  Except if you expect this system to grow to much larger dat sets, I probably acquire ALL data (pressure and RTD) at the same rate and reduce the displayed amount by the average like you do for pressure data now.  If you want different final data rates, just average different amounts of data.

    5. it might be useful to learn how to work the State machines.  Display, averaged and recorded files could be managed in a loop by a simple state machine while allowing for more flexibility in the calendar.

    6. Another good reason to consider a state machine is that initialization and shutdown processes can easily be handled in the corresponding States. At this point you do nothing with errors. A state machine would enable you to handle errors (for example, the cancellation of the selection of the user files) without stopping the program.

    Lynn

  • How to control the rate of acquiring data in a while loop

    I'm trying to use a digital trigger to collect data on the rising and falling edge. The design is displayed as below. Now, I save the measured voltage 1 & 2 to the local variable in the while loop. Hoever, the while loop runs at a frequency of more compared to the structure of the case triggered. So I had a lot of repetitive data.  If I record data directly from structure of the case, it will be recorded as data-0-date-0 because of the ongoing case of fake wire.

    I wonder how to revise to save the measured voltage 1 & 2 at the same frequency of up/down edge triggered? Thank you! I have also attached my current version of Labview program, which takes place in time real Labview 2013.

    Mcdullna wrote:

    Thank you for the answer. Could you be more specific about the use of the shift register?

    The case of false just past the value through.  With this configuration, you agree that the data remain in the son, avoiding race conditions.  It is also more effective than the use of local variables.

  • How to control (or know) the speed of iteration of While loops?

    Hello world!

    Currently, I am implementing a 2 bit counter in LabVIEW. Fortunately, I was able to find examples on the forums of NOR.

    Yet, in real life, speed of the ILO 2 counters are controlled by a clock switching frequency to produce different outputs 4.

    In VI I downloaded, the 2 bit counter plays quickly with an unknown speed. Trying to put timing delays and other tools, but I have to at least be able to control the 'real' speed of counter 2 Bit inside the while loop.

    Is there a any basis on what is the speed of iteration of the While loop when the loop? I have really need to know the real speed and how to control this speed because I need to sync for demultiplexing purposes.

    Thank you and best regards.

    ____________

    Falsehope


  • How to display multiple channels on several plots

    I use a USB-6009 to capture data on three separate channels. However, the way I put it up now, I see the three channels on a plot. I'd like to see each channel on a separate parcel, but I don't know how I'd do. Thanks for your help.

    Hi Aparker,

    Here's a quick picture of what you could do with the Index of Array function to separate your parcels on separate graphs.

  • How to make a request on several employees salary increment

    Dear gurus,

    I want to apply increment on the wages of many employees without going through the window of salary for each employee. Someone knows how to do, or in any case which still exists? It will make my job a lot easier.

    Hiya,

    Pls check Metalink Note: * salary Administration installation and use [201235.1 ID] *.

    MAINTENANCE OF MULTIPLE SALARIES

    Use the record of wages management to work with sets of assignments for the mass
    entering and approval of salaries.

    Navigation: U.S. rrh > people > payroll

    If you, for example, 10 employees to approve salaries, you can
    CTRL - click to select these employees and then click approve. If
    you have a significant number of employees or manipulate data on wages.
    Launch the Application Data Export (ADE).

    A. interview assignments you want to work with.
    B. then on salary management, click the icon of the ADE to start ADE.
    C. in the extract ADE, select the style of the 'proposal for a salary"and select spreadsheet. Click Start.
    D. change the data in the worksheet. Save the spreadsheet with a new name.
    E. exit of the worksheet.
    F. in ADE, choose the Download"" button.
    G. support to choose and select the new worksheet that you saved.
    H. Select Tlchg.
    I. update data in the payroll window.

    Hope that helps,

    See you soon,.
    Vigneswar

  • How can make a file into several files with any number of files with any file size.

    Hello

    I do multiple files download JDeveloper 11.1.1.7 utility. I want to choose any number of files with any size but adf have a total files size or single file size restriction.

    How to remove this restriction. I do not use portal UCM or webcenter. Its core ADF application that inserts data Blob in DB.

    Looks warms

    Maroof Ahmed

    This is possible by using 11.1.1.7.0. The inputFile allows unlimited file (set the property maxFiles-1 and the uploadType "autoMultiple" or "manualMultiple"). The size of the files to download can be configured in the Web.XML ( post treatment file) then it should be possible. However, you should think about the consequences if you allow unlimited download of files. To insist on the server until the break (disk space or memory).

    Timo

  • How to make this function accepts several rows of data?

    Hi all

    Here's the code for Karthick_Arp. How can I change to accept the multiple value?

    Here is an example

    create or replace type stringlist as table of the varchar2 (100)
    /
    create or replace function splitstring (pstring in varchar2) return stringlist
    as
    lstringlist stringlist;
    Start
    Select regexp_substr (pstring, "[^,] +', 1, level") bulk collect into lstringlist
    of the double
    connect by level < = length (pstring) - length (replace(pstring,',')) + 1;
    Return lstringlist;
    end;
    /
    Select * from table (select splitstring ('xx, yy, zz') of double)
    /
    create table t (str varchar2 (100))
    /
    Insert into t values('x,y,z')
    /
    Insert into t values('a,b,c')
    /
    Select * from table (select splitstring (str) from t where rownum < 2)
    /



    If you provide multiple values, it will fail.

    Select * from table (select splitstring (str) t)
    /

    Maybe try this

    create or replace type stringlist as table of varchar2(100)
    /
    create or replace type inputlist as table of varchar2(100)
    /
    create or replace function splitstring(pstring in inputlist) return stringlist
    as
    lstringlist stringlist;
    loutstring stringlist := stringlist();
    begin
      for i in 1..pstring.count
      loop
         select regexp_substr(pstring(i),'[^,]+',1, level) bulk collect into lstringlist
           from dual
         connect by level <= length(pstring(i))-length(replace(pstring(i),','))+1;
         loutstring := loutstring multiset union lstringlist;
      end loop;
      return loutstring;
    end;
    /
    select * from table(splitstring(inputlist('a,b,c','d,e,f')))
    /
    create table t(str varchar2(100))
    /
    insert into t values('x,y,z')
    /
    insert into t values('a,b,c')
    /
    create or replace function getInputList(pSql in varchar2) return inputlist
    as
      linputlist inputlist;
    begin
      execute immediate psql bulk collect into linputlist;
      return linputlist;
    end;
    /
    select * from table(splitstring(getInputList('select str from t')))
    /
    
  • How to make a delay in the true case of a loop of the case, without affecting the wrong case?

    Hello

    I do a mini project, where I must, when the input is true, (10 s) delay before the release can be true, that's why I used a loop case and used the wait function in the case of true only, but it seems that it also affects the case of fake...
    Help, please!
    Thanks for your time

    remapears wrote:

    Yes I use it...

    Using what, exactly? (structure of the event? The race continues?, something else?)

    Try something like the joint.

    ("Continuous run" is a debugging feature, not a way to run a VI normally, so don't do it.)

  • How to make a button turn on the 'real' property while I'm clicking on a row of datagrid mxml App flex4

    Hi friends,

    I'm new to flex, I application web flex4 with mxml tags.

    I hit this place, please give an idea.

    I have a DataGrid with 5 lines and 4columns, and also I have a button (enable property is set to false).

    while I click on a particular line of datagrid then the property enbale button should be change to true.

    where I write the code.

    any suggession or the code snippet.

    Thanks in advance.

    B.Venkatesan.

    Hello

    You can take the help of the following code:

    http://ns.Adobe.com/MXML/2009.

    xmlns:s = "library://ns.adobe.com/flex/spark".

    xmlns:MX = "library://ns.adobe.com/flex/mx" minWidth = "955" = "600" minHeight >

    Import mx.collections.ArrayCollection;

    [Bindable]

    public var Arr:ArrayCollection = new collection ArrayCollection ([{a: "AAA", "BBB" b:}, {a: "111", b: "222"}]);

    public void Activate (): void {}

    BTN. Enabled = True;

    }

    ]]>

    Thank you and best regards,
    ------------------------------------------------------------------------------------------ --
    Vibhuti Gosavi . [email protected] | www.infocepts.com
    ------------------------------------------------------------------------------------------ --
  • How to make a graphic inside a while loop to maintain the previous values

    At first I tried to use a the VI Express XY graphics to create a track of points.  However, the chart is a trace linear between the first point in the new line and the last point of the previous line.  It then creates the new line as you wish.

    I tried to use a loop with group a cluster for the chart, but the chart resets the plot at each iteration (as expected) and I can't find a way to maintain the previous data.  I tried using shift registers, but was unable to find a way to do it, and I tried also the cluster of a painting company, but can not find a way to make the cluster to a 1 d of a cluster of 2 elements array.

    One option is to have is to find a way to maintain the previous data, but the preferred option is to create a new path to each iteration to see the color change for each new parcel.

    I take stabbed it because I don't know exactly what you want. But I think that's what I've shown here. You must use a shift on your outside register while loop, as I showed. Your image where you tried to use a shift register shows a misunderstanding of the shift registers and how well they work, then I'd take a peek at these tutorials.

  • Since the installation of 4.0.1 I can't do a right-click on the icon in my taskbar and have Firefox give me the option "close and save" tabs. Only let's me know, I'm about to close several tabs. How to make 'save &amp; close' return?

    Before installing 4.0.1 I could right click on the Firefox icon in the task bar of my computer and press on the window. He would then give me the option to "save the tabs and exit" or "close all tabs".
    Now he comes and tells me I'm going to close several tabs.

    It was convenient to be able to close Firefox and open it with all the tabs in place. There is nothing more annoying than to have several tabs lost because your computer has is an update of the day overnight and restarted. It is also useful when you want to run a tun - up or cleaner who asked that closing your browser for best results.

    How to make 'save and exit' return?

    Thank you

    Firefox stores now always the old session, and you can access it by going to the history menu and selecting "restore previous Session."

    If you want Firefox to display the message to save the session, it can be turned on again by changing some preferences.

    1. Type of topic: config in the address bar and press on enter
    2. Accept the warning message that appears, you will be taken to a list of preferences
    3. Find browser.tabs.warnOnClosepreference, if its value is set to false, double-click on it to change its value to true
    4. Repeat this for 3 preferences browser.warnOnQuit, the browser.warnOnRestart and the browser.showQuitWarning

    If you always open the last set of tabs, another approach is the following:

    1. Click on the orange button Firefox, then select options to open the options window
    2. Go to the general Panel
    3. Change the setting "When Firefox starts" to "show my windows and tabs from last time '.
  • How to make the button to set the properties of auto-scale one of the Axes on the graphical indicator so I can turn on or off when I press on it. In the Labview web UI designer

    How to make the button to set the properties of auto-scale one of the Axes on the graphical indicator so I can turn on or off when I press on it.

    I need to change the adjustment vaguely Autoscale property for my graphic indicator. Can someone help me please.

    Thank you!

    Hello

    I have confirmed that there is currently no way programmatically enable/disable autoscaling for axes on the LabVIEW graphical indicator generator of the user Web interface. We noted this to possibly be implemented in the future; Sorry for the inconvenience.

Maybe you are looking for

  • Options of the browser for my MacBook Pro?

    For web browsers on my MacBook Pro, currently I use Safari, FireFox and Chrome. One of the reasons why I have ask this question is that I set up my small business online at Shopify and Etsy. And try to find the safest way using web browsers on my MBP

  • Firefox can't find the file at jar:file:///Applications/Firefox.app/Contents/MacOS/omni.jar!/browserconfig.properties.

    Since arriving to a new computer (iMac G5 10.6.8) and data transfer, Firefox did not work - I've repeatedly uninstalled and reinstalled - now Version 8 (is that the right version for my operating system perhaps). I got a week ago, but when I went to

  • browsersupport - install .exe

    I would like to know how I could go about the removal of the ' browsersupport - install .exe "request permission to open that displays at startup.  I am pleased that the UAC prevents run and install what may be a virus, Trojan, spyware and malware.  

  • Get the error when sending e-mail - windows Mail

    The message could not be sent. The authentication setting are may not be wrong for your e-mail [SMTP] Server outgoing. To resolve this issue, go to help, search for "Troubleshoot Windows Mail" and read the section "I have problems sending e-mail". If

  • DeskJet 3050 j610a all-in-One error code 620060E0?

    We have a Deskjet 3050 j610a (all-in-One printer), which has recently started to display error code 620060E0. This happens when a wireless print job is sent to the DJ3050 by a Windows laptop or a Kindle. The problem seems to disappear briefly wheneve