Place markers on waveform graph

I'm trying to place an obvious marker on a waveform graph programatically. I have a single line continous input, and I need to put a line on the graph each time a certain condition is met.
A thin vertical line would be best, but i can't seem to alter the cursor appearance. Also, I don't know how to dynamically create multiple cursors.

See attached:
Paul
Paul Falkenstein
Coleman Technologies Inc.
CLA, CPI, AIA-Vision
Labview 4.0- 2013, RT, Vision, FPGA
Attachments:
MarkPlot.vi ‏40 KB

Similar Messages

  • Change the x axis scale markers in a waveform graph

    Hello all,
    I am looking at an unusual graphing problem that hopefully has been solved.  The problem is because an pre-existing DAQ graph does things in a chart-like manner.
    The application context is that I measure a signal vs. test length.  During the test, I calculate the UUT position as a function of the test length.  The test includes measurements out and back.  Rather than graph signal vs. length; I want to graph signal vs. position.  I have considered the XY graph, but that co-locates the position data.  To remain consistent with an existing test program, I want to change the X Axis marker labels from distance to position at each marker's distance.
    I would like to customize marker text for a waveform graph's X Axis.  I found a sub-property node for marker text, but it does not seem to iterate through a Waveform graph's X Axis markers.
    For example, a test measures the distance 0 to 200 and the X Axis markers are labeled {0, 50, 100, 150, 200}.  How do I change those labels to {0, 50, 100, 50, 0}?
    The Marker Values[] property node does not do what I expected.
    Thanks,
    Kenneth
    Possible solutions:
    1. Find a property node that does the job
    2. Use custom indicators for each marker's labels
    3. Use two graphs, one for forward, the other for reverse testing
    4. XControls

    For your option #4 I would use option #2 but use a single picture and hide the X-Axis and do my own.
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • How do I Get the value from a mouse click - on a waveform graph?

    If I have made a plot into a Waveform Graph and later want to do a zoom of my data
    (Not zoom into the Waveform Graph, but regenerate the data). How do I read the mouse
    coordinate if I click on the graph window. I know how to put up the horiz and vert
    cursors but don't know how to just read the mouse click. I would really like to
    follow the windows standard that identifys a rectangle by clicking and draging and then
    be able to read the corners of the rectangle. Thanks, Rick
    PS: Using Labview 6i

    I would recommend to 'translate' your graph in a picture and dislay it in a picture control (see picture examples in LV6).
    Once you did it, pictures have an extremely useful property called Mouse that returns the mouse coordinates and click events when you place the cursor on the picture.
    By this you can re-arrange the graph on picture appearance.
    There are also other methods such as using a Window's API that returns the mouse position referred to the whole screen window, but I believe this would be much more difficult to implement.
    Let me know if this was clear and if you need an example vi.
    Good luck,
    Alberto

  • Dispaying a waveform graph with control of the cursor in the document.

    I would like to be able to control the cursor when I save my waveform graph in html. I'm currently saving the graph through the report vi's

    I am not sure I understand your question. Do you want to simply control where the cursor is on the picture you are appending to the html report. If so then when you use the Append Control Image to Report VI it basically takes a snap shot at that moment and displays it. Therefore you just need to place the cursor where you wnat it before you add the image.
    To programttically control the cursor you will need to use property nodes of the Waveform Graph. A good start would be the property cursor>>cursor position>>all elements.

  • Looking up the values in a waveform graph with a mouse click

    Hi,
    Does anyone know how to look up the values in a waveform graph with a mouse
    click but... without the cursor legend on, if i press in the waveform graph
    nothing happens, i must search my cursors and only then i can see the values
    of my signal data?! Isn't there any other way?
    Best regards,
    Thijs Boerée

    Dear Chad,
    I know of the function "bring cursor to center". I also figured out that
    when i use a property node of the cursor array of clusters, that i can see
    that some values change when i move the cursor (i can see the X and Y scale
    value change of the graph and also the values of the mouse pointer (in
    points due to screen resolution)) But in this cluster i can't set the mouse
    position. I allready made a VI where i can see the bounds of my
    waveformgraph and I have the Xscale (min and max) and the Yscale (min and
    max), with a linear fit i can translate my mouse position to X an Y scale
    values and when i click on my waveform graph the cursor go's to that
    position (property node of the cursor position), only disadvantage is that i
    only have the bounds of my plot area and not the position, i do have the
    position of my waveform graph but the plot area isn't allways in the center,
    if i could extract the position of the plot area i may find a solution to
    solve this problem.
    And to file a product question:
    I would like to see the function that with a mouse click a little menu
    appears and that there are options to for example set a marker on that data
    and when you right click on it, that there are options to remove it or to
    add comment, a 2D array could make a list of the different channels with
    it's markers (time stamps and comments).
    Best regards,
    And thank you for your help.
    Thijs Boer�e
    "Chad AE" schreef in bericht
    news:[email protected]...
    > Dear Thijs,
    >
    > Thank you for contacting National Instruments.
    >
    > To address your question, there is no direct VI, command, or property
    > node that will allow the cursor snap-to-mouse functionality.
    >
    > I notice a problem you may be occuring is trying to find where the
    > cursor is on the graph. If this is an issue, you can select Bring to
    > Center from the Formatting Ring on the Cursor Legend to move the
    > cursor to the center of the graph.
    >
    > Let me know if you have any further questions or if this does not
    > resolve your issue, as I would be happy to file a product suggestion
    > so that LabVIEW is improved in future versions.
    >
    > Thanks again and have a great day!
    >
    > Chad AE
    > Applications Engineer - National Instruments

  • Real time waveform graph in while loop

    Hi
    I have a VI which includes a subVI that reads data from an oscilloscope and presents the output in the form of a cluster made up of the initial time t(0), a time interval delta t and an array of voltage readings.
    This cluster can then be wired to a waveform graph in the usual way. All of this is situated within a while loop in my VI and on each iteration of the loop I obtain a waveform graph of the voltage readings starting at the same time t(0) and ending at the same time t. However I want my graph to begin at a time t(0) when I set my VI running and then continuously acquire and build up the data on each iteration of the while loop so after my VI has finished executing I have a complete graph of all the voltage readings acquired after the set number of iterations of the loop. I know on the Express X-Y Graph VI you can double-click the node and deselect the box that says 'clear data on each call' - if I could do this in my case that would be great but I can't use an x-y graph because I have an array of y-values to plot on each iteration.
    If anyone can help me out it would be much appreciated - I'm sure there must be an easy solution to this but I'm going out of my mind trying to find out what it is!
    Many thanks,
    Bex.

    As usual, you have several options.
    You can use an XY Graph by generating the X values yourself. This will ensure that you place the data exactly where you want it on the X axis. This is fast, but does involve a memory cost.
    You can use a Waveform Graph with a waveform input instead of the cluster you are using. Use the Build Waveform primitive instead of the bundler to make your waveform. Set the t0 values to the appropriate values (negatives do work, as do small numbers - time is in seconds, use the To Time Stamp primitive to convert from DBL to timestamp). Finally, you need to set the Waveform Graph to use the t0 values. Pop up on the Waveform Graph and make sure Ignore Time Stamp is not checked. Depending on your version of LabVIEW, you may have to pop up on the graph or the axis. When you unselect Ignore Time Stamp, you will probably want to reformat the X-axis again. The Waveform Graph clears data at each iteration, so you will need to replot all your data each time. Just create an array of waveforms and keep adding to it. The t0s will put the waveforms in the right places. Yes, this may cause memory problems.
    Finally, you can use the Waveform Chart, which does have memory. Create the waveforms like you did for the Waveform Graph and send them to the chart. It will remember what was sent to it from run to run. Make sure you set the Chart History Length (pop up on chart and select Chart History Length...) to long enough to hold your entire data. You can use a property node to get the data back at the end, if you need to.
    Good luck!
    This account is no longer active. Contact ShadesOfGray for current posts and information.

  • Limit control to property of a waveform graph

    I have a waveform graph in which I would like to limit practically all the property of the contextual menu. Such as:
    Visible items, Auto scale X and Y...
    There is a way to do that. By setting "Disabled" to 1.
    My problem: I would still like to let the user change the Y scale by double clicking it.
    Thanks
    Nitrof

    Nitrol,
    Unless I'm mistaken (it happens), the only way to really do this is completely disable all functionality and add the functionality back through your front panel. I would suggest a very easy approach by putting two digital controls (or one array with two elements, or a cluster, or...) which would be the min and max of the Y scale. You can even make it more simple by just adding a Property Node of the graph, selecting the Y scale, and creating a control. That would save you a lot of work. It wouldn't be as neat and tidy, but it would get the job done with the least amount of work.
    If you want to know how to do this exactly as you specified, here goes:
    Place a picture control over the y scale of the graph. Make the picture invisible (the "T"
    color for the frame and the drawing area. Then, with the picture selected, move it to the front. Next, in the diagram, get the mouse down data from the Mouse property in a while loop. Throw the mouse down data into a shift register. Make the loop have a delay (wait) of about 200ms. AND the output of the mouse down button with the previous one. When the output is true (of the AND), stop the loop. You have detected a double click of the Y scale. NOW, you have to add a subVI that pops up (dialog) options for the Y scale. The user will change the scale, and then you can input these into the Y scale of the graphs property node. Yes, its quite complicated, but the results are exactly what you are looking for.
    Of course, I always recommend the KISS principle (Keep It Simple Stupid).
    Good luck

  • How the waveform graph indicator doesn't change its property ?

    I have designed a printcontrol vi which I only want to print the plots in the waveform graph on the front panel.In order to acquire this effect, I use the property to set the plot area background colour to transparency. In the course of running,the property works,
    I mean the waveform graph changes transparent.But I hope it will not change because it will not convient for the user.I don't know how to achieve this goal.Hope to get your help,thanks a lot!
    Attachments:
    11.vi ‏97 KB

    One of your problems is the fact that you reset the panel color only after the event has completed and since it generates the full report, this can take some time.
    The problem will be much less noticeable if you reset the changed properties right after grabbing the image.
    Attached is a quick draft. Modify as needed.
    (Sorry, I don't have 7.1, so I downconverted from 8.0. There could be some conversion errors that should be easy to fix.)
    You should also make sure to place the terminals of the latch action booleans INSIDE their corresponding event case, else it might not reset to false during execution of the event.
    LabVIEW Champion . Do more with less code and in less time .
    Attachments:
    11MOD.vi ‏58 KB

  • Add plots to digital waveform graph programmatically

    Hi Guys,
                This might be an easy one but I can't seem to find the right property. I'm adding "Plot Name" values for a each Plot in a Digital Waveform Graph. I select each plot with "Active Plot" property and name it. However if there are already e.g. 7 plots and I try to set eight plot active (i.e. 7 = Active Plot) I get an error cause this eight plot doesn't exist on the graph, and so can't be named.
        How can I add (or indeed remove) plots using property nodes?
        Thanks

    Hello,
    One thing to consider is the actual data the graph is receiving.  Choosing plot 8 in this case is perhaps attempting to choose a plot which doesn't exist in the data, which could be why you're seeing the error.
    Off the cuff, one thought might be to have the following "steps" take place when you want to add plots:
    on the appropriate action to create a plot, create a default data set representing that plot
    package that with your overall graph data so that the new plot exists in the data
    write that data to the graph, perhaps using the Value Signaling property (via a property node linked to the Graph)
    trap the graph's Value Change event using an event structure (possibly in a parallel loop) and update the plot name there (much like you are today - using a property node to first set the active plot to <previous value + 1> since you just added a plot, and then set your new plot name)
    Not sure what the rest of your application looks like, but hope this helps!
    Best,
    JLS
    Sixclear

  • How to add custom graphical features to cursors in Waveform Graphs

    Hi all:
    I´ve starting a project in LabView, in which I need to synchronise some events with a sound track.
    To do this, I tought that LabView would be the tool of choice, but now that I´m working on it, I
    found my self faced with some serious problems.
    What I want to do, is to represent a .wav sound file in a Waveform graph, and then use the cursors
    to mark some points in the desired places where I want things to happen, but, these events are
    going to be on during some period of time.
    So, it will be natural that some consecutive events might overlap in time, and I need to have
    some control on this.
    The best solution would be to have a rectangular strip attached to the cursors, with a lenght
    representing the exact time duration of the event.
    But this is only possible on my dreams, because I dont see any tools on LabView that aloud us to implement
    any extra graphical features on the cursors.
    But as I learned more about LabView, I found that a user can program blocks of software in C, to implement
    things that LabView does´nt do by default.
    And now I´m wondering if this could be the solution for my problem.
    Is it possible to add new custom features such as the one that I need?
    If yes, how?
    I have atached an image to give a clear ideia of what I need.
    I´ll apretiate any help.
    Thanks
    Attachments:
    LV Custom.jpg ‏40 KB

    No, you can't modify the cursors with either the native or C code. But I'm wondering if you can't get what you want with an XY graph instead of a regular graph. You can have multiple separate plots and some of them can be thick horizontal lines. I've attached a file with just some constants wired to an XY graph to show what I mean. Obviously, you'd have to calculate the values for the x and y arrays in your real situation. If you have to use a regular graph to display the .wav file, you could also overlay a transparent XY Graph on top. The other possiblity is to use a picture control to display your data. There's a couple of shipping examples (i.e. Waveform and XY Plots, XY Multi Plot) that show how data can be represented and Pen Attributes and Sub setting shows how you can draw lines of different widths.
    Attachments:
    Horizontal Bars.vi ‏30 KB

  • Publication Quality Image Files [.TIFFs] of Waveform Graphs or Waveform Charts?

    I'm familiar with the Knowledge Base Article 2PP7CM7Y, How Can I Save a Front Panel Control to a JPEG, PNG, or BMP File?
    My problem is that the resulting pictures are nowhere near publication quality [i.e. the kind of thing you could import into Acrobat for submission to an academic or technical journal]. For instance, I've attached a PNG of an Electrocardiogram [ECG], called "ecg.png", that, in all honesty, doesn't deserve to be posted on a website, much less imported into an Acrobat document. As far as I can tell, I'm using all the high
    est settings [24-bit color, no compression].
    Does Labview have any other utilities for saving to industry standard image formats, especially high-resolution TIFFs? I know the information is there, because when I print the VI's Front Panel to our 600dpi laser print, I get really beautiful, publication quality prints. My suspicion is that whoever wrote the "Invoke Node/Get Image" VI [and/or the various "Graphics Format/Write File" VIs] simply took a snapshot of the graphic card's [VERY low resolution] video buffer, rather than calling the underlying software logic that gets invoked when you print to a 600DPI laser printer. Is there any way I can get access to that underlying software logic?
    Thanks!
    Attachments:
    ecg.png ‏693 KB

    Okay, I installed the HP PostScript drivers, but, as far as I can tell, there is no option to 'Save to File.' [Such an option may be there somewhere, but I looked all over the place, and I couldn't find it...]
    Besides, the idea of saving to PostScript, and then running some program like 'ps2png' or 'ps2tiff' is not very appealing to me, for at least two reasons:
    1) It's very batch-file-ish in nature, i.e. I've got to download some monstrosity like Ghostscript, get it installed, get it configured [no trivial task in and of itself, believe you me], then write some batch-file-ish thingamabob to open the PostScript file and process it - I'd much prefer to [at the very worst] make a call straight to a DLL from within a Labview VI. But that's o
    nly the start of my woes; once I've got a PostScript file, I've got to figure out some way to cut just the picture of the Waveform Graph from the larger picture of the VI window - I suppose I could use some sort of a Clipping Path or an Encapsulated PostScript Bounding Box, but at this point we've clearly crossed over into the realm of what I would call 'hideously ugly, grotesquely inelegant, batch-file-ish hack.' Plus, my gut instinct is that it would take a bare minimum of a week or more to get such a thing up and running efficiently, when, if I could make a call straight to the Labview printing infrastructure, I could do it in just a few minutes.
    2) It's very, very difficult to venture into the realm of PostScript software [especially Ghostscript] and keep your project from becoming contaminated by the GPL, or worse [the Aladdin license agreement ain't exactly a stroll on the beach].

  • XControl Data wiring problem - Data type is Waveform Graph (Strict)

    Hi,
    I created an Xcontrol for a waveform graph. The datatype (under Data 1.ctl) is a WaveformGraph reference type.
    When I wire a Waveform graph reference to the Xcontrol (as an indicator), there is a wire conflict.
    I checked the strict definition and the reference types are theoretically congruent but I cannot seem to wire it together. Any solutions?
    Please see the attached code.
    Thanks!
    Attachments:
    GraphDisplay XControl.7z ‏1717 KB
    Tester.vi ‏15 KB

    It looks like the XControl data is a waveform reference (strict). I can't open the XControl though, because I don't have a 7z compiler, but the problem is probably that the refnum will only take in a reference to an exact waveform graph because it's strict.
    You can create a non-strict reference and use that for your data by:
    Open your data control FP
    Press Ctrl-Space
    Type "Control Refnum"
    Press Enter and place that on front panel
    Right click it and brows to the correct data type:
    James
    LabVIEW Professional 2014

  • Display multiple Waveform-Graphs on a separate Frontpanel

    Hi there,
    I'm looking for a solution to display multiple waveform-graphs on a separate frontpanel.
    In my application I measure a number of channels (number is a user-input). The signals I want to display each in a separate waveform-graph, because they have different scales. They shall be arranged that way, that the user can switch them on and off or arranges them on the screen, while the application is running (measuring). He shall also be able to maximize all graphs or a graph window to have a closer look at the signals.
    I already tried several things.
    1. I placed the maximum number of graphs in a separate vi, which I start in my application and then switch the frontpanel on and off via a property-node. The values I also write via the references of the waveform-array, which I place in an array. This way I can also change the propertys of each plot (scale, xmin xmax, etc), but I always have all graphs on the screen (also the unused).
    2. I then tried to change the visible-property of the unused graphs, but I cannot scale and rearrange the remaining graphs to the full frontpanel-size, because this property is read-only.
    3. I placed just one waveform-graph in the vi and then start as many vis, as I need. This is cool, because I also can program the position and size of each frontpanel, so that they are arranged in a grid on the display, but all the graphs are separate and it is uncomfortable if the user had to arrange them separate. The windows need to be docked ore something like that.
    4. I tried to place the graph-vis in subpanels, but then I cannot change the position and size of the vis programmatically.
    Has anyone an idea, how to solve this?
    I am using LabView2009Sp1 Professional Development System
    Thanks Norman

    Thanks so far,
    I attached some examples of what I tried already.
    1. MaximumNumberOf Graphs - I show 6 graphs although only two are needed. I cannot rescale the used ones to the full screen size, because the property is read-only
    2. RescaledFrontpanel - I switch the unused graphs to invisible, resize the frontpanel to hide the unused graphs, but now the window is not zoomable
    3. GridOfWindows displays the desired grid of graphs in separate windows, but they don't stick together
    I hope this explains the situation better.
    Norman
    Attachments:
    multigraph.llb ‏136 KB

  • Waveform graph plot legend in labview 8.5 won't respond to arrow keys?

    I heard labview 8.5 fixes most of the problems that plague 8.2, so I recently installed it to try it out and see if it is worth the effort of another upgrade.  Messing around today, I found an issue that wasn't related to the installer itself.
    The plot legend on a waveform graph doesn't appear to respond to arrow keys for precise placement.  It doesn't matter whether auto-size plot legend is turned on or off.  When I want to place a plot legend very precisely, just like with any other labview control I like to use the arrow keys to get things perfectly aligned.  I want to make the plot legend perfectly in the corner of the graph but its very hard to get it placed right with just the mouse.  In labview 8.5 it seems like plot legends no longer respond to arrow keys.
    Can anyone confirm this or know of a way to precisely place the plot legend in labview 8.5?
    -Devin
    I got 99 problems but 8.6 ain't one.

    Ben,
    I checked the snap to grid hypothesis. Even when activated the arrow keys still allow an accurate positionning of the objects at pixel level.
    That's so nice that I changed my setup. I now have a reasonnably large spaced grid (50 pixels) with an invisible grid (contrast adjusted to zero). That should make object positionning and dimensionning much faster than before.
    Chilly Charly    (aka CC)
             E-List Master - Kudos glutton - Press the yellow button on the left...        

  • Is it best to set waveform graph scale properties before or after sending new data to the graph?

    Hi I'm wondering when is the best time to update waveform graph scale properties.
    I am sampling data every 15 minutes for 192 samples, i.e. 48 hours.  I want to plot these samples with the x scale in absolute time mode so that x scale maximum is the current time and x scale minimum is x max minus 48 hours (172800 seconds).  I also want the intermediate scale markers to be 6 hours apart and to be multiples of whole 6 hours.  e.g. at 06:00, 12:00, 18:00.  This works OK using property nodes but sometimes the intermediate markers are on the 6 hour multiples and sometimes they are at 6 hours after the min scale marker.  e.g. 09:15, 15:15, 21:15.  Is there a way of guaranteeing that the intermediate markers will be on the 6 hour multiples?
    Thanks,
    Neville
    Solved!
    Go to Solution.

    Hi Bryan,
    Thanks for your reply.  I have discovered that I can achieve what I want by using an XY graph instead of a waveform graph.  I want X max to be the current time and X min the be 48 hours earlier with intermediate scale markers on multiple of 6 hours.  The XY graph in the attached VI does exactly that but I can't get the waveform graph to behave as I would like.  Is there a way of getting the waveform graph to behave as I would like?
    Thanks,
    Neville
    Attachments:
    waveform graph x axis scale.vi ‏16 KB

Maybe you are looking for