From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Need help with a complicated graph indicator.

I'm writing a datalogger program that will record voltage readings from several channels simultaneously for long periods of time. Because the tests will last so long, I need to be able to scroll around and look at the data, resize it to inspect details, etc. No problem--just whoop out a waveform graph and write some controls for it, right? So I did that, except that, because I also need to display each signal independently, problems begin.

 

Fortunately, it turns out that you can make an array of graphs by sticking a graph indicator into a cluster and sticking the cluster into an array. You can then plot a different waveform on each graph indicator, but because the application I'm working on will eventually be used to monitor very different kinds of signals (think, thermocouple vs. digital logic signal), I want to be able to display a different y-axis range for each graph. I can't figure out how to do that, though, because changing the values for one does the same to all of them, and if I set them to autoscale the y-axis then all the graphs except the one I have selected start doing a weird blinky, glitchy thing.

 

I think it would be easiest to have an array of references to different graphs, but I can't figure out how to make that happen.

 

I have attached my testing VI and several other supporting ones which will be used in the application.

Any help is appreciated.

0 Kudos
Message 1 of 4
(1,749 Views)

"Arrays elements can differ only in value. All properties are shared across all array elements"

 

But that is not the case with clusters.

 

I will wave my hands a bit and mention one solution that I used that allowed me to realize what I called a "Disimilar Array"

 

I put  a bunch of sub-panels in a cluster as well as a scroll bar.

In the sub-panels I inserted VIs with FP that contained what ever it was I wanted to display in each sub-panel.

When the user changed the scroll bar the sub-panels where moved inside the cluster.

As sub-panels moved out of sight, I removed what was in the sub-panel and isnterted the next thing that was coming into view and moved the sub-panel to a position ready to come into view.

 

Think of it as a cartoon character walking across a pond by picking up the lily pad behind them and dropping it in front of them to take the next step.

 

So how does the old quote go?

 

"Everything I needed to know in life I learned in kindergarten."

 

Have fun!

 

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 2 of 4
(1,738 Views)

Is there a programmatic way to add subpanels to that structure? One advantage of the graph-cluster array is that I can pass an array of any number (within reason) of waveforms and it will automatically generate that many graphs. I mean, I could just stick twenty graphs in a cluster, but while that would be a lot easier to use in most ways, I'm afraid it would also be really clunky and a pain to maintain.

0 Kudos
Message 3 of 4
(1,716 Views)

@duwaar wrote:

Is there a programmatic way to add subpanels to that structure? ...


No that is why I had to recycle the sub-panels.

 

I looked back at what I wrote ( four years ago now) and recalled that I implemented it using LVOOP so that I had common methods to handle inserting the various GUIs and the child classes handled their own details.

 

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 4 of 4
(1,706 Views)