建立資產模型 - AWS IoT SiteWise

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

建立資產模型

AWS IoT SiteWise 資產模型推動工業資料的標準化。資產模型包含名稱、說明、資產屬性和資產階層定義。例如,您可以定義具有溫度、每分鐘旋轉次數 (RPM) 和功率性質的風力渦輪機模型。然後,您可以使用淨功率輸出性質和風力發電機階層定義來定義風力發電場模型。

注意
  • 建議您從最低層級的節點開始建立操作模型。例如,在建立風力發電場模型之前,先建立風力發電機模型。資產階層定義包含現有資產模型的參考。利用此方法,您可以在建立模型時定義資產階層。

  • 資產模型不能包含其他資產模型。如果您必須定義一個可以在其他模型中參照為次組件的模型,則應該改建一個元件-> 模型。如需詳細資訊,請參閱建立元件模型

下列各節說明如何使用主 AWS IoT SiteWise 控台或API建立資產模型。下列各節也會說明您可用來建立模型的不同類型資產屬性和資產階層。

建立資產模型 (主控台)

您可以使用 AWS IoT SiteWise 主控台建立資產模型。主 AWS IoT SiteWise 控台提供各種功能,例如公式 auto 完成功能,可協助您定義有效的資產模型。

建立資產模型 (主控台)
  1. 導覽至 AWS IoT SiteWise 主控台

  2. 在導覽窗格中,選擇 Models (模型)

  3. 選擇建立模型

  4. Create model (建立模型) 頁面上,執行下列動作:

    1. 輸入資產模型的 Name (名稱),例如 Wind TurbineWind Turbine Model。此名稱在您於此區域中帳戶的所有模型間都必須是唯一的。

    2. (選擇性) 新增模型的外部 ID。這是使用者定義的 ID。如需詳細資訊,請參閱《AWS IoT SiteWise 使用者指南》中的 使用外部參考物件 IDs

    3. (選擇性) 新增模型的 Measurement definitions (衡量值定義)。測量值代表來自您設備的資料串流。如需詳細資訊,請參閱定義來自設備的資料流(測量)

    4. (選擇性) 新增模型的 Transform definitions (轉換定義)。轉換是將資料從一種表單對映到另一個表單的公式。如需詳細資訊,請參閱轉換資料 (轉換)

    5. (選擇性) 新增模型的 Metric definitions (指標定義)。指標是隨時間間隔彙總資料的公式。指標可以從關聯資產輸入資料,因此您可以計算代表作業或作業子集的值。如需詳細資訊,請參閱彙總屬性和其他資產 (量度) 的資料

    6. (選擇性) 新增模型的 Hierarchy definitions (階層定義)。階層是資產之間的關係。如需詳細資訊,請參閱定義資產模型階層

    7. (選擇性) 新增資產模型的標籤。如需詳細資訊,請參閱標記您的 AWS IoT SiteWise 資源

    8. 選擇建立模型

    當您建立資產模型時,主 AWS IoT SiteWise 控台會導覽至新模型的頁面。在此頁面上,您可以看到模型的狀態,最初是CREATING。此頁面會自動更新,因此您可以等候模型的狀態更新。

    注意

    複雜模型的資產模型建立程序可能需要幾分鐘的時間。資產模型狀態為後 ACTIVE,您可以使用資產模型來建立資產。如需詳細資訊,請參閱資產和模型狀態

  5. (選擇性) 建立資產模型後,您可以為邊緣配置資產模型。若要取得有關 SiteWise Edge 的更多資訊,請參閱開啟邊緣資料處理

    1. 在模型頁面上,選擇「為邊緣設定」。

    2. 在模型組態頁面上,選擇模型的邊線組態。這控制 AWS IoT SiteWise 可以在何處計算和儲存與此資產模型相關聯的性質。如需有關為邊配置模型的更多資訊,請參閱設定邊緣功能

    3. 對於「自訂邊緣組態」,請選擇 AWS IoT SiteWise 要計算和儲存每個資產模型屬性的位置。

      注意

      相關聯的轉換和測量結果必須設定為相同的位置。如需有關為邊配置模型的更多資訊,請參閱設定邊緣功能

    4. 選擇 Save (儲存)。在模型頁面上,您的 Edge 組態現在應該已設定

建立資產模型 (AWS CLI)

您可以使用 AWS Command Line Interface (AWS CLI) 來建立資產模型。

