本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建资产模型
Amazon IoT SiteWise 资产模型推动您的工业数据实现标准化。资产模型包含名称、描述、资产属性和资产层次结构定义。例如,您可以使用温度、每分钟旋转次数 (RPM) 和功率属性来定义风力涡轮机模型。然后,可以使用净功率输出属性和风力涡轮机层次结构定义来定义风电场模型。
注意
我们建议您从最低级别的节点开始对运营进行建模。例如,在创建风电场模型之前创建风力涡轮机模型。资产层次结构定义包含对现有资产模型的引用。通过这种方法,您可以在创建模型时定义资产层次结构。
以下各节介绍了如何使用 Amazon IoT SiteWise 控制台或 API 创建资产模型,以及可用于创建模型的不同类型的资产属性和资产层次结构。
创建资产模型(控制台)
您可以使用 Amazon IoT SiteWise 控制台创建资产模型。这个Amazon IoT SiteWise控制台提供各种功能,例如公式自动完成,可以帮助您定义有效的资产模型。
创建资产模型(控制台)
在导航窗格中,选择 Models (模型)。
-
选择 Create model (创建模型)。
-
在 Create model (创建模型) 页面上,执行以下操作:
-
为资产模型输入 Name (名称),例如
Wind Turbine
或Wind Turbine Model
。此名称对于您账户在此区域的所有模型都必须是唯一的。 -
(可选)为模型添加 Attribute definitions (属性定义)。属性表示很少更改的信息。有关更多信息,请参阅定义静态数据(属性):
-
(可选)为模型添加 Measurement definitions (测量值定义)。测量值代表来自您的设备的数据流。有关更多信息,请参阅定义来自设备的数据流(测量):
-
(可选)为模型添加 Transform definitions (转换定义)。转换是将数据从一种形式映射到另一种表单的公式。有关更多信息,请参阅转换数据(转换):
-
(可选)为模型添加 Metric definitions (指标定义)。指标是按时间间隔聚合数据的公式。指标可以从关联资产中输入数据,这样您就可以计算出代表您的操作或操作子集的值。有关更多信息,请参阅汇总来自财产和其他资产(指标)的数据:
-
(可选)为模型添加 Hierarchy definitions (层次结构定义)。层次结构是资产之间的关系。有关更多信息,请参阅定义资产模型(层次结构)之间的关系:
-
(可选)为资产模型添加标签。有关更多信息,请参阅给您的 Amazon IoT SiteWise 资源加标签:
-
选择 Create model (创建模型)。
创建资产模型时,Amazon IoT SiteWise 控制台将导航到新模型的页面。在此页面上,您可以查看模型的 Status (状态),最初为 CREATING。此页面会自动更新,因此您可以等待模型的状态更新。
注意
复杂模型的资产模型创建流程最多可能需要几分钟时间。在资产模型状态为之后活跃,您可以使用资产模型来创建资产。有关更多信息,请参阅资产和模型状态:
-
创建资产模型 (CLI)
您可以使用 Amazon Command Line Interface (Amazon CLI) 创建资产模型。
使用 CreateAssetModel 操作创建具有属性和层次结构的资产模型。此操作需要具有以下结构的负载。
{ "assetModelName": "
String
", "assetModelDescription": "String
", "assetModelProperties":Array of AssetModelProperty
, "assetModelHierarchies":Array of AssetModelHierarchyDefinition
}
创建资产模型 (CLI)
-
创建一个名为
asset-model-payload.json
的文件,然后将以下 JSON 对象复制到该文件中。{ "assetModelName": "", "assetModelDescription": "", "assetModelProperties": [ ], "assetModelHierarchies": [ ], "assetModelCompositeModels": [ ] }
-
使用首选的 JSON 文本编辑器编辑
asset-model-payload.json
文件的以下内容:-
输入资产模型的名称 (
assetModelName
),如Wind Turbine
或Wind Turbine Model
。此名称对于您账户在此区域的所有模型都必须是唯一的。 -
(可选)输入资产模型的说明 (
assetModelDescription
),或删除assetModelDescription
键/值对。 -
(可选)定义模型的资产属性 (
assetModelProperties
)。有关更多信息,请参阅定义数据属性: -
(可选)定义模型的资产层次结构 (
assetModelHierarchies
)。有关更多信息,请参阅定义资产模型(层次结构)之间的关系: -
(可选)为资产模型添加标签 (
tags
)。有关更多信息,请参阅给您的 Amazon IoT SiteWise 资源加标签:
-
-
运行以下命令,根据 JSON 文件中的定义创建资产模型。
aws iotsitewise create-asset-model --cli-input-json file://asset-model-payload.json
此操作将返回包含您在创建资产时引用的
assetModelId
的响应。响应中还包含模型的状态 (assetModelStatus.state
),最初为CREATING
。在传播更改之前,资产模型的状态为CREATING
。注意
复杂模型的资产模型创建流程最多可能需要几分钟时间。要检查资产模型的当前状态,请使用DescribeAssetModel通过指定进行操作
assetModelId
。在资产模型状态为ACTIVE
后,您可以使用资产模型创建资产。有关更多信息,请参阅资产和模型状态:
资产模型示例
本节包含示例资产模型定义,可用于使用 Amazon CLI 和 Amazon IoT SiteWise 软件开发工具包创建资产模型。这些资产模型代表风力涡轮机和风力发电场。风力涡轮机资产采集原始传感器数据并计算功率和平均风速等值。风力发电场资产计算值,例如风力发电场中所有风力涡轮机的总功率。
风力涡轮机资产模型
以下资产模型表示风电场中的涡轮机。风力涡轮机采集传感器数据来计算功率和平均风速等值。
注意
此示例模型类似于 Amazon IoT SiteWise 演示中的风力涡轮机模型。有关更多信息,请参阅使用 Amazon IoT SiteWise 演示:
{ "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": [] }
风电场资产模型
以下资产模型表示由多台风力涡轮机组成的风电场。此资产模型定义了等级制度到风力涡轮机模型。这使风力发电场能够根据风力发电场中所有风力涡轮机的数据计算值(例如平均功率)。
注意
此示例模型类似于 Amazon IoT SiteWise 演示中的风电场模型。有关更多信息,请参阅使用 Amazon IoT SiteWise 演示:
此资产模型依赖于风力涡轮机资产模型。将 propertyId
和 childAssetModelId
值替换为现有风力涡轮机资产模型中的对应值。
{ "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
" } ] }