カスタム複合モデル (コンポーネント) - AWS IoT SiteWise

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

カスタム複合モデル (コンポーネント)

多くの部分がある複雑な機械など、特に複雑な産業アセットをモデル化する場合、アセットモデルを整理して保守しやすくすることが課題になる可能性があります。

このような場合は、カスタム複合モデル、またはコンソールを使用している場合はコンポーネントを既存のアセットモデルとコンポーネントモデルに追加できます。これらは、関連するプロパティをグループ化し、サブコンポーネント定義を再利用することで、整理を維持するのに役立ちます。

カスタム複合モデルには 2 つのタイプがあります。

  • インラインカスタム複合モデルは、カスタム複合モデルが属するアセットモデルまたはコンポーネントモデルに適用されるグループ化されたプロパティのセットを定義します。これらを使用して、関連するプロパティをグループ化します。これらは、名前、説明、および一連のアセットモデルプロパティで構成されます。再利用できません。

  • Component-model-based カスタム複合モデルは、アセットモデルまたはコンポーネントモデルに含めるコンポーネントモデルを参照します。これらを使用して、モデルに標準サブアセンブリを含めます。これらは、参照するコンポーネントモデルの名前、説明、および ID で構成されます。独自のプロパティはありません。参照されるコンポーネントモデルは、作成されたアセットに関連付けられたプロパティを提供します。

以下のセクションでは、カスタム複合モデルを設計で使用する方法について説明します。

インラインカスタム複合モデル

インラインカスタム複合モデルは、関連するプロパティをグループ化してアセットモデルを整理する方法を提供します。

例えば、ロボットアセットをモデル化するとします。ロボットには、サーボモーター、電源、バッテリーが含まれています。これらの各構成要素には、モデルに含める独自のプロパティがあります。次のようなプロパティrobot_modelを持つ という名前のアセットモデルを定義できます。

  • robot_model

    • servo_status (整数)

    • servo_position (ダブル)

    • powersupply_status (整数)

    • powersupply_temperature (ダブル)

    • battery_status (整数)

    • battery_charge (ダブル)

ただし、サブアセンブリが多数ある場合や、サブアセンブリ自体に多くのプロパティがある場合があります。このような場合、前の例のように、モデルルートの単一のフラットリストで参照して維持するのが面倒になるプロパティが多数ある可能性があります。

このような状況に対処するには、インラインカスタム複合モデルを使用してプロパティをグループ化できます。インラインカスタム複合モデルは、独自のプロパティを定義するカスタム複合モデルです。例えば、次のようにロボットをモデル化できます。

  • robot_model

    • servo

      • status (整数)

      • position (ダブル)

    • powersupply

      • status (整数)

      • temperature (ダブル)

    • battery

      • status (整数)

      • charge (ダブル)

前の例では、、servopowersupply、 はrobot_modelアセットモデル内で定義されたインラインカスタム複合モデルの名前batteryです。次に、これらの複合モデルはそれぞれ独自のプロパティを定義します。

注記

この場合、各カスタム複合モデルは独自のプロパティを定義し、すべてのプロパティがアセットモデル自体の一部になるようにします (robot_modelこの場合は )。これらのプロパティは、他のアセットモデルやコンポーネントモデルと共有されません。例えば、 というインラインカスタム複合モデルも持つ他のアセットモデルを作成してもservoservo内で を変更robot_modelしても、他のアセットモデルservoの定義には影響しません。

このような共有を実装する場合 (例えば、すべてのアセットモデルが共有できるサーボの定義を 1 つだけ持つ場合)、代わりにコンポーネントモデルを作成し、それを参照するcomponent-model-based複合モデルを作成します。詳細については、次のセクションを参照してください。

インラインカスタム複合モデルを作成する方法については、「」を参照してくださいカスタム複合モデル (コンポーネント) を作成する

C omponent-model-based カスタム複合モデル

でコンポーネントモデルを作成して、標準の再利用可能なサブアタッチ AWS IoT SiteWise を定義できます。コンポーネントモデルを作成したら、他のアセットモデルやコンポーネントモデルにそのモデルへの参照を追加できます。これを行うには、コンポーネントを参照する任意のcomponent-model-based モデルにカスタム複合モデルを追加します。コンポーネントへの参照は、多くのモデルから追加することも、同じモデル内で複数回追加することもできます。

これにより、モデル間で同じ定義が重複するのを回避できます。また、コンポーネントモデルに加えた変更は、それを使用するすべてのアセットモデルに反映されるため、モデルのメンテナンスも簡素化されます。

例えば、産業施設に、同じ種類のサーボモーターを使用する多くのタイプの機器があるとします。そのうちのいくつかは、単一の機器に多数のサーボモーターがあります。機器タイプごとにアセットモデルを作成しますが、 の定義をservo毎回複製する必要はありません。一度だけモデル化し、さまざまなアセットモデルで使用します。後で の定義を変更するとservo、すべてのモデルとアセットで更新されます。

この方法で前の例のロボットをモデル化するには、このように、サーボモーター、電源、バッテリーをコンポーネントモデルとして定義できます。

  • servo_component_model

    • status (整数)

    • position (ダブル)

  • powersupply_component_model

    • status (整数)

    • temperature (ダブル)

  • battery__component_model

    • status (整数)

    • charge (ダブル)

その後、これらのコンポーネントを参照robot_modelする などのアセットモデルを定義できます。複数のアセットモデルが同じコンポーネントモデルを参照できます。また、ロボットに複数のServoMotor がある場合など、1 つのアセットモデルで同じコンポーネントモデルを複数回参照することもできます。

  • robot_model

    • servo1 (リファレンス: servo_component_model

    • servo2 (リファレンス: servo_component_model

    • servo3 (参照: servo_component_model

    • powersupply (リファレンス: powersupply_component_model

    • battery (リファレンス: battery_component_model

コンポーネントモデルの作成方法については、「」を参照してくださいコンポーネントモデルの作成

他のモデルでコンポーネントモデルを参照する方法については、「」を参照してくださいカスタム複合モデル (コンポーネント) を作成する

パスを使用してカスタム複合モデルプロパティを参照する

アセットモデル、コンポーネントモデル、またはカスタム複合モデルにプロパティを作成すると、変換メトリクス など、その値を使用する他のプロパティからプロパティを参照できます。

AWS IoT SiteWise には、 プロパティを参照するさまざまな方法が用意されています。最も簡単な方法は、多くの場合、そのプロパティ ID を使用することです。ただし、参照するプロパティがカスタム複合モデルにある場合は、代わりにパスで参照する方が便利な場合があります。

パスは、アセットモデルと複合モデル内のネストされた複合モデル間の位置に関してプロパティを指定するパスセグメントの順序付けられたシーケンスです。

プロパティパスを取得する

プロパティのパスは、 の pathフィールドから取得できますAssetModelProperty

例えば、 プロパティrobot_modelを持つカスタム複合モデル を含むアセットモデルがあるとservoしますpositionDescribeAssetModelCompositeModel で を呼び出すとservopositionプロパティは次の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 ] } } ], ... } }, ... }, ... ], ... }