Plotting elements from an array in waveform chart

Hi all,
         I am trying to plot a real time data by extracting single element from an array.
Problem is that, at some frequencies waveform chart plot perfect while at other frequencies it plots like a undersampled signals.
Any suggestions?
Attachments:
wfm.png ‏136 KB
wfm.vi ‏133 KB

The timing information comes from the data acquisition process, not the display. You should be able to get equally good display of timing information on a chart or a graph.
How many samples do you read at a time? How do you define "realtime"? Anything plotted on a graph or chart for the use of a human operator does not need to be updated more than about 10 times per second because the eye/mind system works at about that time scale. For humans a real time grahical update rate of 2 to 10 Hz is adequate. Then you will have 256 to ~51 new samples at each update.
Another issue is that both your graph and your plot have plot areas which are less than 200 pixels wide. If you supply more than [plot width] pixels to a graph or chart, LabVIEW will reduce the data to determine which pixels to plot. So your graph with 1000 X-axis values has that reduced to the 184 pixels across the width of the graph. So, regardless of the precision of the data, the "precision" of the display is limited to the number of pixels.
Lynn

Similar Messages

  • How to create an array in one field and have another field display certain elements from that array?

    I am making a form in Acrobat XI pro.
    In one text field, I created an array of several elements. I want other text fields to display certain elements from that array. For instance, one field should display the 3rd element, another field should display the 13th element, etc.
    The Javascript for making the array is very long, and so I don't want to have to re-calculate the array every single time (in order to reduce rendering time when I open the form on an iPad). This is why I'd like to only have to create the array once, and simply refer to it throughout the form.

    What code are you using to update the array currently? Are you completely rebuiding it when an element changes, or just changing specific elements for certain fields? I'm still not sure what exactly you are trying to do, but something like this in a document level script will create your array:
    var myArray;
    // Call 'updateArray' to initialize array
    updateArray();
    function updateArray() {
         // Code here to create/update array
         myArray = new Array();
         myArray[0] = "Value 1";
         myArray[1] = "Value 2";
         myArray[2] = "Value 3";
    Then, for each field that needs to update this array, you can add a call to 'updateArray()' in the appropriate event. This will rebuild the array completely; if you just want to update specific elements, then you can access them directly.

  • Is there a way to remove elements from an array 1 by 1?

    I have an two arrays, and they vary in size depending on a parameter set by the user (both arrays are the same size though, they both can vary in length). What I need to do, is remove elements one by one from the array, and use these as indices for another array. Basically, I built two arrays to store x-values on a graph. At the first value on the first array, I want y values on the graph to move from 0 to Y (any value). Then on the first value on the second array, I want the y values to move back from Y to 0 (creating a pulse, essentially, from the first value on the first array and the first value on the second array). By having each x value act as an indice for the y array, I belive I can acc
    omplish this (ie, y =0 up to indice 90, then y = 5, then at indice 100, y goes back to equaling 0). I know this is poorly phrased, but it's difficult to explain. If anyone could help me out, I'd really appreciate it.

    jdaltonnal,
    Note: to add an attachment based on your comment of 6/12/01 to my earlier reply, I had to go back to this 'answer' mode, which gives me the option of adding attachments.
    Per your comment, you have a sequence, so I've added a simple sequence structure and the 2nd array to provide a 250ms delay between each array output. Let me know...Doug
    Attachments:
    arrayindexplus1withseqdelays.vi ‏27 KB

  • Extract plot names from waveform

    Hello
    Is it possible to extract plot names from an array of waveform to a new array that contains all the plot names.
    Regards,
    Solved!
    Go to Solution.

    If you are using Waveform data types to update your plot then you can iterate through all channels and pull out the name attribute or,
    You can use a For loop that uses the iteraction terminal to drive the "Active Plot" property of the indicator and then pull the name using a second (preferably an expanded property node) and let the names pile up in an auto-indexing output tunnel.
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • How to take the print out of the entire data from the waveform chart

    i am using cont acq to spreadsheet file.vi to acquire data from a number of channels. this vi also plots the acquired data on the waveform chart. i want to take the print out of the entire data. how can i do it ?
    also how can i take print out of the data between given interval??
    please reply me
    thank you

    There are a number of different ways of achieving your goal. Depending on which version of LabVIEW you have and which development environment, the Report Generation Toolkit is a very powerful tool. Attached is an example that prints the acquired data without the use of additional toolkits.
    Jonathan Hildyard
    Applications Engineer
    National Instruments
    Attachments:
    DAQ_with_Print.llb ‏115 KB

  • Problems selecting elements from arrays

    I'm having difficulty selecting indexed elements from a array of nodes. I have seen this issues discussed in a number of threads but none address the specific issue which I have encountered.
    Previously in version 10.1.2 I constructed a XPath query and then used the BPEL getVariableData function to obtain the element I was after but this doesn't appear to be supported the same way in 10.1.3.1.
    I'm using the following expression
    bpws:getVariableData('VariableDBResult',bpws:getVariableData('xpath'))
    and when I try to compile I get the following error
    Error(243):
    [Error ORABPEL-10085]: invalid argument
    [Description]: in line 243 of "C:\....", the second argument "bpws:getVariableData("xpath")" for getVariableData is not a literal expression.
    [Potential fix]: Please correct the second argument, you might need to escape using single quote or " to make it literal.
    I used the same code in 10.1.2 and it compiled fine.
    For reference the XPath is formed as follows
    concat('/ns3:Result/ns3:t/ns3:c/ns3:e[',bpws:getVariableData('loop'),']')
    But the error occurs at compile time not run time so I suspect the way the xpath is formed would not affect the compile
    I'm suspecting the problem has something to do with the fact that I'm using the function without the optional "pat name" the variable "VariableDBResult" is defined by a schema not a WSDL message type. I have compiled the Array sample 112 which used a part name and it works but in my case without the part name it fails.
    I attempted to cast the expression to a string and use a string variable, all to no avail.
    Any help or suggestions will be greatly appreciated.
    Regards
    Graeme

    Has anybody got around this issue...I searched the forums but allI could get it unresolved threads pointing to this problem
    getVariableData is not a literal expression
    Re: getVariableData is not a literal expression
    Literal function error
    Literal function error
    I want to mention that its a compile time issue and I am using Jdev 10.1.3.4

  • Multiple waveform chart automatic plot

    Hello
    I need to plot multiple signals in the same waveform chart. The problem is that the number of signals is not constant. I have a control that enables me to change the number of signals to plot each time I run my VI. Is there any way to do it?
    Thanks in advance.
    João

    Hello,
    I don't see many other way to do this...
    You could also manualy  enable or disable charts but i don't see a way to do this in a synamic way...
    Regards
    Richard Keromen
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    >> Découvrez, en vidéo, les innovations technologiques réalisées en éco-conception

  • Deleting elements from Arrays.

    Hello,
    I have to be able in this latest exercise to delete an element from an Array. I was wondering if you could give me code examples on how to do this. I am pretty sure that you have to read through the array and return "null" when you hit the element that you want to delete in the array.
    Thank you.

    Look through the forum. There are at least two other threads open with people asking the same question.

  • How do I remove NaN values from an array?

    I'm trying to test if the values in an array are less than 0.001. All of them are...BUT the problem is that some of the elements in the array are NaN. I'd like to do one of two things:
    1. Remove the NaN elements from the array and set them to zero to make the test work.
    2. Make the test understand that NaN elements are okay.
    The test results in a boolean array of T/F values. If all of the values of the boolean array are T, it will result in a single boolean value of T. In #2, I am saying that I want it to test if an element of the array is less than 0.001 OR equal to NAN.
    Solved!
    Go to Solution.

    Your statements don't make much sense. It's irrelevant how many NaNs are in the array. A sort will move them all to the bottom. You had said you wanted to find out if all the elements in an array are less than 0.001, and that you've got some NaNs in there. Well, this will do that:
    twolfe13 wrote:
     I did see how to remove NaN once, but couldn't determine a good way to generalize it other than doing a test loop. I thought there might have been a simple function that I overlooked to do this.
    As I noted, there have been several posts in the past about efficient techniques for removing certain elements out of an array. Seek, and ye shall find.
    Joseph Loo wrote:
    Have you look at the coerce function where you can set the lower and upper limit?
    That won't do anything for NaN. Or perhaps I misunderstood what you are suggesting to do?
    Attachments:
    NaN sort.png ‏20 KB
    NaN sort small.png ‏5 KB

  • Summing specified elements in 2D array.

    Hi!
    I have a little problem with summing elements in 2D array… I have signal from 64 sources in the 2D array - 64 colums and (time*sampling) rows. I have to add some deley to every signal (different for each)  and then sum signals from all of the sources. I hope the picture below explains what I have to do:
    What's more - I have a 2D array of delays. By now I'm doing this by creating an 1D array of "0" and then putting in it the 1D signal array at index specified by delay value.
    And it works ok. But... It takes long time... Is there any method to do the summing "at once" for all the delays? Is there sth like "pointer" in array, so I could take elements from the array from specified element?
    Rgds,
    Mordimer 

    One problem with your solution is also that the subset is of variable lenght due to truncation, so the shift register needs to be reallocated whenever the size changes. (Even if you define a lenght for the subset, you run out of elements and the result will be shorter!). You might want to e.g. truncate all to the shortest subset (longest delay) before summing for better inplaceness.
    Why do you have a 2D array of delays? isn't the time spacing of each column constant?
    What is your definition of "takes a long time": microseconds?, minutes?
    Message Edited by altenbach on 12-03-2009 03:20 PM
    LabVIEW Champion . Do more with less code and in less time .

  • Can my 600MHz P-3, 256MB Ram handle a data acquisition of more than 1kHz with waveform chart support?

    please suggest tools for acquiring high speed 8 analog channel data.
    can my 600MHz P-3, 256MB Ram handle a data acquisition of more than 1kHz with waveform chart support?

    Arun,
    I have performed data acquisition on a computer with lower specs than the one you described, at rates greater than 1 kHz. I don't quite understand the "waveform chart support" portion of your question, but if you are asking if it is possible to plot the acquired data on a Waveform Chart in LabVIEW, this should not be a problem.
    If you have more specific questions, let me know.
    -D
    Darren Nattinger, CLA
    LabVIEW Artisan and Nugget Penman

  • Search numbers from an array

    Hai
         Pls help me how to do this,
    My read CAN data is like this
           First frame -10 11 58 05 52 35 F1 52
    Conse. frame 1 -21 04 E8 52 10 E8 56 11
    Conse. frame 2 -22 E4 56 12 E4 62 11 E4
     i want to extract the red coloured numbers from the array.
    Thanks
    sk
    I am using LabVIEW 7.1 & NI PCMCIA CAN card
    Attachments:
    tttttt.vi ‏82 KB

    If instead you want to extract certain data bytes from each message, you should use the 'Index Array' function from the Array palette.
    This will extract individual elements from the array as specified by the connected Index inputs. The image below shows the setup needed to get the elements for your First Frame.
    Ed
    Message Edited by Ed Dickens on 01-18-2007 07:57 AM
    Ed Dickens - Certified LabVIEW Architect - DISTek Integration, Inc. - NI Certified Alliance Partner
    Using the Abort button to stop your VI is like using a tree to stop your car. It works, but there may be consequences.
    Attachments:
    Index Array.gif ‏13 KB

  • Saving array data from a waveform chart

    I am using a CRIO 9004 and a 9237 bridge module to measure some strains from strain gauges. I've got one timed loop that reads the DMA FIFO and puts the arrays of values (16 data points, 4 per channel) into a queue. In the consumer timed  loop a For loop scales the binary data, auto indexes it into arrays, then the arrays are merged into a 2D array for the four channels  displayed on a waveform chart . Everytime the consumer loop runs it indexes 4 data points (per channel) yet the waveform chart plots them in a consecutive manner and doesn't overwrite the previous four. If I convert the arrays to waveform arrays I don't see anything on the waveform chart.
    If I pass the 2D array of data to a array indicator inside or outside the consumer loop I get only 16 data points. I want to save the information that appears on the waveform chart  after the consumer loop but because I'm not using waveform data type I can't use the write waveforms to file vi. The waveform chart history buffer has been set to 195360.
    Idealy we will run the four channels for 120 seconds charting the data and saving the data. The minimum data rate is 1613kS/s (403 per channel) The data can be saved after the loops have finished gathering and processing or while they are running. I noticed when I tried to write to TDMS it slowed the consumer down. Same thing if I use a shift register with the volume of data.
    I suspect I'm not sending data to the chart in the correct manner ( usualy takes two attempts to "clear chart" using shortcut menu).  I'm not too familiar with timed loops /producer consumer loops  and just tried to put something together based on examples.
    I've attached my host vi and front panel screenshot.

    Hope they appear attached this time.
    Attachments:
    Basic DMA (Host).vi ‏444 KB
    screenshot2.jpg ‏113 KB

  • Plot more than one analog value to a waveform chart by reading from Serial Port

    I have 4 LDRs and I want to plot their values to a waveform chart by reading them from the serial port. I have looked around and found an example of a VI plotting one value to a waveform chart (attached below) but I am unsure about how to expand this for 4 different waveforms, mostly because I don't particularly understand the way is being read currently. If someone could either point me in the way of a relevant example or explain/show me a solution, or explain howthe current VI I have works, that would be greatly appreciated.
    Attachments:
    LDRread.vi ‏20 KB

    Since I assume each LDR (whatever that is) has its own serial connection, you will need to read from 4 different serial ports.  From there, just form an array of all the data and write to the chart.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions

  • Waveform Chart NOT allowed inside array of clusters; Dynamic plot stacking?

    The NI Developer Zone has a VI that does something I want - dynamically
    stack plots in a useful way. Unfortunately, I would like those plots
    to actually be Waveform Charts and NOT Waveform Graphs (as the
    documentation specifies but LIES!)
    A little further experimentation shows you that it is seemingly not
    possible to make an array of clusters that contain Waveform Charts!
    Why?
    Alternatively, are there any other ways to smartly show many signals at
    once? I have found multiplots to be frustrating as it is difficult to
    assign the number of plots once you start the VI (hence the existence
    of Dynamic Stack Plots).
    DynamicStackPlots here:
    http://sine.ni.com/apps/utf8/niepd_web_display.display_epd4?p_guid=B123AE0CB938111EE034080020E74861

    If you have LabVIEW 8.0, have a look at the new "Mixed Signal Graph"
    (see e.g.: http://zone.ni.com/devzone/conceptd.nsf/webmain/C6B79FA61959D9D68625706E006F7462 )
    LabVIEW Champion . Do more with less code and in less time .

Maybe you are looking for

  • AR Invoice Conversion

    Hello, I am working on a implementation project. The legacy system is oracle apps 11.5.10 and new is R12. I have to work on AR Invoice conversion where we have to select all the open invoices and convert them over. Can i get a query for all the open

  • Dynamic Tree Creation using JSP, Struts framework

    I urgently require tips/information/code snippet for creating a Dynamic Tree structure. Tree is the hierarchical folder structure that we see in windows operating system. Dynamic tree in the sense that all nodes shall be populated from database & a r

  • Budget check in PM Orders

    Dear Experts, When I am trying to save Maintenance Orders  after including reservations (in PM Module) which are raised against WBS Elements , I am getting an error specifying u201CError occurred during budget check, see cost protocolu201D. Need your

  • Use new hdd to increase space in specific folder?

    Hey guys, I just installed a new 2TB harddrive and I have an old 300GB drive where all my downloaded TV shows go. Now those 300GB are never enough and I want the folder where the 300GB drive is mounted in (~/down) to be bigger. Naturally, the simples

  • Need help bad, screen problem

    heres my problem. i setup arch on my desktop last night (64bit), i installed my nvidia drivers. i have a 21" crt sun monitor, not sure the model number. but i brought it to a friends this morning to update and install kdemod since they have highspeed