メタデータのインポートの例 - AWS IoT SiteWise

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

メタデータのインポートの例

このセクションでは、メタデータファイルを作成して、1 回の一括インポートオペレーションでアセットモデルとアセットをインポートする方法を示します。

一括インポートの例

1 回の一括インポート操作で、多くのアセットモデルとアセットをインポートできます。次の例は、メタデータファイルを作成してこれを行う方法を示しています。

このシナリオ例では、作業セルに産業用ロボットを含むさまざまな作業サイトがあります。

この例では、次の 2 つのアセットモデルを定義します。

  • RobotModel1: このアセットモデルは、作業サイトにある特定のタイプのロボットを表します。ロボットには測定プロパティ がありますTemperature

  • WorkCell: このアセットモデルは、いずれかの作業サイト内のロボットのコレクションを表します。アセットモデルは、作業セルrobotHierarchyOEM1にロボットが含まれている関係を表す階層 を定義します。

この例では、いくつかのアセットも定義しています。

  • WorkCell1: ボストンサイト内のワークセル

  • RobotArm123456: その作業セル内のロボット

  • RobotArm987654: その作業セル内の別のロボット

次の JSON メタデータファイルは、これらのアセットモデルとアセットを定義します。このメタデータを使用して一括インポートを実行すると AWS IoT SiteWise、階層関係を含むアセットモデルとアセットが 内に作成されます。

{ "assetModels": [ { "assetModelExternalId": "Robot.OEM1.3536", "assetModelName": "RobotModel1", "assetModelProperties": [ { "dataType": "DOUBLE", "externalId": "Temperature", "name": "Temperature", "type": { "measurement": { "processingConfig": { "forwardingConfig": { "state": "ENABLED" } } } }, "unit": "fahrenheit" } ] }, { "assetModelExternalId": "ISA95.WorkCell", "assetModelName": "WorkCell", "assetModelProperties": [], "assetModelHierarchies": [ { "externalId": "workCellHierarchyWithOEM1Robot", "name": "robotHierarchyOEM1", "childAssetModelExternalId": "Robot.OEM1.3536" } ] } ], "assets": [ { "assetExternalId": "Robot.OEM1.3536.123456", "assetName": "RobotArm123456", "assetModelExternalId": "Robot.OEM1.3536" }, { "assetExternalId": "Robot.OEM1.3536.987654", "assetName": "RobotArm987654", "assetModelExternalId": "Robot.OEM1.3536" }, { "assetExternalId": "BostonSite.Area1.Line1.WorkCell1", "assetName": "WorkCell1", "assetModelExternalId": "ISA95.WorkCell", "assetHierarchies": [ { "externalId": "workCellHierarchyWithOEM1Robot", "childAssetExternalId": "Robot.OEM1.3536.123456" }, { "externalId": "workCellHierarchyWithOEM1Robot", "childAssetExternalId": "Robot.OEM1.3536.987654" } ] } ] }

モデルとアセットの初期オンボーディングの例

このシナリオ例では、企業内に産業用ロボットを含むさまざまな作業サイトがあります。

この例では、複数のアセットモデルを定義します。

  • Sample_Enterprise – このアセットモデルは、サイトが属する会社を表します。アセットモデルは、サイトとエンタープライズの関係Enterprise to Siteを表す階層 を定義します。

  • Sample_Site – このアセットモデルは、社内の製造サイトを表します。アセットモデルでは、階層 を定義してSite to Line、サイトへの線の関係を表します。

  • Sample_Welding Line – このアセットモデルは、作業サイト内のアセンブリラインを表します。アセットモデルは、ロボットとラインとの関係Line to Robotを表す階層 を定義します。

  • Sample_Welding Robot – このアセットモデルは、作業現場の特定のタイプのロボットを表します。

この例では、アセットモデルに基づいてアセットも定義します。

  • Sample_AnyCompany Motor – このアセットはSample_Enterpriseアセットモデルから作成されます。

  • Sample_Chicago – このアセットはSample_Siteアセットモデルから作成されます。

  • Sample_Welding Line 1 – このアセットはSample_Welding Lineアセットモデルから作成されます。

  • Sample_Welding Robot 1 – このアセットはSample_Welding Robotアセットモデルから作成されます。

  • Sample_Welding Robot 2 – このアセットはSample_Welding Robotアセットモデルから作成されます。

次の JSON メタデータファイルは、これらのアセットモデルとアセットを定義します。このメタデータを使用して一括インポートを実行すると AWS IoT SiteWise、階層関係を含むアセットモデルとアセットが 内に作成されます。

