

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# でアセットモデルを作成する AWS IoT SiteWise
<a name="create-asset-models"></a>

AWS IoT SiteWise アセットモデルは、産業データの標準化を促進します。アセットモデルには、名前、説明、アセットプロパティ、およびアセット階層定義が含まれます。たとえば、気温、1 分あたりの回転数 (RPM) 、および電力特性を使用して風力タービンモデルを定義できます。次に、正味電力出力特性と風力タービンの階層定義を使用して、風力発電所モデルを定義できます。

**注記**  
最下位レベルのノードから業務をモデル化することをお勧めします。たとえば、風力発電所モデルを作成する前に、風力タービンモデルを作成します。アセット階層定義には、既存のアセットモデルへの参照が含まれます。この方法により、モデルの作成時にアセット階層を定義できます。
アセットモデルに他のアセットモデルを含めることはできません。別のモデル内でサブアセンブリとして参照できるモデルを定義する必要がある場合は、代わりにコンポーネント-->モデルを作成する必要があります。詳細については、「[コンポーネントモデルを作成する](create-component-models.md)」を参照してください。

以下のセクションでは、 AWS IoT SiteWise コンソールまたは API を使用してアセットモデルを作成する方法について説明します。次のセクションでは、モデルの作成に使用できるさまざまなタイプのアセットプロパティとアセット階層についても説明します。