使用此CreateAssetModel作業建立具有屬性和階層的資產模型。此操作預期會有具備下列結構的承載。

{ "assetModelType": "ASSET_MODEL", "assetModelName": "String", "assetModelDescription": "String", "assetModelProperties": Array of AssetModelProperty, "assetModelHierarchies": Array of AssetModelHierarchyDefinition }
若要建立資產模型 (AWS CLI)
  1. 建立名為的檔案,asset-model-payload.json然後將下列JSON物件複製到檔案中。

    { "assetModelType": "ASSET_MODEL", "assetModelName": "", "assetModelDescription": "", "assetModelProperties": [ ], "assetModelHierarchies": [ ], "assetModelCompositeModels": [ ] }
  2. 使用您偏好的JSON文字編輯器來編輯下列項目的asset-model-payload.json檔案:

    1. 輸入資產模型的名稱 (assetModelName),例如 Wind TurbineWind Turbine Model。此名稱在您帳戶中的所有資產模型和元件模型中必須是唯一的 AWS 區域。

    2. (選擇性) 輸入資產模型的外部 ID (assetModelExternalId)。這是使用者定義的 ID。如需詳細資訊,請參閱《AWS IoT SiteWise 使用者指南》中的 使用外部參考物件 IDs

    3. (選擇性) 輸入資產模型的說明 (assetModelDescription),或移除 assetModelDescription 鍵值組。

    4. (選擇性) 定義模型的資產屬性 (assetModelProperties)。如需詳細資訊,請參閱定義資料屬性

    5. (選擇性) 定義模型的資產階層 (assetModelHierarchies)。如需詳細資訊,請參閱定義資產模型階層

    6. (選擇性) 定義模型的警報。警報會監控其他屬性,以便您識別何時需要注意設備或流程。每個警報定義都是一個複合模型 (assetModelCompositeModels),用於標準化警報使用的屬性集。如需詳細資訊,請參閱 使用警報監控數據定義資產模型上的警示

    7. (選擇性) 新增資產模型的標籤 (tags)。如需詳細資訊,請參閱標記您的 AWS IoT SiteWise 資源

  3. 執行下列命令,從檔案中的定義建立資產模JSON型。

    aws iotsitewise create-asset-model --cli-input-json file://asset-model-payload.json

    操作會傳回回應,其中包含建立資產時您參考的 assetModelId。回應還包含模型 (assetModelStatus.state) 的狀態,起初為 CREATING。在變更傳播之前,資產模型狀態會保持為 CREATING

    注意

    複雜模型的資產模型建立程序可能需要幾分鐘的時間。若要檢查資產模型的目前狀態,請指定使用DescribeAssetModel作業assetModelId。資產模型狀態變成 ACTIVE 後,您便能使用資產模型來建立資產。如需詳細資訊,請參閱資產和模型狀態

  4. (選擇性) 為資產模型建立自訂複合模型。使用自訂複合模型,您可以在模型中分組屬性,或透過參照元件模型來包括次組合件。如需詳細資訊,請參閱建立自訂複合模型 (元件)

範例資產模型

本節包含範例資產模型定義,您可以使用 AWS CLI 和建立資產模型 AWS IoT SiteWise SDKs。這些資產模型代表風力發電機和風力發電場。風力發電機資產會擷取原始感測器資料,並計算功率和平均風速等值。風力發電場資產可計算風力發電場中所有風力發電機的總功率等值。

風力發電機資產模型

下列資產模型可呈現風力發電場中的風力發電機。風力發電機會擷取感測器資料以計算功率和平均風速等值。

注意

此示例模型類似於 AWS IoT SiteWise 演示中的風力發電機模型。如需詳細資訊,請參閱使用 AWS IoT SiteWise 演示