{ "assetModels": [ { "assetModelExternalId": "External_Id_Welding_Robot", "assetModelName": "Sample_Welding Robot", "assetModelProperties": [ { "dataType": "STRING", "externalId": "External_Id_Welding_Robot_Serial_Number", "name": "Serial Number", "type": { "attribute": { "defaultValue": "-" } }, "unit": "-" }, { "dataType": "DOUBLE", "externalId": "External_Id_Welding_Robot_Cycle_Count", "name": "CycleCount", "type": { "measurement": {} }, "unit": "EA" }, { "dataType": "DOUBLE", "externalId": "External_Id_Welding_Robot_Joint_1_Current", "name": "Joint 1 Current", "type": { "measurement": {} }, "unit": "Amps" }, { "dataType": "DOUBLE", "externalId": "External_Id_Welding_Robot_Joint_1_Max_Current", "name": "Max Joint 1 Current", "type": { "metric": { "expression": "max(joint1current)", "variables": [ { "name": "joint1current", "value": { "propertyExternalId": "External_Id_Welding_Robot_Joint_1_Current" } } ], "window": { "tumbling": { "interval": "5m" } } } }, "unit": "Amps" } ] }, { "assetModelExternalId": "External_Id_Welding_Line", "assetModelName": "Sample_Welding Line", "assetModelProperties": [ { "dataType": "DOUBLE", "externalId": "External_Id_Welding_Line_Availability", "name": "Availability", "type": { "measurement": {} }, "unit": "%" } ], "assetModelHierarchies": [ { "externalId": "External_Id_Welding_Line_TO_Robot", "name": "Line to Robot", "childAssetModelExternalId": "External_Id_Welding_Robot" } ] }, { "assetModelExternalId": "External_Id_Site", "assetModelName": "Sample_Site", "assetModelProperties": [ { "dataType": "STRING", "externalId": "External_Id_Site_Street_Address", "name": "Street Address", "type": { "attribute": { "defaultValue": "-" } }, "unit": "-" } ], "assetModelHierarchies": [ { "externalId": "External_Id_Site_TO_Line", "name": "Site to Line", "childAssetModelExternalId": "External_Id_Welding_Line" } ] }, { "assetModelExternalId": "External_Id_Enterprise", "assetModelName": "Sample_Enterprise", "assetModelProperties": [ { "dataType": "STRING", "name": "Company Name", "externalId": "External_Id_Enterprise_Company_Name", "type": { "attribute": { "defaultValue": "-" } }, "unit": "-" } ], "assetModelHierarchies": [ { "externalId": "External_Id_Enterprise_TO_Site", "name": "Enterprise to Site", "childAssetModelExternalId": "External_Id_Site" } ] } ], "assets": [ { "assetExternalId": "External_Id_Welding_Robot_1", "assetName": "Sample_Welding Robot 1", "assetModelExternalId": "External_Id_Welding_Robot", "assetProperties": [ { "externalId": "External_Id_Welding_Robot_Serial_Number", "attributeValue": "S1000" }, { "externalId": "External_Id_Welding_Robot_Cycle_Count", "alias": "AnyCompany/Chicago/Welding Line/S1000/Count" }, { "externalId": "External_Id_Welding_Robot_Joint_1_Current", "alias": "AnyCompany/Chicago/Welding Line/S1000/1/Current" } ] }, { "assetExternalId": "External_Id_Welding_Robot_2", "assetName": "Sample_Welding Robot 2", "assetModelExternalId": "External_Id_Welding_Robot", "assetProperties": [ { "externalId": "External_Id_Welding_Robot_Serial_Number", "attributeValue": "S2000" }, { "externalId": "External_Id_Welding_Robot_Cycle_Count", "alias": "AnyCompany/Chicago/Welding Line/S2000/Count" }, { "externalId": "External_Id_Welding_Robot_Joint_1_Current", "alias": "AnyCompany/Chicago/Welding Line/S2000/1/Current" } ] }, { "assetExternalId": "External_Id_Welding_Line_1", "assetName": "Sample_Welding Line 1", "assetModelExternalId": "External_Id_Welding_Line", "assetProperties": [ { "externalId": "External_Id_Welding_Line_Availability", "alias": "AnyCompany/Chicago/Welding Line/Availability" } ], "assetHierarchies": [ { "externalId": "External_Id_Welding_Line_TO_Robot", "childAssetExternalId": "External_Id_Welding_Robot_1" }, { "externalId": "External_Id_Welding_Line_TO_Robot", "childAssetExternalId": "External_Id_Welding_Robot_2" } ] }, { "assetExternalId": "External_Id_Site_Chicago", "assetName": "Sample_Chicago", "assetModelExternalId": "External_Id_Site", "assetHierarchies": [ { "externalId": "External_Id_Site_TO_Line", "childAssetExternalId": "External_Id_Welding_Line_1" } ] }, { "assetExternalId": "External_Id_Enterprise_AnyCompany", "assetName": "Sample_AnyEnterprise Motor", "assetModelExternalId": "External_Id_Enterprise", "assetHierarchies": [ { "externalId": "External_Id_Enterprise_TO_Site", "childAssetExternalId": "External_Id_Site_Chicago" } ] } ] }

