

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 中計算 OEE AWS IoT SiteWise
<a name="calculate-oee"></a>

本教學提供如何為製造程序計算整體設備效率 (OEE) 的範例。因此，您的 OEE 計算或公式可能與此處顯示的計算或公式不同。一般來說，OEE 被定義為 `Availability * Quality * Performance`。若要進一步了解如何計算 OEE，請參閱 *Wikipedia* [的整體設備效率](https://en.wikipedia.org/wiki/Overall_equipment_effectiveness)。

## 先決條件
<a name="oee-requirements"></a>

若要完成此教學，您必須為具有以下三個資料串流的裝置設定資料擷取：
+ `Equipment_State` – 代表機器狀態的數值代碼，例如閒置、故障、計劃停止或正常操作。
+ `Good_Count` – 資料串流，其中每個資料點包含自上次資料點以來成功操作的數量。
+ `Bad_Count` – 資料串流，其中每個資料點包含自上次資料點以來失敗的操作次數。

若要設定資料擷取，請參閱 [將資料擷取至 AWS IoT SiteWise](industrial-data-ingestion.md)。如果您沒有可用的工業操作，您可以透過 AWS IoT SiteWise API 撰寫會產生和上傳範例資料指令碼。

## 如何計算 OEE
<a name="how-to-calculate-oee"></a>

在此教學中，您會透過三個資料輸入串流建立會計算 OEE 的資產模型：`Equipment_State`、`Good_Count` 和 `Bad_Count`。在這個範例中，請考慮通用包裝機器，例如，用於包裝糖果、洋芋片或顏料等東西的包裝機器。在 [AWS IoT SiteWise 主控台](https://console.aws.amazon.com/iotsitewise/)中，使用下列測量、轉換和指標建立 AWS IoT SiteWise 資產模型。然後，您可以建立資產來代表封裝機器，並觀察 如何 AWS IoT SiteWise 計算 OEE。

定義下列[衡量值](measurements.md)，以表示來自包裝機器的原始資料串流。

**衡量值**
+ `Equipment_State` – 以數字代碼提供封裝機器目前狀態的資料串流 （或測量）：
  + `1024` – 機器處於閒置狀態。
  + `1020` – 錯誤，例如錯誤或延遲。
  + `1000` – 計劃的停止。
  + `1111` – 正常操作。
+ `Good_Count` – 資料串流，其中每個資料點包含自上次資料點以來成功操作的數量。
+ `Bad_Count` – 資料串流，其中每個資料點包含自上次資料點以來失敗的操作次數。

使用 `Equipment_State` 衡量值資料串流及其包含的代碼，定義以下[轉換](transforms.md) (或衍生的衡量值)。轉換與原始衡量值有一對一的關係。

**轉換**
+ `Idle = eq(Equipment_State, 1024)` – 包含機器閒置狀態的轉換資料串流。
+ `Fault = eq(Equipment_State, 1020)` – 包含機器故障狀態的轉換資料串流。
+ `Stop = eq(Equipment_State, 1000)` – 包含機器計劃停止狀態的轉換資料串流。
+ `Running = eq(Equipment_State, 1111)` – 包含機器正常操作狀態的轉換資料串流。

使用原始衡量值和轉換衡量值，定義下列在指定時間間隔內彙總機器資料的[指標](metrics.md)。在此區段定義指標時，請為每個指標選擇相同的時間間隔。

**指標**
+ `Successes = sum(Good_Count)` – 在指定時間間隔內成功填充的套件數量。
+ `Failures = sum(Bad_Count)` – 指定時間間隔內未成功填充的套件數量。
+ `Idle_Time = statetime(Idle)` – 機器每個指定時間間隔的總閒置時間 （以秒為單位）。
+ `Fault_Time = statetime(Fault)` – 機器每個指定時間間隔的總故障時間 （以秒為單位）。
+ `Stop_Time = statetime(Stop)` – 機器每個指定時間間隔的總計劃停止時間 （以秒為單位）。
+ `Run_Time = statetime(Running)` – 機器每個指定時間間隔執行時沒有問題的總時間 （以秒為單位）。
+ `Down_Time = Idle_Time + Fault_Time + Stop_Time` – 機器在指定時間間隔內的總停機時間 （以秒為單位），計算方式為 以外機器狀態的總和`Run_Time`。
+ `Availability = Run_Time / (Run_Time + Down_Time)` – 機器的正常運作時間或機器可在指定時間間隔內運作的排程時間百分比。
+ `Quality = Successes / (Successes + Failures)` – 機器在指定時間間隔內成功填充套件的百分比。
+ `Performance = ((Successes + Failures) / Run_Time) / {{Ideal_Run_Rate}}` – 機器在指定時間間隔內的效能，以您程序理想執行率 （以秒為單位） 的百分比表示。

  例如，您的 `Ideal_Run_Rate` 每分鐘可能有 60 個包裝 (每秒 1 個包裝)。如果您的 `Ideal_Run_Rate` 是每分鐘或每小時，則需要將其除以適當的單位轉換係數，因為 `Run_Time`是以秒為單位。
+ `OEE = Availability * Quality * Performance` – 機器在指定時間間隔內的整體設備效率。此公式會將 OEE 計算為 1 的分數。

**注意**  
 如果將 OEE 定義為轉換，則會計算每個輸入值的輸出值。當轉換評估考慮公式中所有貢獻屬性的最新可用值時，有可能產生非預期的值。對於具有相同時間戳記的屬性更新，輸出值可能會被其他傳入屬性的更新覆寫。例如，計算可用性、品質和效能時，會使用其他兩個屬性的最後一個可用資料點來計算 OEE。這些貢獻值共用時間戳記，並導致 OEE 的輸出值不正確。不保證轉換運算的順序。