**Topics**
+ [アセットモデルを作成する (コンソール)](#create-asset-model-console)
+ [アセットモデルを作成する (AWS CLI)](#create-asset-model-cli)
+ [アセットモデルの例](#asset-model-examples)
+ [アセットモデルの階層を定義する](define-asset-hierarchies.md)

## アセットモデルを作成する (コンソール)
<a name="create-asset-model-console"></a>

 AWS IoT SiteWise コンソールを使用してアセットモデルを作成できます。 AWS IoT SiteWise コンソールには、数式の自動補完など、有効なアセットモデルの定義に役立つさまざまな機能が用意されています。

**アセットモデルを作成するには (コンソール)**

1. <a name="sitewise-open-console"></a>[AWS IoT SiteWise コンソール](https://console.aws.amazon.com/iotsitewise/)に移動します。

1. <a name="sitewise-choose-models"></a>ナビゲーションペインで、[**モデル**] を選択します。

1. **アセットモデルの作成** を選択します。

1. [**モデルの作成**] ページで、次の操作を行います。

   1. アセットモデルの [**名前**] を入力します (**Wind Turbine** または **Wind Turbine Model** など)。この名前は、このリージョンのアカウントのすべてのモデルで一意である必要があります。

   1. (オプション) モデルの**外部 ID** を追加します。これはユーザー定義 ID です。詳細については、AWS IoT SiteWise  ユーザーガイドの [外部 ID を持つリファレンスオブジェクト](object-ids.md#external-id-references)を参照してください。

   1. (オプション) モデルの [**測定の定義**] を追加します。測定値は、機器からのデータストリームを表します。詳細については、「[機器からのデータストリームを定義する (測定値)](measurements.md)」を参照してください。

   1. (オプション) モデルの [**定義を変換する**] を追加します。変換とは、あるフォームから別のフォームにデータをマッピングするための数式です。詳細については、「[データを変換する (変換)](transforms.md)」を参照してください。

   1. (オプション) モデルの [**メトリクスの定義**] を追加します。メトリクスとは、時間間隔でのデータを集計する数式です。メトリクスは、関連するアセットからデータを入力できるため、オペレーションまたはオペレーションのサブセットを表す値をコンピューティングすることができます。詳細については、「[プロパティおよびその他のアセットからのデータを集計する (メトリクス)](metrics.md)」を参照してください。

   1. (オプション) モデルの [**階層の定義**] を追加します。階層とは、アセット間の関係です。詳細については、「[アセットモデルの階層を定義する](define-asset-hierarchies.md)」を参照してください。

   1. (オプション) アセットモデルのタグを追加します。詳細については、「[AWS IoT SiteWise リソースにタグを付ける](tag-resources.md)」を参照してください。

   1. **[モデルの作成]** を選択します。

   アセットモデルを作成すると、 AWS IoT SiteWise コンソールは新しいモデルのページに移動します。このページで、モデルの [**ステータス**] が表示されます。このステータスは、最初は [**作成中**] です。このページは自動的に更新されるため、モデルのステータスが更新されるまで待つことができます。
**注記**  
複雑なモデルの場合は、アセットモデルの作成プロセスに数分かかることがあります。アセットモデルの状態が**[ACTIVE]** (アクティブ) になると、アセットモデルを使用してアセットを作成できるようになります。詳細については、「[アセットおよびモデルの状態](asset-and-model-states.md)」を参照してください。

1. (オプション) アセットモデルを作成したら、アセットモデルをエッジに設定することができます。SiteWise Edge の詳細については、「[AWS IoT SiteWise Edge でエッジ機能を設定する](edge-data-collection-and-processing.md)」を参照してください。

   1. モデルページで、**[Configure for Edge]** (エッジの設定) を選択します。
**注記**  
データ処理パック (DPP) 機能は、新規顧客には利用できなくなりました。既存のお客様は、通常どおりサービスを引き続き使用できます。詳細については、[「Data processing pack availability change](https://docs.aws.amazon.com/iot-sitewise/latest/appguide/iotsitewise-dpp-availability-change.html)」を参照してください。

   1. モデル設定ページで、モデルのエッジ設定を選択します。これにより、 がこのアセットモデルに関連付けられたプロパティを計算して保存 AWS IoT SiteWise できる場所が制御されます。エッジ用のモデルの設定については、[SiteWise Edge で OPC UA ソースを設定する](configure-opcua-source.md) を参照してください。

   1. **カスタムエッジ設定**で、各アセットモデルプロパティ AWS IoT SiteWise を計算して保存する場所を選択します。
**注記**  
関連する変換とメトリクスは、同じ場所に設定されている必要があります。エッジ用のモデルの設定については、[SiteWise Edge で OPC UA ソースを設定する](configure-opcua-source.md) を参照してください。

   1. **[保存]** を選択します。モデルページで、**[Edge configuration]** (Edgeの設定) が**[Configured]** (設定済み) になっていることを確認します。

## アセットモデルを作成する (AWS CLI)
<a name="create-asset-model-cli"></a>

 AWS Command Line Interface (AWS CLI) を使用してアセットモデルを作成できます。

[CreateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html) オペレーションを使用して、プロパティと階層を持つアセットモデルを作成します。このオペレーションでは、次の構造を持つペイロードが必要です。

```
{
  "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": [
   
     ]
   }
   ```

1. 任意の JSON テキストエディタを使用して、以下の `asset-model-payload.json` ファイルを編集します。

   1. アセットモデルの名前 (`assetModelName`) を入力します (**Wind Turbine** または **Wind Turbine Model** など)。この名前は、この AWS リージョンのアカウントのすべてのアセットモデルとコンポーネントモデルで一意である必要があります。

   1. (オプション) アセットモデルの外部 ID (`assetModelExternalId`) を入力します。これはユーザー定義 ID です。詳細については、AWS IoT SiteWise  ユーザーガイドの [外部 ID を持つリファレンスオブジェクト](object-ids.md#external-id-references)を参照してください。

   1. (オプション) アセットモデルの説明 (`assetModelDescription`) を入力するか、`assetModelDescription` キーと値のペアを削除します。

   1. (オプション) モデルのアセットプロパティ (`assetModelProperties`) を定義します。詳細については、「[データのプロパティを定義する](asset-properties.md)」を参照してください。

   1. (オプション) モデルのアセット階層 (`assetModelHierarchies`) を定義します。詳細については、「[アセットモデルの階層を定義する](define-asset-hierarchies.md)」を参照してください。

   1. (オプション) モデルのアラームを定義します。アラームは、他のプロパティをモニタリングし、機器やプロセスに注意が必要な時期を特定することができます。各アラーム定義は、アラームが使用する一連のプロパティを標準化した複合モデル (`assetModelCompositeModels`) である。詳細については、「[でアラームを使用してデータをモニタリングする AWS IoT SiteWise](industrial-alarms.md)」および「[でアセットモデルにアラームを定義する AWS IoT SiteWise](define-alarms.md)」を参照してください。

   1. (オプション) アセットモデルのタグ (`tags`) を追加します。詳細については、「[AWS IoT SiteWise リソースにタグを付ける](tag-resources.md)」を参照してください。

1. 次のコマンドを実行して、JSON ファイルの定義からアセットモデルを作成します。

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

   このオペレーションは、アセットを作成するときに参照する `assetModelId` を含むレスポンスを返します。レスポンスには、モデルの状態 (`assetModelStatus.state`) も含まれます。これは、最初は `CREATING` です。アセットモデルのステータスは、変更が反映されるまで `CREATING` です。
**注記**  
複雑なモデルの場合は、アセットモデルの作成プロセスに数分かかることがあります。アセットモデルの現在の状態をチェックするには、`assetModelId` を指定して [DescribeAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeAssetModel.html) オペレーションを使用します。アセットモデルのステータスが `ACTIVE` になったら、アセットモデルを使用してアセットを作成できます。詳細については、「[アセットおよびモデルの状態](asset-and-model-states.md)」を参照してください。

1. (オプション) アセットモデルのカスタム複合モデルを作成します。カスタム複合モデルでは、モデル内のプロパティをグループ化したり、コンポーネントモデルを参照してサブアセンブリを含めたりすることができます。詳細については、「[カスタム複合モデルを作成する (コンポーネント)](create-custom-composite-models.md)」を参照してください。

## アセットモデルの例
<a name="asset-model-examples"></a>

このセクションでは、 AWS CLI および AWS IoT SiteWise SDKs でアセットモデルを作成するために使用できるアセットモデル定義の例を示します。これらのアセットモデルは、風力タービンと風力発電所を表しています。風力タービンは、センサーの生データを取り込み、電力や平均風速などの値を算出する。風力発電アセットでは、風力発電所内のすべての風車の総電力量などを算出します。

**Topics**
+ [風力タービンアセットモデル](#example-wind-turbine)
+ [風力発電所アセットモデル](#example-wind-farm)

### 風力タービンアセットモデル
<a name="example-wind-turbine"></a>

次のアセットモデルは、風力発電所のタービンを表しています。風力タービンはセンサーのデータを取り込み、電力や平均風速などの値を算出する。

**注記**  
このサンプルモデルは、 AWS IoT SiteWise デモの風力タービンモデルに似ています。詳細については、「[AWS IoT SiteWise デモを使用する](getting-started-demo.md)」を参照してください。

```
{
  "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": []
}
```

### 風力発電所アセットモデル
<a name="example-wind-farm"></a>

次のアセットモデルは、複数の風力タービンで構成される風力発電所を表しています。このアセットモデルは、風力タービンモデルへの[[hierarchy]](define-asset-hierarchies.md) (階層) を定義しています。これにより、風力発電所内のすべての風力タービンのデータから数値 (平均出力など) を算出することができる。

**注記**  
このサンプルモデルは、 AWS IoT SiteWise デモの風力発電所モデルに似ています。詳細については、「[AWS IoT SiteWise デモを使用する](getting-started-demo.md)」を参照してください。

このアセットモデルは、[風力タービンアセットモデル](#example-wind-turbine) によって異なります。`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"
    }
  ]
}
```

# アセットモデルの階層を定義する
<a name="define-asset-hierarchies"></a>

アセットモデル階層を定義することで、産業オペレーションにおけるアセットモデル間の論理的な関連付けを作成することができます。例えば、陸上風力発電所と洋上風力発電所からなる風力発電所を定義することができます。陸上風力発電所には、タービンと陸上の場所が含まれます。洋上風力発電所には、タービンと沖合の場所が含まれます。

![\[AWS IoT SiteWise アセットモデル間の風力発電所の階層。\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/images/asset-model-hierarchies.png)


子アセットモデルを親アセットモデルに階層的に関連付けると、親アセットモデルのメトリクスは子アセットモデルのメトリクスからデータを入力できるようになります。アセットモデル階層とメトリクスを使用して、オペレーションまたはオペレーションのサブセットに関するインサイトを提供する統計情報をコンピューティングできます。詳細については、「[プロパティおよびその他のアセットからのデータを集計する (メトリクス)](metrics.md)」を参照してください。

各階層は、親アセットモデルと子アセットモデルの関係を定義します。親アセットモデルでは、同じ子アセットモデルに対して複数の階層を定義することができます。例えば、風力発電所に2種類の風力タービンがあり、すべての風力タービンが同じアセットモデルで表現されている場合、それぞれの種類に階層を定義することができます。そして、風力発電所のモデルで指標を定義し、風力タービンの種類ごとに独立した統計量と複合的な統計量をコンピューティングすることができます。

親アセットモデルには、複数の子アセットモデルを関連付けることができます。例えば、陸上風力発電所と洋上風力発電所が2つの異なるアセットモデルで表現されている場合、これらのアセットモデルを同じ親風力発電所アセットモデルに関連付けることができます。

また、子アセットモデルは、複数の親アセットモデルと関連付けることができます。例えば、2種類の風力発電所があり、すべての風力タービンが同じアセットモデルで表現されている場合、風力タービンアセットモデルと異なる風力発電所アセットモデルを関連付けることができます。

**注記**  
アセットモデル階層を定義する場合、子アセットモデルは `ACTIVE` であるか、以前の `ACTIVE` バージョンである必要があります。詳細については、「[アセットおよびモデルの状態](asset-and-model-states.md)」を参照してください。

階層アセットモデルを定義してアセットを作成したら、アセットを関連付けて親子関係を完了できます。詳細については、「[でアセットモデルのアセットを作成する AWS IoT SiteWise](create-assets.md)」および「[アセットの関連付けと関連付け解除](add-associated-assets.md)」を参照してください。

**Topics**
+ [アセットモデル階層を定義する (コンソール)](#define-asset-hierarchies-console)
+ [アセット階層を定義する (AWS CLI)](#define-asset-hierarchies-cli)

## アセットモデル階層を定義する (コンソール)
<a name="define-asset-hierarchies-console"></a>

 AWS IoT SiteWise コンソールでアセットモデルの階層を定義するときは、次のパラメータを指定します。
+ **[Hierarchy name]** (階層名) - 階層の名前 (**Wind Turbines** など)。
+ **[Hierarchy model]** (階層モデル) - 子アセットモデル。
+ **階層外部 ID** (オプション) – これはユーザー定義 ID です。詳細については、AWS IoT SiteWise  ユーザーガイドの [外部 ID を持つリファレンスオブジェクト](object-ids.md#external-id-references)を参照してください。

詳細については、「[アセットモデルを作成する (コンソール)](create-asset-models.md#create-asset-model-console)」を参照してください。

## アセット階層を定義する (AWS CLI)
<a name="define-asset-hierarchies-cli"></a>

 AWS IoT SiteWise API を使用してアセットモデルの階層を定義する場合は、次のパラメータを指定します。
+ `name` 階層の名前 ( など)。**Wind Turbines**
+ `childAssetModelId` - 階層の子アセットモデルの ID または外部 ID。[ListAssetModels](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ListAssetModels.html) オペレーションを使用して、既存のアセットモデルの ID を検索できます。

**Example 階層定義の例**  
次の例は、風力発電所の風力タービンとの関係を表すアセットモデル階層を示しています。このオブジェクトは、[AssetModelHierarchy](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_AssetModelHierarchy.html) の例です。詳細については、「[アセットモデルを作成する (AWS CLI)](create-asset-models.md#create-asset-model-cli)」を参照してください。  

```
{
  ...
  "assetModelHierarchies": [
    {
      "name": "Wind Turbines",
      "childAssetModelId": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE"
    },
  ]
}
```