Multiple X axes in DIAdem 9.1

Is it possible to have multiple X-axis scales for a 2-D plot in DIAdem 9.1? 
I have no problem with multiple y axes but I would also like multiple x axes as well.
Thanks,
Tom

Hi Tom,
Multiple X axes are not supported anywhere in DIAdem 2012, so that's a dead stop.  If you want to overlay multiple curves in VIEW that have different X values, you will need to rescale those X values.  If you're plotting waveforms, this is as easy as multi-selecting the set of N channels you want to change in the Data Portal and editing the waveform start offset property, which will make the property value change you entered once to all N channels selected.  If you have N Y channels that share an X channel, then you just need to rescale the one X channel once with the Linear Scaling function in ANALYSIS.
Brad Turpin
DIAdem Product Support Engineer
National Instruments

Similar Messages

  • Creating a report with multiple Y-axes on one graph

    I currently have a script that will create a report with either 1, 2, or 3 graphs and has the ability to have four graphs per plot.  I would like to add functionality to this script by making the Y-axis on the graphs have multiple Y-axes.  How can I programmatically create a graph with multiple Y-axes?

    To create an new axis system use the command GraphObjNew, eg:
    Call GraphObjNew("2D-Axis","2DAxis1")
    Call GraphObjOpen("2DAxis1")        
      D2AxisBackColor = "blue"  
    Call GraphObjClose("2DAxis1") 
    Call PicUpdate
    If you have DIAdem Version 10 you can also create a new y-axis using GraphObjYAxisNew. This command is not available in versions 9.1:
    Call GraphObjOpen("2DAxis1")
    AxisNo = GraphObjYAxisNew("left")
    If AxisNo>0 Then
      Call GraphObjOpen(D2AxisYObj(AxisNo))
      D2AXISYTXT ="My new axis"
      D2AXISYTXTFONT ="Arial"
      D2AXISYTXTCOLOR ="red"
      Call GraphObjClose(D2AxisYObj(AxisNo))
    End If
    Call GraphObjClose("2DAxis1")
    Winfried
    Message Edited by winner on 03-23-2006 03:48 PM

  • How to set property nodes for each of the multiple y-axes?

    In Labview 6i, I have set up multiple y-axes on an xy graph. I want to change certain properties of each of the 2 y-axes independently. I believe I can do this using "property node".
    However, after I have created a property node for the xy graph, I realised that there is only 1 y-axis selectable from the list of properties. How can I set the property of the other y-axis then?
    Thanks for the help!

    I believe there is a property called "active graph"... this allows you to
    select the active graph to apply the property changes to...
    Later...
    meng118230 wrote in message
    news:[email protected]..
    > In Labview 6i, I have set up multiple y-axes on an xy graph. I want to
    > change certain properties of each of the 2 y-axes independently. I
    > believe I can do this using "property node".
    >
    > However, after I have created a property node for the xy graph, I
    > realised that there is only 1 y-axis selectable from the list of
    > properties. How can I set the property of the other y-axis then?
    >
    > Thanks for the help!

  • Multiple y axes overlap

    I have a graph with multiple y axes. I programmatically turn on and off some of the y axes as and when I need them, appropriate to the curves I'm plotting.
    When I created the graph, I placed half the y axes to the left of the plot, and the remainder to the right. However, when I use the yScale.Visible property to show/hide the axes, I get something like this:
    What's happening!? Why are my y-axes overlapped? (please ignore the white box in the plot, that's just me covering up some annotation text)
    Message Edited by Thoric on 07-16-2008 04:05 PM
    Thoric (CLA, CLED, CTD and LabVIEW Champion)
    Attachments:
    multiyaxisgraph.jpg ‏44 KB

    My chart has four axes on the left and four on the right, so you can understand why I want to hide those that aren't used as it gets very busy on there sometimes ! Unfortunately, none can be re-used as there are rare occasions when all eight are needed!
    I've managed to re-create the plot, and also create a hard-coded list defining which side of the plot (left or right) each y-axis is meant to reside. Thus, if LV 'forgets' which side of the plot to draw the y axis, it doesn't matter because I'm now calculating the actual scale position.left property and setting it myself.
    Took a bit of coding up, but seems to work nicely now!
    Thanks for the advice Paul. It's good to know people are out there willing to help!
    (I'd rate your answers but I don't have enough posts to have that privilege yet. sorry)
    Thoric (CLA, CLED, CTD and LabVIEW Champion)

  • Multiple Y Axes Reference

    How do I reference a plot to the second Y axis?
    Using the example Multiple Y Axis....
    I want Plot 2 to reference the seconds Y axis, however, it always references the first Y axis
    void CMultipleYAxisDlg:nGenerateData()
    int i;
    CNiReal64Vector RedData(100);
    CNiReal64Vector MagentaData(100);
    CNiReal64Vector WhiteData(100);
    for (i = 0; i < 100; i++)
    MagentaData[i] = -25;
    WhiteData[i] = 125; // always references 1st Y axis on right side
    RedData[i] = 700;
    m_Graph.GetPlots().Item(1).PlotY(MagentaData,0,1);
    m_Graph.GetPlots().Item(2).PlotY(WhiteData,0,1);
    m_Graph.GetPlots().Item(3).PlotY(RedData,0,1);

    The CNiPlot class has a YAxis property whose type is CNiAxis. You should set this property to the axis that you want associated with the plot. For example, assuming your graph has at least two plots and at least two y axes, you could do this:
    m_Graph.Plots.Item(2).YAxis = m_graph.Axes.Item(3);
    - Elton

  • Importing multiple excel sheets into DIAdem

    Hello,
    I have an Excel file with multiple sheets. I am trying to import data from cells on each sheet into DIAdem. I am capable of importing anything I want so far using a VBS Script, but only from one sheet at a time. In order to import from another sheet, I have to select that sheet on Excel, save the file and close it. Then the next time the file is accessed by DIAdem, it will open on the sheet that was last saved on.
    Is there a way I can create a VBS file that would check if there are any other sheets on the same file, move to a different sheet and import data from it? I am thinking some kind of IF statement that would realize when the last row from a sheet was imported, and then move on to the next sheet.
    Any ideas/comments/suggestions will be greatly appreciated!
    Thanks, Andy

    Hi arkangel,
    The GroupDefaultSet() command changes the default group, but that only affects ADDITIONS to the Data Portal after that point, such as new FormulaCalculation channels, excerpted section channels from VIEW, new ANALYSIS channels from an FFT calculation, etc.
    If you want to reference channels of the same name from multiple groups, and you have DIAdem 9.x, you can use the [GroupName]/[ChannelName] adressing scheme to query off the "Time" channel from multiple groups. If you have DIAdem 9.1, then you can also use the [GroupIndex]/[ChannelName], [GroupName]/[ChannelIndex], or {GroupIndex]/[ChannelIndex] adressing options. For example:
    For i = 1 TO GroupCount
    ChNum = CNo("[" & i & "]/Time")
    IF ChNum > 0 THEN Msg = Msg & "Group " & i & " --> " & ChnLength(ChNum) & vbCRLF
    NEXT
    MsgBox Msg
    For DIAdem 8.x you will need to use the CNo() function's optional second parameter (ChannelNoStart) in order to ensure that you start at the next channel AFTER the one you just found. Channel numbers was all there was in DIAdem 8.x.
    Brad Turpin
    DIAdem Product Support Engineer
    National Instruments

  • Multiple Y Axes

    Hi
    I am using Flex2 and i am developing line charts,DateTime
    with X-Axis and multiple series on Y-Axis, how can i develope
    multiple(more than 2) Y-Axes with different ranges

    Flex 3 supports multiple (more than 2) axes, where we can
    specify horizontal and vertical axis for each series. But Flex 2
    supports a maximum of 2 axes. Second axis can be added using the
    properties secondHorizontalAxis, secondVerticalAxis,
    secondDataProvider and secondSeries

  • Multiple y axes overlay eachother

    I'm working on a program which will allow users to plot up to 5 different channels with indepdnant y axes. I make them visible / invisible depending on how many channels are being plotted.  Unfortunately, the axes start to overlap eachother.  I decided to programmatically fix this
    The code works just fine initially (for preventing the axes from overlaying eachother), but quickly mess up once you start making them visible / invisible.
    Any thoughts / solutions?
    Solved!
    Go to Solution.

    BowenM wrote:
    I'm working on a program which will allow users to plot up to 5 different channels with indepdnant y axes. I make them visible / invisible depending on how many channels are being plotted.  Unfortunately, the axes start to overlap eachother.  I decided to programmatically fix this
     [code snippet not copied here]
    The code works just fine initially (for preventing the axes from overlaying eachother), but quickly mess up once you start making them visible / invisible.
    Any thoughts / solutions?
    Well, a couple of things (okay, three) come to mind. First, you don't need to use two different property nodes inside your for loop if you are referring to the same axis - just use one property node and pull down a second property. That way you won't have a chance of mixing things up.
    Second, you could use a for loop set to only include the axes/plots you want visible with autoscaling N to an array of your visible plots, then your axes would all be spaced identically.
    Third, you could set the plot position and size to move over and shorten as more y axes are made visible, so you take up the same amount of screen real estate for any case.
    Other customizations are possible, but these should get you where you say you want to be.
    Cameron
    To err is human, but to really foul it up requires a computer.
    The optimist believes we are in the best of all possible worlds - the pessimist fears this is true.
    Profanity is the one language all programmers know best.
    An expert is someone who has made all the possible mistakes.
    To learn something about LabVIEW at no extra cost, work the online LabVIEW tutorial(s):
    LabVIEW Unit 1 - Getting Started
    Learn to Use LabVIEW with MyDAQ

  • When displaying multiple curves on one 2d graph in reports how do I force one curve to be in the foreground?

    When displaying multiple curves on one 2d graph in reports how do I force one curve to be in the foreground? I have two signals and I want to show one overlayed on top of the other. Right now Diadem will only graph it the other way around. I have tried deleting the curves and re-adding them in differnt orders, changin the order they are in the curve list, changing their order inthe data portal, right clicking on the curve and selecting "move to forground" (this only moves the entire 2-d graph object to the foreground). Im using Diadem 12.0 Basic.
    Solved!
    Go to Solution.

    Hello Joe,
    I figured out what causes your curves to draw in the wrong "order".
    You are using two Y-axes, and DIAdem always draws the data for Y1 before Y2, no matter what the order of the curves is in the "Curve and Axis Definition" dialog.
    I am attaching your layout with a small modification, I changed the Y1 and Y2 axis order (I swapped which Y-axis the data is displayed on), and I get the following result:
    Once I looked at your layout it became clear why the order of the curves didn't reflect the order in which the curves were drawn. I didn't know this - so I just learned something new here as well.
    I hope this answers your question, feel free to ask if there is anything else I can help you with.
          Otmar
    Otmar D. Foehner
    Business Development Manager
    DIAdem and Test Data Management
    National Instruments
    Austin, TX - USA
    "For an optimist the glass is half full, for a pessimist it's half empty, and for an engineer is twice bigger than necessary."
    Attachments:
    Modified Report Layout.TDR ‏146 KB

  • How do I graph multiple bit values on one time axis?

    I want to graph multiple bit values, all of which will change back and forth from 0 to 1, on the same time axis, but I don't want any visual overlap between the different bit value traces.  Now I could do this by graphing bit one as either 0 or 1, bit 2 as 2 or 3, bit 3 as 4 or 5, etc., but I would really rather have multiple Y axes showing 0 to 1, stacked vertically on the same time (X) axis.
    You could visualize this as multiple pens on a strip chart continuously recording different values.  Each pen has its own vertical area in which it writes, but all pens could be writing data from the same numerical range.
    Hmmm...  I think my description might be roughly as clear as mud, but if anyone out there can figure out what I am asking and has potential solutions, please let me know.
    Thanks!

    Thanks.  I will look at that VI, but I think I have already seen it.  My problem is that I have CAN data coming in for an hour or so, but the time interval between receiving specific CAN arbitration IDs varies, so I want to plot the X axis against specific, varying time values, not a standard dT.  I'm not sure I can do this on a digital graph, but I haven't given up hope yet.
    BTW, I am receiving 8-byte CAN packages.  Some of the bytes represent actual values, but I need to break others up into individual bit values to see error and status flag settings.  Once I break the bytes into bits, I convert from analog values to digital values.

  • Chart Multiple Axis

    I have seen the flex's chart documentation about multiple
    axes.
    In this documentation the example speak about single
    horizontal axis and multiple vertical axes.
    The question is: may i have multiple horizontal axis? Has it
    sense?
    Thank you

    Sorry, i give response by my self.. i can use
    labelfunction...

  • Hide grid secondary axes export image

    Hi there,
    I'm trying to export some simplified images from graphs, with the grid hidden since it tends to make things look messy. The thing is, when there are multiple y-axes this option seems to be ignored on the second axis. Does anyone have any idea how to get around this?
    Thanks!
    Solved!
    Go to Solution.

    Hi Matt,
    Yep, using a property node to select the ActiveYScale, then subsequent properties of that scale should be the way to refer to each of them. The order is easy enough to determine from the order they were added or by name in the graph properties. It's the same method I use to programmatically set scale names, plot names, which Y axis to use for each plot and so-on. Takes a little bit more work (and space) than the standard invoke node though!
    Thanks again,
    Regards
    Attachments:
    export image hide grids.vi ‏67 KB

  • Controlling an existing application via webservices

    Hi all,
    I just came across labview webservices whilst at one of the NI Tech symposiums in the UK last week and I want to use them for a specific application. However my initial playing hasn't worked very well! I want to know if I'm doing something wrong, or if what I'm trying to do isn't possible!
    We have an existing application which controls a piece of measurement kit. It has multiple moving axes and some data acquisition and automated measurements etc etc. The application is all based on queued state machines and event structures for UI etc. At the moment the system is controlled by a user next to the machine with a PC. For some of the measurement setup, it can be useful for the user to move around and view the system from different angles whilst positioning the moving axes. At the moment that means walking round the system, looking to see how the alignment is, jusdging what change needs to be made, going back to the pc, making the change walking round... you get the idea!
    What I wanted to do was to set up a webservice "interface" to the system giving fairly basic control of the positioning system. My plan was to write an intermediate VI which is opened by the user on the PC (via the existing application) to enable "remote" operation. This intermediate VI would then wait for the webservice vi to be called by the user on his/her mobile web enabled device and then pass instructions directly into the main applications Queue. The use of the intermediate means we don't have to re-write any of the main application and also gives a layer of security since the user has to manually call that VI from the main application. 
    In the ideal world that intermediate vi would be "event driven" i.e. it would either contain an event structure or Queue system and wait for the webservice to fire that event/queue (and send in instructions). However this is the bit that doesn't seem to work. I tried creating a user event within the intermediate vi and writing the reference to that event into a shared variable which the webservice could see, but that failed (apparently user events can't be written to shared variables?). Then I tried with a Queue, but nothing happened... I could of course have the intermediate vi just polling shared variables written by the webservice VI, but that doesn't sound great to me... 
    Does anyone have any thoughts on this? Is there a sensible way to "tack on" a webservice to an existing application? Other than network shared variables is there any other communication method that works between webservices and other VIs running? (I think this may be the key question)...
    Thanks in advance for your thoughts!
    Paul

    Getting data from your LabVIEW built web service over to your LabVIEW application is the trickies part of using LV web services because they run in seperate LabVIEW contexts.
    Since you are using an event based and queue based archtiecture, you are in a good position to add remote support in. This is an excellent architecture for extensibility.
    I can put forth 2 recommendations for you to try out. I agree with you that shared variables are a bad idea, they are lossy and would require you to add polling to your event driven architecture.
    1) TCP/IP
    You could open a TCP/IP port between the web service VI and your main application. I would recommend wrapping the TCP calls into a set of new API VIs that allows your application to block on a TCP request. For instance, you could create your own queue API that uses TCP under the hood to pass data. Your web service would use this new Queue API to put items into the queue, and your main app would then have another queued event handler to service items put into the queue. When this new queued event hanlder sees something on the queue, it could either fire user events in your main app's LV event handler, or just pass events over to your original queued state machine.
    2) VI Server
    create a simple VI that can invoke a user event on your main app's event handler, or can push something into your main app's queued state machine.  Then open and run this VI via VI Server from your web method.  This VI should just run once and exit, and all it does it pushes something into your state machine or queue. You can either have many of these VIs to match the specific events, or have one VI with a string on the front panel, then via VI server, put a value into that control from your web method. 
    I personally find the 2nd option the easiest to implement.
    Good luck.
    -Jared

  • Programmatically change primary and secondary Y-Axis range

    Ok, so the idea is that I have a chart with two different data types on it.  One is plotted on the primary Y-axis on the left side and the other is on the secondary Y-axis on the right side.  Both share the same X-axis.
    How do I change the range seperately for the primary Y-axis and secondary Y-axis?  Whats currently happening is no matter which "Active Plot" or "Y-Axis Index" I select, it only changes the range for the secondary axis.  Any help would be amazing!

    We are going to need to see some code to help with this.  and some clarification sinc a "Chart" cannot have multiple y axes
    Assuming you have an XY Graph this little code demonstrates how to set the scales min and max programatically
    Jeff

  • Time correction

    I am looking for some help on a Time channel issue.  My problem is that when we record data through the afternoon 12:00a to 1:00 pm Diadem does not display it correctly.  I am wondering if we could take the current URI and add to it the ablity to correct the time channel to 24 hr format.  I have multiple users that run this URI and It would be helpful if I could simply make the correction in the code and not have to change multiple users formats in Diadem to read the 24 hr format.  Is that possible to do?  So instead of it going from 12:59:59.9999 to 1:00:00.0000 it would go to 13:00:00.0000.  If I can not add the code to the URI to correct it on the loading of the file if that is an issue then how would I do that in general with code?
    Unfortunetly I do not currently have a log to send you for testing.  I will 
    Attachments:
    Cummins_INSITE_CSV.uri ‏19 KB
    DML-20130705-125719.csv ‏4597 KB

    Hi Jcheese (Lon?),
    We can add AM/PM support to this DataPlugin.  The "Jan" part of the DateTime already forces the DataPlugin to parse each datetime value with custom VBScript code, so we can add any kind of parsing we want.  Ideally you would just add a " PP" suffix to the File.Formatter.TimeFormat property and be done with it, though I seem to remember that when you do that the DataPlugin gets picky about the number of fractional seconds matching exactly.  Anyway, we're past the Rubicon with this DataPlugin and have all possible VBScript options, which will be sufficient.
    So, any time you want to send me a data file that has the offending DateTime values in it, I'll be happy to make the changes.  The one you sent loads beautifully with the version of the DataPlugin I updated for you last March.
    Brad Turpin
    DIAdem Product Support Engineer
    National Instruments

