====Production Production Example==== ===Our Goal=== The goal is to capture how a key piece of machinery was set up for each individual **batch** we produced. ===Plan=== To do this, we will need a few steps. ---- 1) Get the individual, successful batches, \\ 2) For each batch, grab the activity of the machine, \\ 3) Remove any times where the machine wasn't running, \\ 4) Capture the settings from the end of the production run\\ ===Step 1a: Get Batches=== There are two main ways of extracting batch information, depending on how batch information reaches the ARDI system. If the batch number is read as a time-series point, we can use [[get_query|get_query]] and [[timeframes|timeframes]] to split our times up into distinct batch runs. In this case however, batches are read as **events**. This is common when the customer has EMS/ERP/scheduling systems. { "type": "get_events", "source": "Batches", "comment": "Get Batch Information" } ===Step 1b: Remove Failed Product Runs=== In this case our production scheduling system records //all// product runs - even those that have failed quality inspections. We want to filter out those bad products. { "type": "filter", "keep": "code='Good'", "comment": "Filter Out Bad Runs" } ===Step 2: Get the Values to be Captured=== For each day, we need to get the history of what was produced so we can analyse it. { "type": "get_query", "query": "'Finish Coater' ASSET ALLPOINTS BOUND", "samples": 1000, "comment": "Get Line Details" } ===Step 3: Remove Stopped Times=== Next, we need to remove any times that the machine was stopped. This has to be done because there are stoppages, delays and even expected downtime during batches. We don't want to run the risk of accidentally capturing data from one of these downtime moments. { "type": "filter", "keep": "{Finish Coater.Speed - Actual} > 50", "comment": "Ensure line is running" } ===Step 4: Capture the Middle Value=== Finally, we want to capture the 'middle' value from the remaining times. This improves our chances of getting a clean signal, as there's often some signal noise and odd events during startup and shutdown that can compromise the data. { "type": "flatten", "method": "middle", "comment": "Getting Sample Data" } ===Doing More=== It's also possible to add [[batch_sync_inspections|Add Inspection Information]] so we not only see the settings we used, but also what they //resulted// in. This sort of data is then very useful for [[aimodel|AI]].