Turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

bmcbride

Member

06-27-2018 09:54 AM

Options

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report to a Moderator

Labels:

I'm relatively new to LabView and I'm trying to make a VI for measuring load on a small laboratory rolling mill. The load cells are always under a certain amount of preload until a piece of metal is rolled, at which point a narrow peak signal will be generated similar to an impulse.

I'd like to do the following:

- Continuously sample preload values and trigger a different sequence when a specific threshold is reached (i.e. sense when material is actually being rolled)
- Sample and plot load data as material is being rolled
- Revert to continuous preload sampling when material
*isn't*being rolled - Repeat this process for additional rolling loads that are detected and superimpose the output on a single chart/graph
- Export all rolling loads that are detected to Excel

I have a good idea of how to setup a threshold with doing comparative operators and how to write data to a file. I'm not sure how to superimpose data obtained at different times on a single chart/graph and what that means in terms of memory.

Do you have any suggestions on how to go about this?

pamgomez

Member

06-28-2018 07:37 PM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report to a Moderator

Are you using any hardware?

06-28-2018 07:39 PM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report to a Moderator

Using a myDAQ with external excitation voltage.

cbutcher

Trusted Enthusiast

06-28-2018 09:58 PM - edited 06-28-2018 10:00 PM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report to a Moderator

If the expected durations of each "sample" are similar, it shouldn't be too hard. (Edit: to be clear, the below applies even if they're not similar, just your graph will by default be harder to read due to a long X timescale for the long measurement, and concentrated data at low X values for the short measurements)

You make it sound like you already have the acquisition working - is that true? If not, we can discuss that more. However, I'm going to write now assuming that you have acquired a set of N double values and you're in the process of acquiring a new set of M (close to N) values for a second roll.

The way you want to plot these will be best served by a Graph, Waveform or XY should both be fine if the sampling rate is constant. If you have variable sampling, I'd suggest the XY Graph, but both can be made to work with some effort.

The inputs for multi-plot display on XY Graph (taken from "Detailed Help", see Context Help (Ctrl+h) for the graph on the block diagram) are as follows:

**Displaying Multiple Plots on XY Graphs**

The XY graph accepts three data types for displaying multiple plots. The XY graph accepts an **array of plots, where a plot is a cluster that contains an x array and a y array.**

The XY graph also accepts an array of clusters of plots, where a plot is an array of points. A point is a cluster that contains an *x* value and a *y* value. The XY graph also accepts an array of clusters of plots, where a plot is an array of complex data, in which the real part is plotted on the x-axis and the imaginary part is plotted on the y-axis.

and for Waveforms (most parts copied, some ignored, emphasis mine):

**Displaying Multiple Plots on Waveform Graphs**

The waveform graph accepts several data types for displaying multiple plots. The waveform graph accepts a **2D array of values**, where each row of the array is a single plot. The graph interprets the data as points on the graph and increments the *x* index by one, starting at *x* = 0. Wire a 2D array data type to the graph, right-click the graph, and select **Transpose Array** from the shortcut menu to handle each column of the array as a plot. This is particularly useful when you sample multiple channels from a DAQ device because the device can return the data as 2D arrays with each channel stored as a separate column.

The waveform graph also accepts a **cluster of an initial x value, a delta x value, and a 2D array of y data**. The graph interprets the

The waveform graph accepts a **plot array where the array contains clusters**. Each cluster contains a 1D array that contains the *y* data. The **inner array describes the points in a plot**, and the outer array has one cluster for each plot. The following front panel shows this array of the **y** cluster.

(Image didn't upload, view the real help)

**Use a plot array instead of a 2D array if the number of elements in each plot is different.** For example, when you sample data from several channels using different time amounts from each channel, use this data structure instead of a 2D array because each row of a 2D array must have the same number of elements. The number of elements in the interior arrays of an array of clusters can vary.

The waveform graph accepts a cluster of an initial *x* value, a delta *x* value, and an array that contains clusters. Each cluster contains a 1D array that contains the *y* data. You use the Bundle function to bundle the arrays into clusters and you use the Build Array function to build the resulting clusters into an array. You also can use the Build Cluster Array function, which creates arrays of clusters that contain the inputs you specify.

The waveform graph accepts an array of clusters of an *x* value, a delta *x* value, and an array of *y* data. This is the most general of the multiple-plot waveform graph data types because you can indicate a unique starting point and increment for the x-scale of each plot.

So basically, you might consider the plot array option, or the line below that discussing an array of clusters. You can store your array in a Shift Register, and append a new cluster to it each time you acquire new data. In either case, you'll probably want an array of clusters, and the formatting of the cluster just varies depending on what's convenient for your acquisition, and whether you want the Waveform or XY option.