Maybe you are looking for

  • Error while applying patch 6728000

    Hi all, I am applying the patch 6728000 and I now get an error, this is in the log: Connecting to APPS ... Connected successfully. Calling FNDLOAD function. Returned fro FNDLOAD function. Log file: Error calling FNDLOAD function What should I do to f

  • How can I connect the output of a force transducer unit(BNC cable) to the PCI-6036E DAQ card via the SCB-68 block connector?

    I m using the 404A force transducer unit by Aurora Scientific and i want to connect the (converted to Volt) output, which is a BNC cable, to the PCI-6036E DAQ card via the SCB-68 connector block, facing difficulties in choosing the correct input mode

  • Replacing & with & in message mapping

    Hi, In my scenario I'm using Graphical mapping tool and I have to replace the & that's coming in the input xml with & in the output with in the message mapping, Is Value mapping is the only solution or do we have any other options that we can use for

  • First four seconds of audio missing when exporting project as MPEG2

    Hello all- When I export my project from FCP (using version 6.0.6) using Compressor's (v. 3.0.5) MPEG2 Program Stream setting, everything works fine except for one slight problem: the first four seconds of audio are missing. I've looked back over my

  • [SOLVED] Changing default music player

    A very simple question, but I'm trying to make rhythmbox play my mp3 files instead of VLC. When I do open-with, it tells me I have to use sudo for it. But I'm not using the terminal for that, I'm using the lxde-compiz gui. I don't know the command I