Time per Stop Reason
Some of our machines have a "stop code", "stop description", or "fault code" tag. When the machine is stopped, this is populated with a value. In a trend chart for example, we can see that reason 46 has about 12 minutes of downtime for it from the first two non-zero times in the trendline below.
Could I have a bar chart or some other way to see minutes per reason in the selected time period? I've done that for 0 (stopped) vs 1 (running) using DurationInStateNonZero but in this case with a single tag and different values, I wasn't immediately sure how to do that (e.g. I didn't find an aggregate or way to have a calculated tag for "DurationInState = 46", DurationInState 33, etc....
5 replies
-
How many reason codes do you have James?
-
Hi James
This is a really good use-case for Flow. Being a partner product, I know the guys at Canary won't mind me sharing this with you on the Canary forum. There are 2 ways to do what you are looking for, depending on how much information you require.
1. Create a Flow measure for the time period (e.g. Hourly), point it to the Canary "fault code" tag, select the "Time in State" primary aggregation with a state of 46. Flow will then calculate the downtime duration caused by fault 46 for every hourly time period. You can backfill this to as far back as you need to. You can also perform a secondary rollup aggregation to calculate how much downtime was caused by fault 46 per day for example. You can then trend the hourly or daily values in a Flow dashboard, or push the values back to a Canary tag to display in Axiom.
2. The previous method would effectively be "hard coded" for fault code 46. A more generic option would be to create a Flow event for "Downtime". You would define start and end triggers for the "Downtime" event using the "Machine Running" tag. This will automatically transform the time based tag data into downtime transactions, each with a duration already calculated. You can then configure additional "context" you would like to capture against each event transaction. So in your example, you would attach the "fault code" tag as context you would like to capture. You can even give each fault code a description (e.g. 46 = "Machine starved", etc.). Using this method will capture all downtime events and "allocate" the reason to them. You could allocate additional information to each event transaction (e.g. "Product", "Operator", "Work Order", etc.). This information can then be visualized on a Flow dashboard in a Pareto Chart.
Hope this gives you a taste of the capabilities of Flow. This is a common use case.
Cheers
Graeme
-
Thank you both Graeme and Jeff . The Stop Reasons pareto at the bottom of Graeme's reply is exactly what I'm looking to have. I've been interested in Flow but haven't finalized yet. I'll follow-up.