轉換資料 (轉換) - AWS IoT SiteWise

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

轉換資料 (轉換)

轉換是數學表達式,可將資產屬性的資料點從一種形式映射到另一種形式。轉換表達式由資產屬性變數、常值、運算子和函數組成。轉換後的資料點會與輸入資料點保持one-to-one的關係。 會在每次任何輸入屬性收到新的資料點時, AWS IoT SiteWise 計算新的轉換後資料點。

注意

對於具有相同時間戳記的屬性更新,輸出值可能會被其他傳入屬性的更新覆寫。

例如,如果您的資產具有名為 Temperature_C、以攝氏單位為單位的溫度衡量值串流,您可以使用公式 Temperature_F = 9/5 * Temperature_C + 32 將每個資料點轉換為華氏。每次在Temperature_C測量串流中 AWS IoT SiteWise 收到資料點時,對應的Temperature_F值會在幾秒鐘內計算,並做為 Temperature_F 屬性提供。

如果您的轉換包含多個變數,則提早抵達的資料點會立即啟動運算。考慮一個零件製造商使用轉換來監控產品品質的範例。製造商會根據零件類型使用不同的標準,使用下列測量來代表程序:

  • Part_Number - 識別零件類型的字串。

  • Good_Count - 如果部分符合標準,則會增加 1 的整數。

  • Bad_Count - 如果部分不符合標準,則會增加一個整數。

製造商也會建立等於 Quality_Monitor的轉換 if(eq(Part_Number, "BLT123") and (Bad_Count / (Good_Count + Bad_Count) > 0.1), "Caution", "Normal")

此轉換會監控針對特定零件類型產生的不良零件百分比。如果零件編號為 BLT123 且不良零件的百分比超過 10% (0"Caution".1),則轉換會傳回 。否則,轉換會傳回 "Normal"

注意
  • 如果 在其他測量之前Part_Number收到新的資料點,Quality_Monitor轉換會使用新的Part_Number值和最新的 Good_CountBad_Count值。若要避免錯誤,請在下一次製造執行Bad_Count之前重設 Good_Count和 。

  • 如果您想要只在所有變數都收到新的資料點之後才評估表達式,請使用 指標

定義轉換 (主控台)

當您在 AWS IoT SiteWise 主控台中定義資產模型的轉換時,您可以指定下列參數:

  • 名稱 – 屬性的名稱。

  • 單位 – (選用) 屬性的科學單位,例如 mm 或 Celsius。

  • 資料類型 – 轉換的資料類型,可以是字串

  • 外部 ID – (選用) 這是使用者定義的 ID。如需詳細資訊,請參閱《AWS IoT SiteWise 使用者指南》中的 具有外部 IDs參考物件

  • 公式 – 轉換表達式。轉換表達式無法使用彙總函數或時間函數。若要開啟自動完成功能,請開始輸入或按下向下箭頭鍵。如需詳細資訊,請參閱使用公式表達式

    重要

    轉換可以輸入整數、雙數、布林值或字串類型的屬性。布林值轉換為 0(假) 和 1(真)。

    轉換必須輸入一或多個非屬性和任意數量屬性屬性的屬性。 會在每次非 屬性的輸入屬性收到新的資料點時 AWS IoT SiteWise 計算新的轉換資料點。新的屬性值不會啟動轉換更新。資產屬性資料 API 操作的相同請求率適用於轉換運算結果。

    公式表達式只能輸出雙數或字串值。巢狀運算式可以輸出其他資料類型,例如字串,但整體公式必須評估為數字或字串。您可以使用 jp 函數將字串轉換為數字。布林值必須為 1 (true) 或 0 (false)。如需詳細資訊,請參閱未定義、無限和溢出值

如需詳細資訊,請參閱建立資產模型 (主控台)

定義轉換 (AWS CLI)

當您使用 AWS IoT SiteWise API 定義資產模型的轉換時,您可以指定下列參數:

  • name – 屬性的名稱。

  • unit – (選用) 屬性的科學單位,例如 mm 或 Celsius。

  • dataType – 轉換的資料類型,必須是 DOUBLESTRING

  • externalId – (選用) 這是使用者定義的 ID。如需詳細資訊,請參閱《AWS IoT SiteWise 使用者指南》中的 具有外部 IDs參考物件

  • expression – 轉換表達式。轉換表達式無法使用彙總函數或時間函數。如需詳細資訊,請參閱使用公式表達式

  • variables – 變數清單,定義要在表達式中使用的資產其他屬性。每個變數結構都包含可在表達式中使用的簡單名稱,以及一個 value 結構,用來識別要連結到該變數的屬性。value 結構包含以下資訊:

    • propertyId – 要輸入值之屬性的 ID。您可以使用屬性的名稱而非其 ID。

    重要

    轉換可以輸入整數、雙數、布林值或字串類型的屬性。布林值轉換為 0(假) 和 1(真)。

    轉換必須輸入一或多個非屬性和任意數量屬性屬性的屬性。 會在每次非 屬性的輸入屬性收到新的資料點時 AWS IoT SiteWise 計算新的轉換資料點。新的屬性值不會啟動轉換更新。資產屬性資料 API 操作的相同請求率適用於轉換運算結果。

    公式表達式只能輸出雙數或字串值。巢狀運算式可以輸出其他資料類型,例如字串,但整體公式必須評估為數字或字串。您可以使用 jp 函數將字串轉換為數字。布林值必須為 1 (true) 或 0 (false)。如需詳細資訊,請參閱未定義、無限和溢出值

範例 轉換定義

下列範例示範一種轉換屬性,可將資產的溫度衡量值從攝氏轉換為華氏。此物件是包含轉換AssetModelProperty 範例。您可以將此物件指定為 CreateAssetModel 請求承載的一部分,以建立轉換屬性。如需詳細資訊,請參閱建立資產模型 (AWS CLI)

{ ... "assetModelProperties": [ ... { "name": "Temperature F", "dataType": "DOUBLE", "type": { "transform": { "expression": "9/5 * temp_c + 32", "variables": [ { "name": "temp_c", "value": { "propertyId": "Temperature C" } } ] } }, "unit": "Fahrenheit" } ], ... }
範例 包含三個變數的轉換定義

下列範例示範轉換屬性,如果超過 10% 的 BLT123 組件不符合標準,則會傳回警告訊息 ("Caution")。否則,它會傳回資訊訊息 ("Normal")。

{ ... "assetModelProperties": [ ... { "name": "Quality_Monitor", "dataType": "STRING", "type": { "transform": { "expression": "if(eq(Part_Number,"BLT123") and (Bad_Count / (Good_Count + Bad_Count) > 0.1), "Caution", "Normal")", "variables": [ { "name": "Part_Number", "value": { "propertyId": "Part Number" } }, { "name": "Good_Count", "value": { "propertyId": "Good Count" } }, { "name": "Bad_Count", "value": { "propertyId": "Bad Count" } } ] } } } ... }