{ "assetModelType": "ASSET_MODEL", "assetModelName": "Wind Turbine Asset Model", "assetModelDescription": "Represents a turbine in a wind farm.", "assetModelProperties": [ { "name": "Location", "dataType": "STRING", "type": { "attribute": { "defaultValue": "Renton" } } }, { "name": "Make", "dataType": "STRING", "type": { "attribute": { "defaultValue": "Amazon" } } }, { "name": "Model", "dataType": "INTEGER", "type": { "attribute": { "defaultValue": "500" } } }, { "name": "Torque (KiloNewton Meter)", "dataType": "DOUBLE", "unit": "kNm", "type": { "measurement": {} } }, { "name": "Wind Direction", "dataType": "DOUBLE", "unit": "Degrees", "type": { "measurement": {} } }, { "name": "RotationsPerMinute", "dataType": "DOUBLE", "unit": "RPM", "type": { "measurement": {} } }, { "name": "Wind Speed", "dataType": "DOUBLE", "unit": "m/s", "type": { "measurement": {} } }, { "name": "RotationsPerSecond", "dataType": "DOUBLE", "unit": "RPS", "type": { "transform": { "expression": "rpm / 60", "variables": [ { "name": "rpm", "value": { "propertyId": "RotationsPerMinute" } } ] } } }, { "name": "Overdrive State", "dataType": "DOUBLE", "type": { "transform": { "expression": "gte(torque, 3)", "variables": [ { "name": "torque", "value": { "propertyId": "Torque (KiloNewton Meter)" } } ] } } }, { "name": "Average Power", "dataType": "DOUBLE", "unit": "Watts", "type": { "metric": { "expression": "avg(torque) * avg(rps) * 2 * 3.14", "variables": [ { "name": "torque", "value": { "propertyId": "Torque (Newton Meter)" } }, { "name": "rps", "value": { "propertyId": "RotationsPerSecond" } } ], "window": { "tumbling": { "interval": "5m" } } } } }, { "name": "Average Wind Speed", "dataType": "DOUBLE", "unit": "m/s", "type": { "metric": { "expression": "avg(windspeed)", "variables": [ { "name": "windspeed", "value": { "propertyId": "Wind Speed" } } ], "window": { "tumbling": { "interval": "5m" } } } } }, { "name": "Torque (Newton Meter)", "dataType": "DOUBLE", "unit": "Nm", "type": { "transform": { "expression": "knm * 1000", "variables": [ { "name": "knm", "value": { "propertyId": "Torque (KiloNewton Meter)" } } ] } } }, { "name": "Overdrive State Time", "dataType": "DOUBLE", "unit": "Seconds", "type": { "metric": { "expression": "statetime(overdrive_state)", "variables": [ { "name": "overdrive_state", "value": { "propertyId": "Overdrive State" } } ], "window": { "tumbling": { "interval": "5m" } } } } } ], "assetModelHierarchies": [] }

風力發電場資產模型

下列資產模型可呈現包括多個風力發電機的風力發電場。此資產模型定義風力發電機模型的階層。這可讓風電場從風力發電場中所有風力發電機的資料計算值 (例如平均功率)。

注意

此範例模型類似於示 AWS IoT SiteWise 範中的風電場模型。如需詳細資訊,請參閱使用 AWS IoT SiteWise 演示

此資產模型取決於 風力發電機資產模型。將 propertyIdchildAssetModelId 值取代為來自現有風力發電機資產模型中的值。

{ "assetModelName": "Wind Farm Asset Model", "assetModelDescription": "Represents a wind farm.", "assetModelProperties": [ { "name": "Code", "dataType": "INTEGER", "type": { "attribute": { "defaultValue": "300" } } }, { "name": "Location", "dataType": "STRING", "type": { "attribute": { "defaultValue": "Renton" } } }, { "name": "Reliability Manager", "dataType": "STRING", "type": { "attribute": { "defaultValue": "Mary Major" } } }, { "name": "Total Overdrive State Time", "dataType": "DOUBLE", "unit": "seconds", "type": { "metric": { "expression": "sum(overdrive_state_time)", "variables": [ { "name": "overdrive_state_time", "value": { "propertyId": "ID of Overdrive State Time property in Wind Turbine Asset Model", "hierarchyId": "Turbine Asset Model" } } ], "window": { "tumbling": { "interval": "5m" } } } } }, { "name": "Total Average Power", "dataType": "DOUBLE", "unit": "Watts", "type": { "metric": { "expression": "sum(turbine_avg_power)", "variables": [ { "name": "turbine_avg_power", "value": { "propertyId": "ID of Average Power property in Wind Turbine Asset Model", "hierarchyId": "Turbine Asset Model" } } ], "window": { "tumbling": { "interval": "5m" } } } } } ], "assetModelHierarchies": [ { "name": "Turbine Asset Model", "childAssetModelId": "ID of Wind Turbine Asset Model" } ] }