本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
自訂複合模型 (零組件)
當您要為特別複雜的工業資產建模時,例如具有許多零件的複雜機械設備,保持資產模型井然有序且可維護可能成為一項挑戰。
在這種情況下,您可以將自訂複合模型或元件 (如果您使用主控台) 新增至現有的資產模型和元件模型。這些可協助您透過分組相關屬性和重複使用子元件定義來保持井然有序。
有兩種類型的自訂複合模型:
-
內嵌自訂複合模型定義了一組群組性質,這些屬性適用於自訂複合模型所屬的資產模型或元件模型。您可以使用它們來分組相關的屬性。它們由名稱、描述和一組資產模型性質組成。它們不可重複使用。
-
以元件模型為基礎的自訂複合模型參考您要包括在資產模型或元件模型中的元件模型。您可以使用它們將標準次組合包括在模型中。它們由名稱、描述以及其參照的元件模型的 ID 組成。它們沒有自己的性質;參考的元件模型會將其關聯的性質提供給任何建立的資產。
以下幾節說明如何在設計中使用自訂複合模型。
內嵌自訂複合模型
內嵌自訂複合模型提供透過群組相關性質來組織資產模型的方法。
例如,假設您要建立自動機制資產的模型。該機器人包含一伺服馬達、一電源供應器及一電池。這些構成零件中的每一個都有其自己的性質,您要包括在模型中。您可以定義名為具robot_model
有下列性質的資產模型。
|
但是,在某些情況下,可能會有許多次組合,或者次組合本身可能具有許多性質。在這些情況下,可能會有太多屬性,以至於在模型根目錄的單一平面清單中參考和維護變得麻煩,就像前面的範例一樣。
若要處理這種情況,您可以使用內嵌自訂複合模型來分組屬性。內嵌自訂複合模型是定義其本身屬性的自訂複合模型。例如,您可以如下所示建立機器人的模型。
|
在上述範例中,servo
powersupply
、和battery
是在robot_model
資產模型中定義的內嵌自訂複合模型的名稱。然後,每個複合模型都會定義其本身的性質。
注意
在這種情況下,每個自訂複合模型都會定義其自己的性質,以便所有性質都是資產模型本身的一部分 (robot_model
在本例中為)。這些屬性不會與任何其他資產模型或元件模型共用。例如,如果您創建了一些其他資產模型,該模型也具有調用的內聯自定義複合模型servo
,則對servo
內部進行更改robot_model
不會影響其他資產模型的servo
定義。
如果您要實作此類共用 (例如,只有一個伺服定義,所有資產模型都可以共用),您應該改為其建立元件模型,然後建立參考該伺服的以元件模型為基礎的複合模型。有關詳細信息,請參見以下部分。
如需如何建立內嵌自訂複合模型的資訊,請參閱建立自訂複合模型 (零組件)。
C omponent-model-based 自定義複合模型
您可以在中建立元件模型 AWS IoT SiteWise 來定義標準、可重複使用的次組合件。建立元件模型後,您可以在其他資產模型和元件模型中加入該元件模型的參照。您可以透過將component-model-based 自訂複合模型新增到要參照元件的任何模型中來執行此操作。您可以從多個模型或在同一模型中多次加入元件的參照。
如此一來,您就可以避免在模型間複製相同的定義。這也可以簡化模型的維護作業,因為您對元件模型所做的任何變更都會反映在使用該元件模型的所有資產模型中。
例如,假設您的工業安裝有許多類型的設備,這些設備都使用相同種類的伺服馬達。其中一些在單個設備中具有許多伺服電機。您可以為每個設備類型建立資產模型,但不想servo
每次都複製的定義。您只想建模一次,然後在各種資產模型中使用它。如果您稍後變更的定義servo
,則會在所有模型和資產中更新該定義。
若要以上範例中的自動機制模型,您可以將伺服馬達、電源供應器和電池定義為元件模型,如下所示。
|
|
|
然後,您可以定義參考這些元件的資產模型robot_model
,例如。多個資產模型可以參考相同的元件模型。您也可以在一個資產模型中多次參照相同的元件模型,例如您的機器人中是否有多個伺服馬達。
|
如需有關如何建立元件模型的資訊,請參閱建立元件模型。
如需有關如何在其他模型中參考元件模型的資訊,請參閱建立自訂複合模型 (零組件)。
使用路徑參考自訂複合模型性質
在資產模型、元件模型或自訂複合模型上建立性質時,您可以從其他使用其值的屬性 (例如轉換和量度) 參考該性質。
AWS IoT SiteWise 為您提供了不同的方式來引用您的財產。最簡單的方法通常是使用其屬性 ID。但是,如果您要參照的屬性位於自訂複合模型上,您可能會發現透過路徑參考它更有用。
路徑是一系列路徑區段的順序,根據其在資產模型和複合模型中巢狀複合模型中的位置來指定性質。
取得屬性路徑
您可以從屬性path
欄位取得AssetModel屬性的路徑。
例如,假設您有包含具有性質的自訂複合模型servo
的資產模型position
。robot_model
如果你調用 DescribeAssetModelCompositeModel onservo
,那麼position
屬性將列出一個如下所示的path
字段:
"path": [ { "id": "
asset model ID
", "name": "robot_model" }, { "id": "composite model ID
", "name": "servo" }, { "id": "property ID
", "name": "position" } ]
使用屬性路徑
當您定義參照其他屬性 (例如轉換或量度) 的屬性時,您可以使用屬性路徑。
屬性會使用變數來參考另一個屬性。如需使用變數的更多資訊,請參閱在公式運算式中使用變數。
當您定義參照屬性的變數時,您可以使用屬性的 ID 或其路徑。
若要定義使用參考屬性路徑的變數,請指定其值的propertyPath
欄位。
例如,要定義具有使用路徑引用屬性的度量的資產模型,您可以將這樣的有效負載傳遞給 CreateAssetModel:
{
...
"assetModelProperties": [ {...
"type": { "metric": {...
"variables": [ { "name": "variable name
", "value": { "propertyPath": [path segments
] } } ],...
} },...
},...
],...
}