次のスクリーンショットは、前のコード例を実行 AWS IoT SiteWise コンソール した後に に表示されるモデルのスクリーンショットです。

AWS IoT SiteWise アセットモデルとアセットモデルを持つ モデル。

次のスクリーンショットは、前のコード例を実行 AWS IoT SiteWise コンソール した後に に表示されるモデル、アセット、階層を示しています。

AWS IoT SiteWise アセット、アセットモデル、階層を含む モデル。

追加アセットのオンボーディングの例

この例では、アカウント内の既存のアセットモデルにインポートする追加のアセットを定義します。

  • Sample_Welding Line 2 – このアセットはSample_Welding Lineアセットモデルから作成されます。

  • Sample_Welding Robot 3– このアセットはSample_Welding Robotアセットモデルから作成されます。

  • Sample_Welding Robot 4– このアセットはSample_Welding Robotアセットモデルから作成されます。

この例の初期アセットを作成するには、「」を参照してくださいモデルとアセットの初期オンボーディングの例

次の JSON メタデータファイルは、これらのアセットモデルとアセットを定義します。このメタデータを使用して一括インポートを実行すると AWS IoT SiteWise、階層関係を含むアセットモデルとアセットが 内に作成されます。

{ "assets": [ { "assetExternalId": "External_Id_Welding_Robot_3", "assetName": "Sample_Welding Robot 3", "assetModelExternalId": "External_Id_Welding_Robot", "assetProperties": [ { "externalId": "External_Id_Welding_Robot_Serial_Number", "attributeValue": "S3000" }, { "externalId": "External_Id_Welding_Robot_Cycle_Count", "alias": "AnyCompany/Chicago/Welding Line/S3000/Count" }, { "externalId": "External_Id_Welding_Robot_Joint_1_Current", "alias": "AnyCompany/Chicago/Welding Line/S3000/1/Current" } ] }, { "assetExternalId": "External_Id_Welding_Robot_4", "assetName": "Sample_Welding Robot 4", "assetModelExternalId": "External_Id_Welding_Robot", "assetProperties": [ { "externalId": "External_Id_Welding_Robot_Serial_Number", "attributeValue": "S4000" }, { "externalId": "External_Id_Welding_Robot_Cycle_Count", "alias": "AnyCompany/Chicago/Welding Line/S4000/Count" }, { "externalId": "External_Id_Welding_Robot_Joint_1_Current", "alias": "AnyCompany/Chicago/Welding Line/S4000/1/Current" } ] }, { "assetExternalId": "External_Id_Welding_Line_1", "assetName": "Sample_Welding Line 1", "assetModelExternalId": "External_Id_Welding_Line", "assetHierarchies": [ { "externalId": "External_Id_Welding_Line_TO_Robot", "childAssetExternalId": "External_Id_Welding_Robot_1" }, { "externalId": "External_Id_Welding_Line_TO_Robot", "childAssetExternalId": "External_Id_Welding_Robot_2" }, { "externalId": "External_Id_Welding_Line_TO_Robot", "childAssetExternalId": "External_Id_Welding_Robot_3" } ] }, { "assetExternalId": "External_Id_Welding_Line_2", "assetName": "Sample_Welding Line 2", "assetModelExternalId": "External_Id_Welding_Line", "assetHierarchies": [ { "externalId": "External_Id_Welding_Line_TO_Robot", "childAssetExternalId": "External_Id_Welding_Robot_4" } ] }, { "assetExternalId": "External_Id_Site_Chicago", "assetName": "Sample_Chicago", "assetModelExternalId": "External_Id_Site", "assetHierarchies": [ { "externalId": "External_Id_Site_TO_Line", "childAssetExternalId": "External_Id_Welding_Line_1" }, { "externalId": "External_Id_Site_TO_Line", "childAssetExternalId": "External_Id_Welding_Line_2" } ] } ] }

次のスクリーンショットは、前のコード例を実行 AWS IoT SiteWise コンソール した後に に表示されるモデル、アセット、階層を示しています。

AWS IoT SiteWise アセットモデルとアセットモデルを持つ モデル。

