翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
数式で時間関数を使用する
時間関数を使用して、データポイントのタイムスタンプに基づいて値を返す。
メトリクスで時間関数を使用する
[metrics] (メトリクス) のみ、データポイントのタイムスタンプに基づいた値を返す次の関数を使用できます。
時間関数の引数は、ローカルのアセットモデルまたは入れ子式のプロパティである必要があります。これは、子アセットモデルのプロパティを一時関数で使用できないことを意味します。
一時関数で入れ子になった式を使用することができます。入れ子になった式を使用する場合、次のルールが適用されます。
-
各引数は1つの変数しか持つことができません。
例えば、
latest( t*9/5 + 32 )
がサポートされています。 -
引数には集計関数を指定できません。
例えば、
first( sum(x) )
はサポートされていません。
機能 | 説明 |
---|---|
|
現在の時間間隔における最も早いタイムスタンプを持つ、指定された変数値を返します。 |
|
現在の時間間隔における最新のタイムスタンプを持つ、指定された変数値を返します。 |
|
現在の時間間隔の開始前に指定された変数の最後の値を返します。 入力プロパティの履歴に少なくとも 1 つのデータポイントがある場合、この関数は、時間間隔ごとにデータポイントを計算します。詳細については、「time-range-defintion」を参照してください。 |
|
指定された変数の最後の値を、現在の時間間隔の終了前の最新のタイムスタンプとともに返します。 入力プロパティの履歴に少なくとも 1 つのデータポイントがある場合、この関数は、時間間隔ごとにデータポイントを計算します。詳細については、「time-range-defintion」を参照してください。 |
|
指定された時間間隔において、指定された変数が正である時間 (秒単位) を返します。[comparison functions] (比較関数) を使用して、 たとえば、 この関数は、入力変数としてメトリクスプロパティをサポートしていません。 入力プロパティの履歴に少なくとも 1 つのデータポイントがある場合、この関数は、時間間隔ごとにデータポイントを計算します。 |
|
ポイント間の時間間隔で重み付けされた入力データの平均を返します。 計算と間隔の詳細については、「時間加重関数のパラメータ」を参照してください。オプションの引数
|
|
ポイント間の時間間隔で重み付けされた入力データの標準偏差を返します。 計算と間隔の詳細については、「時間加重関数のパラメータ」を参照してください。 この計算では、データポイント間の間隔に Last Observed Carry Forward (LOCF) 計算アルゴリズムが使用されます。このアプローチでは、データポイントは次の入力データポイントのタイムスタンプまで最後の観測値として使用されます。重みは、データポイント間またはウィンドウ境界間の時間間隔 (秒単位) の形式で求められます。 オプションの引数
計算には以下の式が使用されます。
母集団の標準偏差の計算式: 頻度の標準偏差の計算式: |
次の図はfirst
、現在の時間間隔を基準にして、 が時間関数 last
、latest
、、earliest
および AWS IoT SiteWise を計算する方法を示しています。
注記
の時間範囲は
first(x)
、 (現在のウィンドウ開始、現在のウィンドウ終了]last(x)
です。の時間範囲は (時間の開始、現在のウィンドウの終了]
latest(x)
です。の時間範囲は (時間の開始、前のウィンドウの終了]
earliest(x)
です。
時間加重関数のパラメータ
集計ウィンドウ用に計算される時間加重関数では、次のことが考慮されます。
-
ウィンドウ内のデータポイント数
-
データポイント間の時間間隔数
-
ウィンドウの前の最後のデータポイント
-
ウィンドウの後の最初のデータポイント (一部のアルゴリズムのみ)
条件:
-
不良データポイント – 品質が良くないか、値が数値以外のデータポイント。不良データポイントは、ウィンドウの結果計算では考慮されません。
-
不良間隔 – 不良データポイントの後の間隔。最初の既知のデータポイントの前の間隔も不良間隔とみなされます。
-
良好データポイント – 品質が良好でかつ値が数値のデータポイント。
注記
-
AWS IoT SiteWise は、変換とメトリクスを計算するときにのみ
GOOD
、品質データを消費します。UNCERTAIN
およびBAD
データポイントは無視します。 -
最初の既知のデータポイントの前の間隔も不良間隔とみなされます。詳細については、「数式表現チュートリアル」を参照してください。
最後の既知のデータポイントの後の間隔は無限に続き、以降のすべてのウィンドウに影響します。新しいデータポイントがくると、この関数は間隔を再計算します。
上記のルールに従って、集計ウィンドウの結果が計算され、ウィンドウの境界が制限されます。デフォルトでは、この関数はウィンドウ全体が良好間隔である場合にのみウィンドウの結果を送信します。
ウィンドウの良好間隔がウィンドウの長さよりも短い場合、この関数はウィンドウを送信しません。
ウィンドウの結果に影響するデータポイントに変更があると、データポイントがウィンドウの外側にあっても、ウィンドウは再計算されます。
入力プロパティの履歴に少なくとも 1 つのデータポイントがあり、計算が開始されていた場合は、時間間隔ごとに時間加重集計関数が計算されます。
例 statetime シナリオの例
次のプロパティを持つアセットがある例を考えてみましょう。
-
Idle
-0
または1
である測定値をいう。値が1
の場合、マシンはアイドル状態です。 -
Idle Time
- 1分間隔で、機械がアイドル状態である時間を秒単位でコンピューティングする式statetime(Idle)
を使用した指標。
Idle
プロパティには、以下のデータポイントがあります。
タイムスタンプ | 2:00:00 PM | 2:00:30 PM | 2:01:15 PM | 2:02:45 PM | 2:04:00 PM |
Idle | 0 | 1 | 1 | 0 | 0 |
AWS IoT SiteWise は、 の値から Idle Time
プロパティを 1 分ごとに計算しますIdle
。この計算が完了すると、Idle Time
プロパティには次のデータポイントが存在します。
タイムスタンプ | 2:00:00 PM | 2:01:00 PM | 2:02:00 PM | 2:03:00 PM | 2:04:00 PM |
Idle Time | 該当なし | 30 | 60 | 45 | 0 |
AWS IoT SiteWise は、毎分の終わりに Idle Time
に対して次の計算を実行します。
-
2:00 PM 時点 (1:59 PM から 2:00 PM の場合)
-
Idle
には 2:00 PM より前のデータがないため、データポイントは計算されません。
-
-
2:01 PM 時点 (2:00 PM から 2:01 PM の場合)
-
2:00:00 PM の時点で、マシンはアクティブです (
Idle
は0
)。 -
2:00:30 PM の時点で、マシンはアイドル状態です (
Idle
は1
)。 -
2:01:00 PM にインターバルが終了する前に
Idle
は再度変更されないため、Idle Time
は 30 秒になります。
-
-
2:02 PM 時点 (2:01 PM から 2:02 PM の場合)
-
2:01:00 PM の時点で、マシンはアイドル状態です (2:00:30 PM 時点の直前のデータポイントによる)。
-
2:01:15 PM の時点で、マシンはまだアイドル状態です。
-
2:02:00 PM にインターバルが終了する前に
Idle
は再度変更されないため、Idle Time
は 60 秒になります。
-
-
2:03 PM 時点 (2:02 PM から 2:03 PM の場合)
-
2:02:00 PM の時点で、マシンはアイドル状態です (2:01:15 PM 時点の直前のデータポイントによる)。
-
2:02:45 PM の時点で、マシンはアクティブです。
-
2:03:00 PM にインターバルが終了する前に
Idle
は再度変更されないため、Idle Time
は 45 秒になります。
-
-
2:04 PM 時点 (2:03 PM から 2:04 PM の場合)
-
2:03:00 PM の時点で、マシンはアクティブです (2:02:45 PM 時点の直前のデータポイントによる)。
-
2:04:00 PM にインターバルが終了する前に
Idle
は再度変更されないため、Idle Time
は 0 秒になります。
-
例 TimeWeightedAvg と TimeWeightedStDev シナリオ
次の表は、1 分間のウィンドウメトリクスの入力例と出力例を示しています: Avg(x), TimeWeightedAvg(x), TimeWeightedAvg(x, "linear"), stDev(x), timeWeightedStDev(x),
timeWeightedStDev(x, 'p')
。
1 分間の集計ウィンドウの入力例:
注記
これらのデータポイントはすべてGOOD
品質を備えています。
03:00:00 | 4.0 |
03:01:00 | 2.0 |
03:01:10 | 8.0 |
03:01:50 | 20.0 |
03:02:00 | 14.0 |
03:02:05 | 10.0 |
03:02:10 | 3.0 |
03:02:30 | 20.0 |
03:03:30 | 0.0 |
集計結果の出力:
注記
なし – このウィンドウでは結果は生成されません。
時間 | Avg(x) |
TimeWeightedAvg(x) |
TimeWeightedAvg(X, "linear") |
stDev(X) |
timeWeightedStDev(x) |
timeWeightedStDev(x, 'p') |
---|---|---|---|---|---|---|
3:00:00 | 4 | なし | なし | 0 | なし | なし |
3:01:00 | 2 | 4 | 3 | 0 | 0 | 0 |
3:02:00 | 14 | 9 | 13 | 6 | 5.430610041581775 | 5.385164807134504 |
3:03:00 | 11 | 13 | 12.875 | 8.54400374531753 | 7.724054437220943 | 7.659416862050705 |
3:04:00 | 0 | 10 | 2.5 | 0 | 10.084389681792215 | 10 |
3:05:00 | なし | 0 | 0 | なし | 0 | 0 |
変換で時間関数を使用する
[変換] のみ、pretrigger()
関数を使用して、現在の変換の計算を開始させたプロパティ更新前の変数の GOOD
品質値を取得することができます。
メーカーが AWS IoT SiteWise を使用してマシンのステータスをモニタリングする例を考えてみましょう。メーカーは、次のような測定値と変換を使用してプロセスを表現しています。
-
測定値
current_state
は 0 または 1 となります。-
本機がクリーニング状態の場合、
current_state
は 1 になる。 -
機械が製造状態にある場合、
current_state
は 0 になる。
-
-
cleaning_state_duration
に相当する変換、if(pretrigger(current_state) == 1, timestamp(current_state) - timestamp(pretrigger(current_state)), none)
。この変換は、マシンがクリーニング状態である時間を秒単位で Unix エポックフォーマットで返します。詳しくは、数式で条件関数を使用する およびtimestamp () (タイムスタンプ) 関数を参照してください。
クリーニング状態が予想以上に長く続くようであれば、メーカーが調査する場合もあるります。
また、多変量変換で pretrigger()
関数を使うこともできます。例えば、x
、y
という 2 つの測定値があり、z
と等しい変換値 x + y +
pretrigger(y)
があるとします。次の表は、午前 9 時から午前 9 時 15 分までの x
、y
、z
の値である。
注記
-
この例では、測定値の値が時系列に到着することを想定しています。例えば、午前 09 時 00 分の
x
の値は、午前 09 時 05 分のx
の値より先に到着する。 -
午前 9 時 5 分のデータポイントが午前 9 時のデータポイントより先に到着した場合、午前 9 時 5 分には
z
はコンピューティングされません。 -
午前 9 時 5 分 の
x
の値が午前 9 時のx
の値より先に到着し、y
の値が時系列に到着する場合、z
は午前 9 時 5 分の22 = 20 + 1 + 1
と等しくなる。
午前 9 時 0 分 | 午前 9 時 5 分 | 午前 9 時 10 分 | 午前 9 時 15 分 | |
---|---|---|---|---|
|
10 |
20 |
30 |
|
|
1 |
2 |
3 |
|
|
|
23 = 20 + 2 + 1
|
25 = 20 + 3 + 2
|
36 = 30 + 3 + 3
|