08-11-2015 07:46 AM
I have a mixed signal graph where I am plotting a signal vs. a time axis. I am trying to dynamically add a second plot to this graph against the same time axis (with a different Y scale) but when I build a 2D array and try to wire it into the graph (using a local variable) I get a dimension mismatch error. I know for sure I have done this in the past (wired arrays with different sizes to a same MSG) without any problems but today for some reason I can't seem to solve this.
Am I missing something?
Solved! Go to Solution.
08-11-2015 08:54 AM
You're writing the multiple plots to a local variable of the graph instead of the indicator terminal itself. The indicator terminal adapts to 1D/2D data to show single or multiple plots, but the local variable can't do this.
Somewhere you need to wire a 2D array to the actual terminal and this should fix your problem. You should really use the terminal instead of the local var anyways.
Cheers
--------, Unofficial Forum Rules and Guidelines ,--------
'--- >The shortest distance between two nodes is a straight wire> ---'
08-11-2015 09:23 AM
Thanks James,
the problem is I write to this graph in two different parts of the program, first a single plot and then only if the user presses a button I add the second plot (not always since calculating the second plot is very time-consuming).
I have tried to put the indicator into the main while loop of the VI but then the graph is redrawn with every iteration, and I need to define an output for the graph for every case of the case loop that's inside the while loop (if I just set it to "default if unwired" it will be cleared).
I have another graph in the same program where I first send a 2D array (2x1D arrays) and then when the user presses a button I add a third 1D array to that 2D array and plot it by writing to a local variable, but I guess in this case the problem isn't adding a new array to a 2D array but changing the dimension from 1D to 2D.
08-11-2015
09:29 AM
- last edited on
08-13-2024
05:46 PM
by
Content Cleaner
Yeah, you're probably writing a 1D array somewhere that's causing it to only accept 1D. To fix your above problem, just put a Build Array node in wherever you have a 1D array and it will just be a 2D array with only one row of data.
To add a plot to your current plots, your screenshot above should work once the plot knows to accept 2D arrays.
Reading from a local variable, changing something, and then writing to it again can lead to a lot of issues down the line. Race conditions are a pain in the butt, so getting rid of that type of stuff is good to do early on. I haven't seen the rest of your code, so I don't know how you're handling this, but just keep that in mind as you're adding to your software.
Cheers
--------, Unofficial Forum Rules and Guidelines ,--------
'--- >The shortest distance between two nodes is a straight wire> ---'
08-11-2015 09:35 AM
Yep, that did the trick, thanks again!