翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
変換データ (変換)
変換は、アセットプロパティのデータポイントを別のフォームにマッピングする数式です。変換式は、アセットプロパティ変数、リテラル、演算子、関数で構成されます。変換されたデータポイントは、入力データポイント one-to-one との関係を保持します。 は、入力プロパティが新しいデータポイントを受信するたびに、新しい変換されたデータポイントを AWS IoT SiteWise 計算します。
注記
同じタイムスタンプを持つプロパティ更新の場合、出力値は他の受信プロパティの更新によって上書きされる可能性があります。
たとえば、アセットに単位が摂氏の名前 Temperature_C
の温度測定ストリームがある場合、数式 Temperature_F = 9/5 * Temperature_C + 32
を使用して各データポイントを華氏に変換できます。がTemperature_C
測定ストリームでデータポイント AWS IoT SiteWise を受信するたびに、対応するTemperature_F
値は数秒以内に計算され、 Temperature_F
プロパティとして使用できます。
変換に複数の変数が含まれる場合、先に到着したデータポイントからすぐにコンピューティングが開始されます。例えば、ある部品メーカーが製品の品質をモニタリングするためにトランスを使用する場合を考えてみましょう。部品の種類によって異なる基準を用いて、メーカーは次のような測定値で工程を表現しています。
-
Part_Number
- 部品の種類を識別するための文字列。 -
Good_Count
- 部品が規格に適合している場合、1増加する整数。 -
Bad_Count
- 部品が規格に適合しない場合、1増加する整数。
また、メーカーは Quality_Monitor
に等しい変換 if(eq(Part_Number, "BLT123") and (Bad_Count / (Good_Count + Bad_Count) > 0.1),
"Caution", "Normal")
を作成します。
この変換は、特定の部品型で生産された不良部品の割合をモニタリングします。パーツ番号が BLT123で、不良パーツの割合が 10% (0.1) を超える場合、変換は を返します"Caution"
。そうでない場合は、変換は "Normal"
を返します。
注記
-
Part_Number
が他の測定値より先に新しいデータポイントを受信した場合、NQuality_Monitor
変換は新しいPart_Number
値と最新のGood_Count
およびBad_Count
値を使用します。エラーを回避するため、次の製造の前にGood_Count
、Bad_Count
をリセットしてください。 -
すべての変数が新しいデータポイントを受け取った後にのみ式を評価したい場合は、[metrics] (メトリクス) を使用します。
変換の定義 (コンソール)
AWS IoT SiteWise コンソールでアセットモデルの変換を定義するときは、次のパラメータを指定します。
-
[Name] (名前) - プロパティの名前。
-
[Unit] (単位) - プロパティの科学単位 (mm、摂氏など)。
-
[Data type] (データ型) - 変換のデータ型で、[Double] (倍) または [String] (文字列) です。
-
外部 ID – (オプション) これはユーザー定義 ID です。詳細については、AWS IoT SiteWise ユーザーガイドの 外部でオブジェクトを参照する IDsを参照してください。
-
[Formula] (コンピューティング式) – 変換式。変換式では、集計関数や一時関数は使用できません。自動完了機能を開くには、入力を開始するか、下矢印キーを押します。詳細については、「数式を使用する」を参照してください。
重要
変換は、整数、倍、ブール値、文字列型のプロパティを入力することができます。ブール値は、
0
(false) 、1
(true) に変換されます。変換には、属性でないプロパティを1つ以上、任意の数だけ入力する必要があります。 AWS IoT SiteWise は、属性でない入力プロパティが新しいデータポイントを受け取るたびに、新しい変換後のデータポイントをコンピューティングする。新しい属性値は変換更新を起動しません。変換計算結果には、アセットプロパティデータAPIオペレーションと同じリクエストレートが適用されます。
数式では、倍値または文字列値のみを出力できます。入れ子になった式は、文字列など他のデータ型を出力することができますが、式全体としては、数値または文字列として評価されなければなりません。[jp function] (jp関数) を使うと、文字列を数値に変換することができます。ブール値は 1 (true) または 0 (false) でなければならない。詳細については、「未定義の値、無限の値、およびオーバーフロー値」を参照してください。
詳細については、「アセットモデルを作成する (コンソール)」を参照してください。
変換の定義 (AWS CLI)
を使用してアセットモデルの変換を定義する場合は AWS IoT SiteWise API、次のパラメータを指定します。
-
name
- プロパティの名前。 -
unit
–(オプション) プロパティの科学単位 (mm、摂氏など)。 -
dataType
- 変換のデータ型は、DOUBLE
またはSTRING
である必要があります。 -
externalId
– (オプション) これはユーザー定義 ID です。詳細については、AWS IoT SiteWise ユーザーガイドの 外部でオブジェクトを参照する IDsを参照してください。 -
expression
- 変換式。変換式では、集計関数や一時関数は使用できません。詳細については、「数式を使用する」を参照してください。 -
variables
- 式で使用するアセットの他のプロパティを定義する変数のリスト。各変数構造には、式で使用する単純な名前と、その変数にリンクされるプロパティを定義するvalue
構造が含まれます。value
構造体には、以下の情報が含まれています。-
propertyId
- 値を入力するプロパティの ID。ID の代わりにプロパティの名前を使用できます。
重要
変換は、整数、倍、ブール値、文字列型のプロパティを入力することができます。ブール値は、
0
(false) 、1
(true) に変換されます。変換には、属性でないプロパティを1つ以上、任意の数だけ入力する必要があります。 AWS IoT SiteWise は、属性でない入力プロパティが新しいデータポイントを受け取るたびに、新しい変換後のデータポイントをコンピューティングする。新しい属性値は変換更新を起動しません。変換計算結果には、アセットプロパティデータAPIオペレーションと同じリクエストレートが適用されます。
数式では、倍値または文字列値のみを出力できます。入れ子になった式は、文字列など他のデータ型を出力することができますが、式全体としては、数値または文字列として評価されなければなりません。[jp function] (jp関数) を使うと、文字列を数値に変換することができます。ブール値は 1 (true) または 0 (false) でなければならない。詳細については、「未定義の値、無限の値、およびオーバーフロー値」を参照してください。
-
例 [Transform job definition] (変換定義)
次の例は、アセットの温度測定データを摂氏から華氏に変換する変換プロパティを示しています。このオブジェクトは、変換 AssetModelProperty を含む の例です。 https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_Transform.htmlこのオブジェクトをCreateAssetModelリクエストペイロードの一部として指定して、変換プロパティを作成できます。詳細については、「アセットモデルを作成する (AWS CLI)」を参照してください。
{
...
"assetModelProperties": [...
{ "name": "Temperature F", "dataType": "DOUBLE", "type": { "transform": { "expression": "9/5 * temp_c + 32", "variables": [ { "name": "temp_c", "value": { "propertyId": "Temperature C" } } ] } }, "unit": "Fahrenheit" } ],...
}
例 3つの変数を含む変換定義。
次の例は、BLT123パートの 10% 以上が標準を満たさない場合に警告メッセージ ("Caution"
) を返す変換プロパティを示しています。それ以外の場合は、情報メッセージ ("Normal"
) を返す。
{
...
"assetModelProperties": [...
{ "name": "Quality_Monitor", "dataType": "STRING", "type": { "transform": { "expression": "if(eq(Part_Number,"BLT123") and (Bad_Count / (Good_Count + Bad_Count) > 0.1), "Caution", "Normal")", "variables": [ { "name": "Part_Number", "value": { "propertyId": "Part Number" } }, { "name": "Good_Count", "value": { "propertyId": "Good Count" } }, { "name": "Bad_Count", "value": { "propertyId": "Bad Count" } } ] } } }...
}