新しいプロパティのオンボーディングの例

この例では、既存のアセットモデルに新しいプロパティを定義します。追加のアセットとモデルをオンボード追加アセットのオンボーディングの例するには、「」を参照してください。

  • Joint 1 Temperature – このプロパティはSample_Welding Robotアセットモデルに追加されます。この新しいプロパティは、アセットモデルから作成された各Sample_Welding Robotアセットにも伝播されます。

既存のアセットモデルに新しいプロパティを追加するには、次の JSON メタデータファイルの例を参照してください。JSON に示すように、既存のSample_Welding Robotアセットモデル定義全体を新しいプロパティとともに提供する必要があります。既存の定義のプロパティリスト全体が指定されていない場合、 は省略されたプロパティ AWS IoT SiteWise を削除します。

この例では、アセットモデルJoint 1 Temperatureに新しいプロパティを追加します。

{ "assetModels": [ { "assetModelExternalId": "External_Id_Welding_Robot", "assetModelName": "Sample_Welding Robot", "assetModelProperties": [ { "dataType": "STRING", "externalId": "External_Id_Welding_Robot_Serial_Number", "name": "Serial Number", "type": { "attribute": { "defaultValue": "-" } }, "unit": "-" }, { "dataType": "DOUBLE", "externalId": "External_Id_Welding_Robot_Cycle_Count", "name": "CycleCount", "type": { "measurement": {} }, "unit": "EA" }, { "dataType": "DOUBLE", "externalId": "External_Id_Welding_Robot_Joint_1_Current", "name": "Joint 1 Current", "type": { "measurement": {} }, "unit": "Amps" }, { "dataType": "DOUBLE", "externalId": "External_Id_Welding_Robot_Joint_1_Max_Current", "name": "Max Joint 1 Current", "type": { "metric": { "expression": "max(joint1current)", "variables": [ { "name": "joint1current", "value": { "propertyExternalId": "External_Id_Welding_Robot_Joint_1_Current" } } ], "window": { "tumbling": { "interval": "5m" } } } }, "unit": "Amps" }, { "dataType": "DOUBLE", "externalId": "External_Id_Welding_Robot_Joint_1_Temperature", "name": "Joint 1 Temperature", "type": { "measurement": {} }, "unit": "degC" } ] } ] }

データストリームの管理例

この例では、アセットプロパティに関連付けられたデータストリームを管理する 2 つの方法を示します。アセットプロパティエイリアスの名前を変更する場合、アセットプロパティのデータストリームに現在保存されている履歴データには 2 つのオプションがあります。

  • オプション 1 – 現在のデータストリームを保持し、エイリアスの名前を単独で変更して、履歴データに新しいエイリアスでアクセスできるようにします。

    JSON メタデータファイルの例では、ID を持つアセットプロパティはエイリアスExternal_Id_Welding_Robot_Cycle_Countを に変更しますAnyCompany/Chicago/Welding Line/S3000/Count-Updated。このアセットプロパティの履歴データは、この変更後も同じままです。

  • オプション 2 – 新しいエイリアスでアクセスできるアセットプロパティに新しいデータストリームを割り当てます。古いデータストリームとその履歴データには、古いエイリアスで引き続きアクセスできますが、アセットプロパティには関連付けられていません。

    JSON メタデータファイルの例では、ID のアセットプロパティExternal_Id_Welding_Robot_Joint_1_Currentがエイリアスを に変更しますAnyCompany/Chicago/Welding Line/S4999/1/Current。今回retainDataOnAliasChangeは、追加の値が存在し、 に設定されますFalse。この設定では、元のデータストリームとアセットプロパティの関連付けが解除され、履歴データを含まない新しいデータストリームが作成されます。

元の履歴データを使用して古いデータストリームにアクセスするには、 でデータストリームページに移動し AWS Console Home、古いエイリアス を検索しますAnyCompany/Chicago/Welding Line/S3000/1/Current

{ "assetExternalId": "External_Id_Welding_Robot_3", "assetName": "Sample_Welding Robot 3", "assetModelExternalId": "External_Id_Welding_Robot", "assetProperties": [ { "externalId": "External_Id_Welding_Robot_Serial_Number", "attributeValue": "S3000" }, { "externalId": "External_Id_Welding_Robot_Cycle_Count", "alias": "AnyCompany/Chicago/Welding Line/S3000/Count-Updated" }, { "externalId": "External_Id_Welding_Robot_Joint_1_Current", "alias": "AnyCompany/Chicago/Welding Line/S4999/1/Current", "retainDataOnAliasChange": "FALSE" } ] }