Looking for a Ribbon Chart

I don’t see a Ribbon Chart in the component list or as a chart type. Has anyone found a way to create one? I’m looking for something like in the screenshot to visualize the amount of time a machine has been in a particular status during a shift.

image

That is a status chart in the Ignition Components palette. Status Chart

Thank you!!

And in Perspective, this kind of chart can be built using the XYChart component.

Thanks!

Can you please post your configuration or maybe export the view?

Absolutely! I’ve attached a JSON dump of the view. It’s quite tailored to the specific application, but hopefully it can be useful to you.

In our application, it’s used to show the activity timeline of different process units. The component can be configured for a single specified process units (shown above), multiple specified process units, or all process units (if no process unit is specified, all units are loaded). The modes shown on the chart (CIP, Production, Recycle, etc…) are also configurable along with their colors (if no modes are specified, all modes are loaded and the default amCharts colors are used).

This amCharts demo is a great resource, it was extremely helpful in determining how to build the data source and get the rendering working correctly. The big trick is using a column renderer with the column.open.x property assigned to the start field in your data source.

Mode Timeline.json (25.1 KB)

2 Likes

Very impressive, thanks for sharing!

Did you notice any memory leaks or performance problems while using the XY Chart?

We've seen some instances on mobile platforms where only half of an XY Chart will be drawn after scrolling or zooming; it looks like the chart is sliced right through the middle. It takes the user scrolling or zooming just a hair more to fix things.

As for memory leaks, I haven't had any issues. Are there known memory leaks with the XY Chart?

There are some bug reports like this, i also saw in another post that the XY Chart will be deprecated in the future.
I will use your solution anyway as there is currently no alternative and that kind of chart is essential for an MES status display.

In that case, I'll put towards a proper generic version of the component for Ignition Exchange.

Edit: Ribbon Chart component can be found here on Ignition Exchange

1 Like

To clear up some confusion: The version of the library backing the XY Chart in Perspective when we first shipped it (ie, early 8.0.X releases) did have significant issues, including a memory leak. We’ve mitigated all of those issues that we know about, through a combination of changing our code and upgrading the backing library - so, there’s no issue with using the XY Chart in full use. Rumors of deprecation were probably part of the initial communication about issues with the XY Chart - we simply weren’t sure whether we could maintain the currrent component or would have to introduce an entirely new one.

We are facing some serious performance issues with XY-chart, please look at the 1min video recording:
https://vimeo.com/371934752

In the video, I'm hitting three buttons to load history of 24hour (24H), 7days (7PV) or 1 month (1KK) and it takes 10-20 seconds until pens are plotted and during that time cpu load is 100%. There are just 100 data points in each pen so it should plot the graph within a second, right?

Another issue is memory handling. if I continue changing duration few times, it runs out of memory.

Any comments?

1 Like

It's possible you've encountered an issue we don't know about. Also, you don't specify your Ignition and Perspective version anywhere.

Right, this problem has been visible in all latest builds such as 8.0.4 and 8.0.5. Currently we are using 8.0.6RC and same behaviour. Data comes from database fast enough (in few tents of milliseconds) but plotting takes lot of time. it seems that component is rendering a lot or doing something else we don’t know? Also based on analysis with Chrome inspector, component plots all UI elements every time when it actually should only plot the data points of the graph. This causes huge amount of unnecessary plotting.