Show continuously accumulating waveform chart

I read around 1000 points per iteration that I would like to show on a waveform chart. If I just connect a numeric array to the Waveform Chart, it shows a smooth sin wave and it looks like it is just appending new data to the old one (kind of like a queue).
However, if I use a waveform, it overwrites the previous data with the new one. I want to see 2 seconds of data at any given time, so just showing 1000 points on a corner does not help.
I have tried appending to a waveform using shift register and it does show the result I want, but overtime the size of the waveform gets very large and it slows down the system. I could implement some size-checking and stuff, but is there
an easier way to make the waveform input behave a numeric array input?
I need to use waveforms because I want to stack multiple plots an it gives an "Out of memory" array if I use a 2D array.
Solved!
Go to Solution.

There is no way to add cursors to a chart. You will have to use a graph. If you need the ability to plot a point as it is acquired, you can use a shift register with a build array. Since this could lead to performance issues if the array grows with no bounds, you might want to incorporate a buffer like the chart does. There's an example called XY Chart that uses one.
p.s. NOT a good idea to post your email in a public forum. All you will get is spam. All questions are answered here and not by email.
Message Edited by Dennis Knutson on 02-24-2010 09:12 PM

Similar Messages

  • Converting data from frequency to mass but nothing shows up on waveform chart

    I am trying to convert frequency data from labview to mass in ng. I have a conversion formula. I used the conversion formula and wired the output data to a waveform chart.
    So, I think I did everything correct when trying to convert frequency values from the QCM to mass values in ng%2Fcm^2. What I did was convert the frequency data into mass data as a function of time by calculating delta frequency and multiplying by the appropriate scalar. I approximated the area of the quartz crystal to be 1 cm^2. I wired the data to a waveform chart (called mass (ng%2Fcm^2) as shown in the block diagram I attached. The problem is that when I run the vi nothing shows up on the mass waveform chart I just created. I played around with changing the scales but absolutely no data is recorded when the vi runs. I don't know why that is the case. 
    Thanks.  -Sicelo
    Attachments:
    block diagram.png ‏55 KB

    Hi guys.
    Thank you so much for your help. I succeeded in converting the frequency data to mass. I posted a new question about a new problem I am encountering. My vi does not run when I run it even after everything is properly connected. 
    My new message is posted under "vi does not sense signal from instrument"
    Any help will be highly appreciated.
    Thanks.
    -Sicelo

  • Combining 2 readings into a waveform chart/graph displaying continuous readings of data from different sources

    Hi,
    In the file
    (Serial Read and Write to .tdms & Compare on Graph – test.vi) I am trying
    to integrate the following two waveforms into a single waveform: Realtime
    reading and Waveform chart (open vi to see). Both of them display speed vs time
    but from different outputs. One comes from an excel file (Teraterm – Results.xlsx
    – sheet 4, (column 3:row 4) to (column 3:row 1878)) and the other comes from
    the Serial input which is in Hex format and is split to get the various readings
    of speed, voltage etc. I have already wired speed to a variety of waveform
    outputs, but all result in broken wires.
    The readings are taken in by the program
    and but I am unable to wire the two readings together into one graph. 
    Please do let me know as to how can I make this work.
    Thanks in Advance.
    Best Regards,
    Akhil
    Kumar Meesala (Mr.)
    Year
    4 | Undergrad | Mechanical Engineering
    National
    University of Singapore
    Email:
    [email protected]
    Mobile:
    (+65) 9326 7069
    Solved!
    Go to Solution.
    Attachments:
    Serial Read and Write to .tdms & Compare on Graph - test.vi ‏58 KB
    Teraterm - Results.xlsx ‏593 KB

    Dear GerdW,
    I'm sorry again about the misspelling your nick. 
    I tried connecting a waveform chart to the two terminals (speed from the DAQ and speed from the excel file) but I was unable to get the connection right. I understand that charts are used for readings which are equally spaced out, whereas XY graphs are used when the readings are not be spaced out uniformly. But I am unable to wire the connections correctly.
    Actually the DAQ device continuously sends out data through the serial port. So I would not run out of data . Are you referring to the data coming from the DAQ device or the excel file? I actually have not thought of what would happen when the excel file would run out of values I am just hoping for the software to run till then for now
    I have cleared up the wires as well Thanks for your help.
    Best Regards,
    Akhil Kumar Meesala (Mr.)
    Year 4 | Undergrad | Mechanical Engineering
    National University
    of Singapore
    Email: [email protected]
    Mobile: (+65) 9326 7069
    Attachments:
    Get Excel Values.vi ‏25 KB
    read_excel_values.llb ‏201 KB
    Serial Read and Write to .tdms & Compare on Graph - test.vi ‏79 KB

  • How can I show only the function that I desire in waveform chart?

    Hi, I have a Waveform Chart that shows 3 CHart.
    If I go to the Property Node of Waveform Chart I can choose "Plot Visible", but this command give me the possibility to delete only third chart.
    How can I do to put 3 Bolean Controll to choose to see one, two or 3 chart or maybe nothing?
    Thanks,
    Vanny
    Sweet, Beautiful and Young Female Physicist (SBYFP)
    (I speak a not very good english, so If U are Italian LabVIEW expert speak in Italian, if U speak in Eglish... please speak easy )
    My e-mail for personal contact: [email protected]_NO_SPAM_PLEASE

    Something like this would work too.
    Tim
    Johnson Controls
    Holland Michigan
    Attachments:
    Example.vi ‏18 KB

  • How to show two different plots with current system time and date on waveform chart

    I am using  one waveform chart to display the more than one value continiously. The data  are comming properly but i am not getting my system (pc) time and date on x axis. It is showing default date and time (i.e.01/01/1904 5:30:45). Please  give me suggestions to display the real time and date on x axis of waveform chart. 

    How does your data look like? Do you graph waveform data types, dynamic data, or plain arrays/clustes? In the case of plain arrays, you need to set x0 to the absolute start time of your data, e.g. with a property node.
    I you would attach your code (or an image) we could offer more specific advice. There are too many possibilities.
    LabVIEW Champion . Do more with less code and in less time .

  • Waveform Chart only shows one channel or combines both channels?

    Hi,
    I have 2 analog input channels and data was obtained by sampling at 500Hz and saved into a text file.
    Can any one take a look at my VI and tell me why I am either only getting one curve plotted in the Waveform Chart or it's simply a combination of both of my inputs?
    Thanks.
    hellolv
    Attachments:
    FILE_3.vi ‏48 KB

    Hey hellolv!
    The issue you are seeing is actually a pretty common one.  For a chart to update two plots the input to that chart must be a 2D array.  Basically this means that all you need to do is insert a Build Array function right before the chart.  I coded a quick example that does this for two random numbers in a while loop. 
    If you have questions I might suggest that you implement this in LabVIEW.  You could also check the Context Help (Ctrl+H) and the Charts.VI in the Example Finder (Help » Find Examples).
    Hope this helps!
    Andy F.
    Message Edited by Andy F. on 05-01-2006 12:15 PM
    Message Edited by Andy F. on 05-01-2006 12:15 PM
    National Instruments
    Attachments:
    2DPlotWaveformChart.Png ‏5 KB

  • How to set waveform chart to start data since beginning of run

    Solved!
    Go to Solution.
    Attachments:
    TCs.vi ‏106 KB

    You need to check the update mode of your chart.
    Strip Chart—Shows running data continuously scrolling from left to right across the chart with old data on the left and new data on the right. A strip chart is similar to a paper tape strip chart recorder. Strip Chart is the default update mode.
    Scope Chart—Shows one item of data, such as a pulse or wave, scrolling partway across the chart from left to right. For each new value, the chart plots the value to the right of the last value. When the plot reaches the right border of the plotting area, LabVIEW erases the plot and begins plotting again from the left border. The retracing display of a scope chart is similar to an oscilloscope.
    Sweep Chart—Works similarly to a scope chart except it shows the old data on the right and the new data on the left separated by a vertical line. LabVIEW does not erase the plot in a sweep chart when the plot reaches the right border of the plotting area. A sweep chart is similar to an EKG display.
    From the help menu:
    The waveform chart maintains a history of data, or buffer, from previous updates. Right-click the chart and select Chart History Length from the shortcut menu to configure the buffer.  The default chart history length for a waveform chart is 1,024 data points. The frequency at which you send data to the chart determines how often the chart redraws.
    Attachments:
    resp2.jpg ‏36 KB

  • Waveform chart slow to read samples AIs when sending AOs

    Hi all,
    I am using labview to sample AI signals and send AO signals sampling at 4k with 400 samples to read... The AOs are triggered using buttons on the frontal (E-stim or M-Stim).. When the E-stim button is pushed it will generate a square-wave signal with the freq and pulse characteristics as selected on frontal panel (default is 1 pulse at 50Hz)... These are pulses are used to control a muscle stimulator... So the idea is to be able to send whatever signal I want and have the stimulator deliver that same stimulus to the muscle (e.g. 10 pulses at 50Hz, or 5 pulses at 100Hz, etc etc).. To check the timing of this, I connected the AO to the "trigger in" on the stimulator and the "trigger out" on the stimulator to an AI channel... The pulses are coming through from the stimulator as expected...
    However, when I send the AO pulses labview seems to "freeze" or "suspend" until all output pulses are sent... This is very apparent with a high number of pulses (e.g. 10 pulses at 50Hz)... That is, the waveform chart freezes/stops scrolling until all AO signals are sent, then the chart updates all the pulses in one hit and continuous displaying data; rathe than have each pulse displayed individually...Why concern is that AI during the AO phase may be losted ot not sampled properly...
    Can anyone provide me with an explanation for this behaviour? I am using a LV2010SP1 and a USB-6218 BNC multifuction DAQ.
    Thanks!
    Jack
    Attachments:
    TMS2.vi ‏304 KB
    TMS2.vi ‏304 KB

    Hello Jack, 
    Reviewed the code.
    Remember The way labview executes code, Labview executes code by flow of information meaning that it is going to wait untill the neccesary items are ready before executing the next part of the code.
    For example If we want to make a simple add function for "x" and "y" labview is going to wait untill both inputs are ready for operation before operating and outputing  "z" as a result.
    It does it the same way everytime. I took the time and rearranged the code so we can understand it better, The execution happens from left to right, from top to bottom.
    If we refer to the image, the arrows show us the flow of information of the VI, The DAQ assitant, the filtering of the signal and the Triggering is done before you actually output data through device1 analog output.
    The code is expected to work that way cause it waits untill done acquiring with the DAQ asistant to start generating an output.
    I can think of different options,
    -You can modify this VI so that the output takes place regardless of the input data
    -Having two different vis where you can set the read and write at different rates, using a functional global variable.
    -Using a producer/consumer architecture.
    This is an example that I think might be useful.
    Using Producer/Consumer Architecture for DAQmx Read and Write to File
    Hope this was helpful,
    Luis Martinez.
    Applications Engineer.
    National Instruments.
    Attachments:
    Flow.JPG ‏146 KB

  • Why does AI Read(Async​hronous).v​i cause the waveform chart to not display any history ?

    I trying to create a strip chart for 16 channels that will require displaying 10-20 minutes of data.It also starts a separate vi to set gains and offsets while displaying the data. Using AI Read.vi uses 100% of the CPU so the second vi does not run. But using AI Read (async).vi allows the second vi to run, but causes the waveform chart to not display the history? I'm using LabView version 6.0.2.

    Hi Waynes World,
    I have a couple of questions that may help us solve this issue...
    1) If you are modifying one of our example programs, which one did you start with?
    2) What kind of analog input are you doing? Buffered? Finite or continuous?
    3) Have you tried increasing the buffer size of the strip chart? This will allow the chart to store more data in it.
    4) When you use the Async VI, and when you are using the other, can you describe how the strip chart is showing the data... does the data in the chart keep growing and growing... or does it clear itself and start over when the pine reaches the end?
    I think this issue is rooted in how the buffer is being used with the two different AI Reads and how it returns data to the chart.
    On a side note, have you considered upgrading to a newer version of LabVIEW? Our latest versions of LabVIEW come with many new features and it is signifigantly easier to use.

  • Display Data on waveform chart or XY graph over a long period of time

    Display Data on waveform chart or XY graph over a long period of time
    Can anyone help?
    I am acquiring data from an Ni DAQ card with the following parameters - sample rate = 12800, number of samples = 4096. I want to extract order information so as to track changes in the amplitudes of certain frequency harmonics. So I use the sound and vibration toolkit to extract this information as shown in the attached Vi.  I will like to plot the resulting amplitudes against real-time starting at the time the Vi was run.  I really want the display to show these changes over long periods (eg. days, months and even years).
    Problem.
    I have tried to plot the Y component of the resulting magnitude for a given order on a waveform chart. My choice of the waveform chart is because I also want to display  alarm limits (using the mask and limit vi) (I can't have these lines displayed on an XY graph plot).  I tried adjusting the scale offset using the property node and setting the offset to current time. However, the display on the X-axis can only show a span of  2 minutes as will be seen when you run the attached vi. I want the time display on the x-axis to be over a period of  days, months  and even years.  Is there a way to set the maximum scale on the x-axis to be say a year or so in future.
    I really want the display to be like the one in in the second attachment.
    Attached is a sample VI created using an Ni USB 9234 DAQ card. Any card will do but I am only getting the signal from one channel for this example
    I will appreciate any help that can be given to me.
    Thanks
    Attachments:
    Real-Time Graph Display.vi ‏170 KB
    Sampe screen1.doc ‏37 KB

    Long term testing can be tricky- and we'l get into that later.  Lets start with the basics that you have wrong.
    The vi as you have constructed it has only one memory element, the chart history length (default is 1024.)
    You can change the number of points the Chart will remember by Right-clicking the chart an select Chart History Length from the menu.
    But for a long term test - and one where you want to REMEMBER the first value you need a memeory element that is independant of the application.  Your PC WILL loose power or need to be rebooted eventually.  Heck it might even need to be replaced! you really need to store your data in a file. Preferablly in a file that is backed-up on a regular basis so you don't lose every point of data if the PC dies.  It realy hurts when you have to restart a 2yr test because you've lost the 18months of data you collected.
    For an application like this I would seperate my "collection" and "Evaluation" operations. 
    Have one vi that takes the reading and writes it to a file at a configurable rate  You may want 1reading  per minute for seveal days then 1 per hour for a few weeks- then maybe only once or twice a week for the next couple of years since you are looking for LONG TERM stability.  having too much data to evaluate can take a lot of digging to find the few things that interest you (but always take more that you think you need)
    Have another utility that COPIES the files, reads them and displays the data you are interested in that day.  The data you want to look at won't change over time HOWEVER, you WILL want to analize it in different ways depending on what the data trends look like.  Having seperate routines for collection and display allows you to update the display style and analisys without even stopping the collection vi (much less editing the vi)
    Jeff

  • How can I change the color of plot in a waveform chart and graph?

    There are 4 plots in a waveform chart, from plot0 to plot3, and I want to chang the color of plots dynamicly up to my needs when the VI is running.
    For example, as show in the picture, i want to set the plot0 as RED, and plot1 is BLUE, plot2 is YELLOW, plot3 is GRAY.
    If there is only one plot, i can change it's color, however when there are more than one plot, it fail.
    How can I do it?
    Thanks
    Attachments:
    waveform.JPG ‏61 KB

    Hello MilkyStone,
    first you have to set the active plot, then change its color (or other properties). All that is done using property nodes.
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome

  • Using waveform chart to collect data

    Hello,
    I am a new user to labview, however I have been using it for a while now.
    I have a simple problem.
    My model runs a drive cycle for 1400 secs.
    I want to record data for a sample rate of 1 sec.
    However, When I try to run the model and export it to excel it shows data for a sample rate of 0.1 seconds. How can I change that?
    Also, what can be the maximum buffer size of the waveform chart?

    Hey govindgoal,
    The max buffer size is pretty massive so don't worry about that. I would post your code or at least the part which is recording the data for people to help debug. It would seem however that you have some timing issues with your application.
    Regards
    Andy
    "To 'G' and not to 'C', this is not a question!"

  • How to pass waveform chart in a loop in a sub vi to calling vi

    It has been awhile since I made my last application.  It has escaped me how to run a VI with a loop in it as a sub VI and still pass the waveform chart up to the calling VI.  I am trying to use the Bridge Continuous example as a sub VI and pass that waveform chart up to the calling VI that selects which load cells to monitor.  But when i run the calling VI it stops at the sub VI with a green arrow.

    Your acquisition needs to run in parallel with your main loop.  You should also use a queue or notifier to send that parallel process commands (like to stop).  I would use a User Event to send the data from your aquisition to your main loop's event structure.  You can then update the chart inside of the event structure.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Cursor legend for waveform chart

    Greetings again. Is there a method to turn on the cursor legend in a waveform chart (like in the waveform graphs)? I'd like to allow a user of my application to be able to select a portion of a chart and have the application report the value plotted.
    I am acquiring data via the Analog In channels of a PCI-6036e at 1500 Hz to plot in real-time. I tried plotting my data with the waveform graph but it only shows the latest readings and does not scroll the data. I know I could build an array and rotate through it as the data comes in but that seems like a lot more effort just to be able to use the cursor controls to highlight data.
    Any ideas? Am I being too brief?
    Thanks-
    -dennis.

    Cursors are only avalaible on graphs, not charts. There was a post on this subject yesterday...
    See http://forums.ni.com/ni/board/message?board.id=170​&message.id=102968&jump=true
    CC
    Chilly Charly    (aka CC)
             E-List Master - Kudos glutton - Press the yellow button on the left...        

  • My waveform chart is suppose to be with respect to time but I've noticed it is plotted with respect to the number of times through my VI

    I was under the assumption that waveform charts in LabVIEW 6i atomaticly displayed wired data with respect to time in seconds. However, I noticed that my chart plots data with respect to the number of data points my VI has generated. Is there anyway to fix this so that the chart actually plots vs. time. I've attached VI. The CIN is to a Computerboards Inc, thermocouple. Any help would be appreciated.
    Attachments:
    tepTInScan.VI ‏73 KB

    It appears that the chart is set to display relative time but since you don't have the acquisition in any kind of a loop, your relative time is pretty meaningless. You've got the dX of the chart set to be one, so yeah, at the beginning, the x scale numbers are going to be the same as the number of aquisitions until you've run it more than 60 times. At this point, you'll see the x scale show minutes and seconds. If you want absolute time for the x scale, look at the examples Real-Time Chart.vi or Variable-Time Chart XY.vi.

Maybe you are looking for