Labview array to graph

I am reading data from modbus and have an array of data that I need to graph, deepending on the iteration of a for loop I want to direct the data to the right struture and plot it. 
What plot should I use, x-axis is time in all cases. Should the array be unbundled first or masked instead?
Solved!
Go to Solution.
Attachments:
FPI_2.vi ‏27 KB

Well, some of your charts seems to have multiple traces, thus you need to rearrange the data a little bit. Here's one quick attempt, but please modify as needed.
LabVIEW Champion . Do more with less code and in less time .
Attachments:
ArrayMOD.vi ‏16 KB

Similar Messages

  • How to convert from array to graph ?

    how to convert from array to graph ?

    A graph will accept an array of numbers.  Do you have an example of what you are looking for?
    And since somebody mentioned tutorials...
    3 Hour Introduction
    6 Hour Introduction
    LabVEW Basics
    Self Paced training for students
    Self Paced training beginner to advanced, SSP Required
    LabVIEW Wiki on Training
    Learning NI
    Getting Started with NI Products
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • How do I pass a 1D LabView array as a pointer to an array in a C DLL?

    Hello,
    I am trying to pass a 1D Labview array of DOUBLE to a C DLL which is expecting a pointer to an array of DOUBLE.  I have read that LabView stores arrays as a pointer to a pointer and that the first element of a LabView array is actually the size of the array.  So I think my question is then how do I dereference the first pointer and pass in a pointer which points to the second element in the array?    
    Any thoughts out there?
    Thanks!

    Hi justyou,
    There are many, many resources on this topic, so I will guide you to the two most useful ones:
    The "Call DLL.vi" example that ships with LabVIEW explains how to use almost any data type when executing DLLs. The "Call DLL.vi" can be found by browsing the Example Finder.
    Integrating DLLs. This page is the portal for DLL interation related resources. Read the tutorials and try the examples...
    This should give you some ideas.
    Have fun!
    - Philip Courtois, Thinkbot Solutions

  • Pointer to LabVIEW Array

    LabVIEW memory management question:
    Question Part 1: When I write a C .dll that takes a LabVIEW array,
    LabVIEW passes a pointer into LabVIEW's memory to the array to C. 
    Can C return the pointer to me (e.g., not the array I passed in, but
    it's memory location)?
    i.e.: void GetNativeMemoryPointer(float *pointer, float *array);
    where *array is my input array, and GetNativeMemoryPointer returns the pointer to this array on *pointer.
    Question Part 2: What issues will I run in to if I pass this returned
    pointer to another .dll call.  What if this .dll call is in
    .NET? 
    Concerns: How does LabVIEW hold this array in memory?  When I call
    GetNativeMemoryPointer, does LabVIEW make a copy and send this a
    pointer to the copy to the dll, or is the pointer to the
    original?  Will LabVIEW ever "move" the original, e.g., will my
    pointer become invalid after some time?
    Joe Gerhardstein
    Averna Test Systems
    Certified LabVIEW Architect
    http://www.averna.com

    Part 1: I must confess that I don't understand your question. Pointers and arrays are very closely related in C so I'm not following the sequence. So I don't know if the following applies, but here is a possible answer...
    The pointer to a LV array that is passed to a call library node is valid ONLY during that call. Once the call to the DLL completes, you should consider that pointer value invalid. You can, of course, make a copy of the array and return a pointer to your copy - but LV won't know what it is. It definately won't show up in LV as an array. However, you can pass that pointer to the copy around to other DLLs as much as you want.
    * Don't forget to free the copy. If you make a copy of the array, you own it - therefore you must free the memory of the copy at some point *
    Part 2: Easier to answer.
    * If you want LV to convert your pointer to a LV data type (such as a LV array): Take a look at page 2-4 in the "Using External Code in LabVIEW". In almost all cases we do not support pointers. The only exceptions are the ones shown in the Call Library Node configuration. For arrays, notice that if you want to return an array to LV, we have our own defined data types for this - read up on the CIN section for more information.
    * If you want to return a pointer than LV just messages to other DLLs: No problem. Put the parameter to the routine as a pointer to integer (or a return value of type int). Thus your pointer is an integer as far as LV is concerned. When you pass it to another DLL, we'll pass the exact same value to the DLL - thus the pointer is never modified or the data touched.
    Did this help?
    Message Edited by Lycangeek on 08-10-2005 02:12 PM
    Brian Tyler
    http://detritus.blogs.com/lycangeek

  • How to create and wire an array of graphs

    I have 15 channels of data comming from my AI read VI. First I tried to creat an array of graphs it didnot allow me to do that then I created a cluster of graph and put that in an array. Now I want to wire the graphs with the data comming from AI Read VI how do I do this?

    Hello,
    As seen in the "Acquire N Scans.vi" example program (found by going to Help > Find Examples and using the Search tab and typing in "analog"), you should be able to wire the "waveform data" output of the "AI Read" VI directly to a waveform graph indicator on the block diagram, regardless of the number of channels you are reading. The AI Read VI will auto-configure the output data so that when you read multiple channels, it creates the correct number of multiple plots on your waveform graph.
    Please take a look at the attached screen shot to see how the connection can be made.
    Please give this example a try with your hardware and channel list, and let me know if you have any further questions or concerns. I hope this helps!
    Liz F.
    National Inst
    ruments
    Attachments:
    acquire_n_scans_block_diagram.bmp ‏628 KB

  • If i load 1GB file in labview array, it shows memory full. How tom handle it?

    if i load 1GB file in labview array, it shows memory full. How tom handle it?

    Don't read it all at once.  Just read the parts you need when you need it.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Row or columns of 2d array to graph

    Hello
    I tried to plot the values of a certain row of a 2d array in a xy graph. The x-axis should display the column-indexes and the y-axis the values of the elements of the row. The rowindex can be selectable by the user.
    Can somebody help me?
    Thx
    Using Labview 7.1

    This should Do
    Look at attached pic
    First index out that row>> determine its size>> generate a 1 D array column indices as shown>> bundle these two arrays and plot on graph
    regards
    Dev
    Message Edited by devchander on 09-06-2006 04:31 AM
    Attachments:
    xy_2D.PNG ‏8 KB

  • Labview Intensity Charting/Graphing

    How do you get an array with three columns of data to be 3 individual arrays and then graph them in an intensity graph/chart? I am pulling data from tcp and it is output as a comma separated string and a carraige return to denote an end of variables so the output in the data stream looks like:
    (X,Y,Intensity)
    6,80,9,
    74,14,0,
    51,69,1,
    then i conver it to s spreadsheet style 2D array. I talked to the labview reps and they said I need to use something like Replace Array Subset. To do this. I have included the VI and an image of what my current setup results in. Basically I just want the intensity to be plot at the X and Y coordinate specified in the set. Thanks!
    Attachments:
    TCPGraphing.vi ‏40 KB
    labview.png ‏108 KB

    If I understand correctly, you will want to initialize a 2D array of the correct size for your data filled with zeros.  As the data is read in, use the Replace Array Subset to replace a zero with the new data.  The X and Y coordinates will determine which element of  the 2D array to replace with the associated Z value.  Something like the attached maybe?
    Randall Pursley
    Attachments:
    Replace.png ‏20 KB

  • Output labview array to LED grid using DI/O on Elvis II??

    I have been working on a project. I am attempting to use the DI/O on the ELvis II board to power an 10x6 LED grid similar 
    to the common-row cathode design here
    http://www.appelsiini.net/2011/how-does-led-matrix-work
    I have been attempting to generate block patterns using an array in labview, then somehow convert this array to show the block pattern on the grid. I was planning on using DI/O 0-5 to power the columns and DI/O 6-15 to power the rows. Is such a thing even possible? So far I have created a simple DAQ assistant to control the DI/O on the board and can control values that way. i was just interested in knowing if they can be controlled using a labview program.

    Generate digital pulse from your D I/O to control the relay. With Digital High State, the mechanical arrangement will connect the COMM to "NO" .... and you will get your programmable Ground. (in your case NC is not necessary I hope) 
    The device is not so costly. you can purchase 4-5 number with your pocket money only. And It must be available to your nearby Electronics Shop. Use 1 for each line.
    Attachments:
    Relay.PNG ‏8 KB

  • DateTime String array in Graph

    Greetings.
    I tried to plot DateTime string array VS Numbers array with no success in the XY Graph object.
    I even converted the DateTime string array to DateTime type using the VI called "Convert_String_to_TimeStamp.vi" with also no success as the X (Time) is just very big numbers and a datetime format.
    Please check the attached shot, it will describe the situation clearly.
    Thanks in advance
    Ayman
    Ayman Mohammad Metwally
    Automation Engineer
    Egypt - Cairo
    Solved!
    Go to Solution.
    Attachments:
    Graph.JPG ‏93 KB

    You could read the file line by line and use the scan from sting function to convert to a timestamp.
    Now is the right time to use %^<%Y-%m-%dT%H:%M:%S%3uZ>T
    If you don't hate time zones, you're not a real programmer.
    "You are what you don't automate"
    Inplaceness is synonymous with insidiousness

  • How to optimize the memory for a large labview array?

    I am running LabView on Windows XP with 4 Gb of RAM. The array is 51X256X256 complex numbers, but I want 300x256x256. The program runs out of memory when I use more than 51-53 arrays of 256X256. I do not know how to use the in place element structure to modify the vi below. The unbundled/ bundle structures do not present symmetry. Anyone can help me with this?  Thanks!
    Mariana
    Attachments:
    array3Dc.JPG ‏22 KB
    array3Dc_front.JPG ‏58 KB

    Norbert,
      The full data3Dc array takes about 15.5 MB and the data3Dc comp.vi takes 31 MB. The empty data3Dc comp.vi array takes only 18.2 kB. This array is a variable that modifies at each scanned wavelength. I have a scanning wavelengths software package. For one wavelength I record a hologram followed by the reconstruction of the object field (1x256x256). 3D optical fields are added all together to create a big 3D optical field (Nx256x256). The code data3Dc comp_1.vi is not the only one in the memory. This VI is a subvi for other codes. A few other examples are FFT, IFFT, filtering, phase matching, cross-section, calibration….I did not care about memory optimization until now. So, I want to scan more than 50 wavelengths. By now (N=50) I have to restart the LabView after each scanning, do the reconstruction of the fields, start the LabView again to see the results. I think the problem is caused by this VI that is a subvi for other codes. I already extended the memory to 3GB in boot.ini, but the thing is that I want also a small scanning time. It doesn’t work. Extending the memory to 3GB makes the OS slower than before. My question is how to modify this array (data3Dc) or the VI (data3Dc comp.vi) to access lesser memory. I have tried to attach the full VI but it tells me that it is too big. I attached the empty one.
      Thanks,
    Mariana
    Attachments:
    data3Dc comp.vi ‏19 KB

  • Continous ramp generation in labview using XY graph

    hi...i want to generate a continous ramp signal with XY graph but not by using charts.....because oscilloscope do not support a chart by using DAQ.....so please tell me a solution.

    ankit26290 wrote:
    because oscilloscope do not support a chart by using DAQ
    Here are you referring to a 'software based oscilloscope'...??
    Well I think it should be compatible...!! Can you show, what you've done so far??
    I am not allergic to Kudos, in fact I love Kudos.
     Make your LabVIEW experience more CONVENIENT.

  • LabVIEW 8.0 Graph Scaling

    Hi,
    I generate an array of random numbers displayed on a Waveform graph. If I do the same thing during 100s, i have of course 0 to 100s on the Xscale.
    I'd like to display the valve of the array by range of 10s. First, I display the first ten secs, then the ten next ones and so long.
    I made a sample code. It works but comes a strange effect. Before displaying the right scales, it starts to display first the full array then the splitted one. It makes a visual [flash].
    Does anybody already have the same issue? and know a way to sort it out?
    Attachments:
    Test graph.vi ‏41 KB

    Hi
    Basically because you have "Autoscale X" activated. In addition, you do have not a defined order of execution. You do not know whether the graph is updated first or the scale is modified.
    I edited you vi a little, so that this is corrected.
    Thomas
    Using LV8.0
    Don't be afraid to rate a good answer...
    Attachments:
    Test graph.vi ‏42 KB

  • Labview.ini and graph rescaling

    Hi everyone,
    I'm using Labview 71. and 8.0 on Mac OSX.
    It used to be (under Laview 6) that to disable graph rescaling a one line labview.ini file would do the job.  The one line would be
    EnableAutoScales=False
    See for example
    http://zone.ni.com/devzone/cda/tut/p/id/3815
    This would work if you put the labview.ini file in the same directory as the Labview application.
    Now, with Labviews 7 and 8, its not working anymore, well at least not for me.
    Has the name of the file changed?  (Does its capitalization matter?)  Has it been superceeded by some other mechanism?
    Exactly where should the file be?  (Mine is in bootdrive:Applications:National Instruments:Labview 7.1
    Has the syntax of labview.ini changed?  (Is that single line sufficient?)
    I noticed that the valuable web page discussing INI files, labview.brianrenken.com/ini, is not working right now.
    Thanks in advance,
    Peter H.

    PGH wrote:
    It used to be (under Laview 6) that to disable graph rescaling a one line labview.ini file would do the job.  The one line would be
    EnableAutoScales=False
    Now, with Labviews 7 and 8, its not working anymore, well at least not for me.
    I think that the the global .ini entry EnableAutoScales=False disappeared from use as of LV6.1 when it was replaced with the ability to right-click (or do the Mac equivalent) on individual graphs and toggle Advanced>Auto Adjust Scales.
    =====================================================
    Fading out. " ... J. Arthur Rank on gong."

  • Pointer Manipulation: Wrap Around/Rollover/Rotation of LabVIEW Arrays and Waveforms???

    I know we can't use pointers in LabVIEW, but I was wondering if there's any way we can do wrap-around [or "rollover," or "rotation"] of Array [or Waveform] values without having to make copies of the Array [or Waveform]?
    For instance, suppose I'm reading one second's worth of data into a five second buffer. After the first five seconds, I've got
    1st (1/5)th: 1st second's worth of data
    2nd (1/5)th: 2nd second's worth of data
    3rd (1/5)th: 3rd second's worth of data
    4th (1/5)th: 4th second's worth of data
    5th (1/5)th: 5th second's worth of data
    Now I read the sixth second's worth of data, and overwrite the [original] first second, so that I have
    1st (1/5)th: 6th second's worth of data
    2nd (1/5)th: 2nd second's worth of data
    3rd (1/5)th: 3rd second's worth of data
    4th (1/5)th: 4th second's worth of data
    5th (1/5)th: 5th second's worth of data
    and in C, or C++, I'd just move the pointer up to the second (1/5)th of data, and start from there.
    The LabVIEW Complex FFT is another place where this would be really useful. The Help File for the Complex FFT is in
    Help | VI and Function Reference | Analyze VIs | Signal Processing VIs | Frequency Domain VIs | Complex FFT.
    If you read the Help File, you see that LabVIEW returns an FFT with values in the range
    [0, 2n - 1)
    rather than the standard
    [-n, n - 1)
    i.e. LabVIEW takes the negative frequencies and tacks them on at the end, after the positive frequencies.
    I'd like to be able to view my FFTs with the negative frequencies where they're supposed to be [i.e to the left of zero], and this would be SO easy if I could just move the underlying data pointer of the Waveform forward to the halfway point.
    But, of course, in LabVIEW, I don't have pointers, so I was wondering: Are there any built-in VIs for Array [or Waveform] manipulation that will perform this sort of wrap-around [or "rollover," or "rotation"] of the data? If so, I couldn't find them. Ideally, such a VI would have two inputs: {old Array, new starting point}, and one output: {new Array}. Similarly with Waveforms, only you'd need to manipulate t0 as well.
    Or do I have to copy the entire data set to a new Array [or Waveform] each time I reach the end of the buffer?
    Thanks!

    > Ideally, such a VI would have two inputs: {old Array, new starting point}, and one output: {new Array}.
    Have a look at "rotate 1D array" in the array palette (second row, fourth column).
    (Sorry, I dont use waveform data).
    LabVIEW Champion . Do more with less code and in less time .

Maybe you are looking for

  • EBS 12.0.6 Sale Order Performance Issue.

    We are using EBS 12.0.6 and Database is 10g (10.2.3). We are facing performance issue with "Order management Sale Order Form", When user click on "Line Items" Tab of "Sale Order Form" and In "Main" Tab entring the "Ordered Item" then press tab and en

  • Missing and empty Events after iPhoto 9.4 update - how to restore?

    Hi folks, I updated to iPhoto 9.4 a couple of days ago and now many of my photo 'Events' are missing, and some are now appearing as empty. Can anyone help me get my pictures back (ie restore the library to its pre-9.4 update state) -- when I used Tim

  • Problems managing ipod with itunes

    I can no longer exchange music from my ipod or my music server with itunes.  I used to be able to.  Now itunes just freezes up:  task manager says "not responding" and I have to shut down.

  • Updating a customizing table throw interface

    hello Exprtes, We are facing the next scenario, We have a Legacy system that contains a several master data tables (like Countries, Cities etc), We want to synchronize those tables with our ECC system using automatic interface throw XI, New entries w

  • Calendar (e-mail sync) refreshing error

    Hi, I'm elli and my iCal apparently cannot syncronize. It appears to be an error 404 and that the URL i use to sync with my Gmail isn't corect. So what to do now? I really have no idea.. please help elli