====Daily Operational Timing Example====
===Our Goal===
The goal is to have daily totals available for how much time has been spent with the machine //running// vs //stopped//.
For our purposes, 'running' is when the machine is both **on** and **has a speed greater than 0**.
===Plan===
The plan requires a few steps...
----
1) Figure out the start and end times for our day, \\
2) Get the //online status// and //speed// of our line, \\
3) Find all of the times when the line was running, \\
4) Get the total time spent running (and not running) \\
----
===Step 1: Get Strict Days===
This step gets the last 24 hours up to 6:00AM in the current day. If the user chooses to run this analytic over many days, it will be broken up into 24-hour batches.
{
"type": "get_day",
"upto": "06:00",
"comment": "Get The Full Day Span"
}
===Step 2: Get the Running Status & Speed===
For each day, we need to get the history of machine status and speed.
{
"type": "get_query",
"query": "'Line' ASSET ('Status - Online','Speed') PROPERTY VALUES",
"samples": 1000,
"comment": "Get Line Raw Data"
}
===Step 3: Break into Time Frames===
Next, we want to break our time into smaller time frames where the line was running.
{
"type": "timeframes",
"condition": "({Line.Status - Online} > 0) && ({Line.Speed} > 0)",
"comment": "Find Running Windows"
}
===Step 4: Calculate Time Totals===
Finally, we calculate how much of the //total time// has been spent inside these running times.
{
"type": "timesummary",
"inside": "Running",
"comment": "Calculate Final Running Times"
}
===Full JSON===
{
"name": "Daily Painting KPIs",
"uniqueid": "{Date}",
"keys": ["Painting Percentage","Not Painting Percentage"],
"date": "StartTime",
"steps": [
{
"type": "get_day",
"upto": "06:00",
"comment": "Get The Full Day Span"
},
{
"type": "get_query",
"query": "'Line' ASSET ('Status - Online','Speed') PROPERTY VALUES",
"samples": 1000,
"comment": "Get Line Raw Data"
},
{
"type": "timeframes",
"condition": "({Line.Status - Online} > 0) && ({Line.Speed} > 0)",
"inside": "Running",
"comment": "Find Running Windows"
},
{
"type": "timesummary",
"inside": "Running",
"comment": "Calculate Final Running Times"
}
]
}