创建资产模型 - Amazon IoT SiteWise
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

创建资产模型

Amazon IoT SiteWise 资产模型推动您的工业数据实现标准化。资产模型包含名称、描述、资产属性和资产层次结构定义。例如,您可以使用温度、每分钟旋转次数 (RPM) 和功率属性来定义风力涡轮机模型。然后,可以使用净功率输出属性和风力涡轮机层次结构定义来定义风电场模型。

注意

我们建议您从最低级别的节点开始对运营进行建模。例如,在创建风电场模型之前创建风力涡轮机模型。资产层次结构定义包含对现有资产模型的引用。通过这种方法,您可以在创建模型时定义资产层次结构。

以下各节介绍了如何使用 Amazon IoT SiteWise 控制台或 API 创建资产模型,以及可用于创建模型的不同类型的资产属性和资产层次结构。

创建资产模型(控制台)

您可以使用 Amazon IoT SiteWise 控制台创建资产模型。Amazon IoT SiteWise 控制台提供多种功能(如公式自动完成),可帮助您定义有效的资产模型。

创建资产模型(控制台)

  1. 导航到 Amazon IoT SiteWise 控制台

  2. 在导航窗格中,选择 Models (模型)

  3. 选择 Create model (创建模型)

  4. Create model (创建模型) 页面上,执行以下操作:

    1. 为资产模型输入 Name (名称),例如 Wind TurbineWind Turbine Model。此名称对于您账户在此区域的所有模型都必须是唯一的。

    2. (可选)为模型添加 Attribute definitions (属性定义)。属性表示很少更改的信息。有关更多信息,请参阅定义静态数据(属性)

    3. (可选)为模型添加 Measurement definitions (测量值定义)。测量表示来自您设备的数据流。有关更多信息,请参阅定义来自设备的数据流(测量)

    4. (可选)为模型添加 Transform definitions (转换定义)。转换是将数据从一种形式映射到另一种形式的公式。有关更多信息,请参阅转换数据(转换)

    5. (可选)为模型添加 Metric definitions (指标定义)。度量是在时间间隔内聚合数据的公式。指标可以从关联资产中输入数据,这样您可以计算代表整个操作或部分操作的值。有关更多信息,请参阅聚合属性和其他资产中的数据(量度)

    6. (可选)为模型添加 Hierarchy definitions (层次结构定义)。层次结构是资产之间的关系。有关更多信息,请参阅定义资产之间的关系(层次结构)

    7. (可选)为资产模型添加标签。有关更多信息,请参阅给您的 Amazon IoT SiteWise 资源加标签

    8. 选择 Create model (创建模型)

    创建资产模型时,Amazon IoT SiteWise 控制台将导航到新模型的页面。在此页面上,您可以查看模型的 Status (状态),最初为 CREATING。此页面会自动更新,因此您可以等待模型的状态更新。

    注意

    复杂模型的资产模型创建流程最多可能需要几分钟时间。资产模型状态为ACTIVE,您可以使用资产模型创建资产。有关更多信息,请参阅资产和模型状态

创建资产模型 (CLI)

您可以使用 Amazon Command Line Interface (Amazon CLI) 创建资产模型。

使用CreateAssetModel操作创建具有属性和层次结构的资产模型。此操作需要具有以下结构的负载。

{ "assetModelName": "String", "assetModelDescription": "String", "assetModelProperties": Array of AssetModelProperty, "assetModelHierarchies": Array of AssetModelHierarchyDefinition }

创建资产模型 (CLI)

  1. 创建一个名为 asset-model-payload.json 的文件,然后将以下 JSON 对象复制到该文件中。

    { "assetModelName": "", "assetModelDescription": "", "assetModelProperties": [ ], "assetModelHierarchies": [ ], "assetModelCompositeModels": [ ] }
  2. 使用首选的 JSON 文本编辑器编辑 asset-model-payload.json 文件的以下内容:

    1. 输入资产模型的名称 (assetModelName),如 Wind TurbineWind Turbine Model。此名称对于您账户在此区域的所有模型都必须是唯一的。

    2. (可选)输入资产模型的说明 (assetModelDescription),或删除 assetModelDescription 键/值对。

    3. (可选)定义模型的资产属性 (assetModelProperties)。有关更多信息,请参阅定义数据属性

    4. (可选)定义模型的资产层次结构 (assetModelHierarchies)。有关更多信息,请参阅定义资产之间的关系(层次结构)

    5. (可选)为资产模型添加标签 (tags)。有关更多信息,请参阅给您的 Amazon 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 后,您可以使用资产模型创建资产。有关更多信息,请参阅资产和模型状态

资产模型示例

本节包含示例资产模型定义,可用于使用 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 演示

此资产模型依赖于风力涡轮机资产模型。将 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 Average Power 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 Overdrive State Time 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" } ] }