Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gunakan fungsi temporal dalam ekspresi rumus
Gunakan fungsi temporal untuk mengembalikan nilai berdasarkan stempel waktu titik data.
Gunakan fungsi temporal dalam metrik
Hanya dalam metrik, Anda dapat menggunakan fungsi berikut yang mengembalikan nilai berdasarkan stempel waktu titik data.
Argumen fungsi temporal harus berupa properti dari model aset lokal atau ekspresi bersarang. Ini berarti Anda tidak dapat menggunakan properti dari model aset anak dalam fungsi temporal.
Anda dapat menggunakan ekspresi bersarang dalam fungsi temporal. Bila Anda menggunakan ekspresi bersarang, aturan berikut berlaku:
-
Setiap argumen hanya dapat memiliki satu variabel.
Misalnya,
latest( t*9/5 + 32 )
didukung. -
Argumen tidak bisa berupa fungsi agregasi.
Misalnya,
first( sum(x) )
tidak didukung.
Fungsi | Deskripsi |
---|---|
|
Mengembalikan nilai variabel yang diberikan dengan stempel waktu paling awal selama interval waktu saat ini. |
|
Mengembalikan nilai variabel yang diberikan dengan timestamp terbaru selama interval waktu saat ini. |
|
Mengembalikan nilai terakhir variabel yang diberikan sebelum dimulainya interval waktu saat ini. Fungsi ini menghitung titik data untuk setiap interval waktu, jika properti input memiliki setidaknya satu titik data dalam sejarahnya. Lihat time-range-defintion untuk detail. |
|
Mengembalikan nilai terakhir variabel yang diberikan dengan stempel waktu terbaru sebelum akhir interval waktu saat ini. Fungsi ini menghitung titik data untuk setiap interval waktu, jika properti input memiliki setidaknya satu titik data dalam sejarahnya. Lihat time-range-defintion untuk detail. |
|
Mengembalikan jumlah waktu dalam detik bahwa variabel yang diberikan positif selama interval waktu saat ini. Anda dapat menggunakan fungsi perbandingan untuk membuat properti transform untuk Misalnya, jika Anda memiliki Fungsi ini tidak mendukung properti metrik sebagai variabel input. Fungsi ini menghitung titik data untuk setiap interval waktu, jika properti input memiliki setidaknya satu titik data dalam sejarahnya. |
|
Mengembalikan rata-rata data masukan yang ditimbang dengan interval waktu antar titik. Lihat Parameter fungsi berbobot waktu untuk detail komputasi dan interval.Argumen opsional
|
|
Mengembalikan standar deviasi data input tertimbang dengan interval waktu antar titik. Lihat Parameter fungsi berbobot waktu untuk detail komputasi dan interval. Perhitungan menggunakan algoritma komputasi Last Observated Carry Forward untuk interval antar titik data. Dalam pendekatan ini, titik data dihitung sebagai nilai terakhir yang diamati hingga cap waktu titik data input berikutnya. Berat dihitung sebagai interval waktu dalam hitungan detik antara titik data atau batas jendela. Argumen opsional
Rumus berikut digunakan untuk perhitungan di mana:
Persamaan untuk standar deviasi populasi: Persamaan untuk standar deviasi frekuensi: |
Diagram berikut menunjukkan bagaimana AWS IoT SiteWise menghitung fungsi temporalfirst
,,last
, dan earliest
latest
, relatif terhadap interval waktu saat ini.
catatan
Rentang waktu untuk
first(x)
,last(x)
adalah (mulai jendela saat ini, akhir jendela saat ini].Rentang waktu untuk
latest(x)
adalah (awal waktu, akhir jendela saat ini].Rentang waktu untuk
earliest(x)
adalah (awal waktu, akhir jendela sebelumnya].
Parameter fungsi berbobot waktu
Fungsi berbobot waktu yang dihitung untuk jendela agregat memperhitungkan hal-hal berikut:
-
Titik data di dalam jendela
-
Interval waktu antara titik data
-
Titik data terakhir sebelum jendela
-
Titik data pertama setelah jendela (untuk beberapa algoritma)
Ketentuan:
-
Titik data buruk — Setiap titik data dengan kualitas yang tidak baik atau nilai non-angka. Ini tidak dipertimbangkan dalam perhitungan hasil jendela.
-
Interval buruk — Interval setelah titik data yang buruk. Interval sebelum titik data pertama yang diketahui juga dianggap sebagai interval yang buruk.
-
Titik data yang baik — Setiap titik data dengan kualitas dan nilai numerik yang baik.
catatan
-
AWS IoT SiteWise hanya mengkonsumsi data
GOOD
berkualitas saat menghitung transformasi dan metrik. Ini mengabaikanUNCERTAIN
dan titikBAD
data. -
Interval sebelum titik data pertama yang diketahui dianggap sebagai interval yang buruk. Untuk informasi selengkapnya, lihat Tutorial ekspresi rumus.
Interval setelah titik data terakhir yang diketahui berlanjut tanpa batas, mempengaruhi semua jendela berikut. Ketika titik data baru tiba, fungsi menghitung ulang interval.
Mengikuti aturan di atas, hasil jendela agregat dihitung dan terbatas pada batas jendela. Secara default, fungsi hanya mengirimkan hasil jendela jika seluruh jendela adalah interval yang baik.
Jika interval jendela yang baik lebih kecil dari panjang jendela, fungsi tidak mengirim jendela.
Ketika titik data yang mempengaruhi hasil jendela berubah, fungsi menghitung ulang jendela, bahkan jika titik data berada di luar jendela.
Jika properti input memiliki setidaknya satu titik data dalam histori dan perhitungan telah dimulai, fungsi menghitung fungsi agregat berbobot waktu untuk setiap interval waktu.
contoh Contoh skenario statetime
Pertimbangkan contoh di mana Anda memiliki aset dengan properti berikut:
-
Idle
— Pengukuran yang0
atau1
. Ketika nilainya1
, mesin menganggur. -
Idle Time
— Metrik yang menggunakan rumusstatetime(Idle)
untuk menghitung jumlah waktu dalam detik di mana mesin dalam keadaan idle, per interval 1 menit.
Idle
Properti ini memiliki titik data berikut.
Stempel waktu | 14:00:00 | 14:00:30 | 14:01:15 SORE | 14:02:45 SORE | 14:04:00 SORE |
Idle | 0 | 1 | 1 | 0 | 0 |
AWS IoT SiteWise menghitung Idle Time
properti setiap menit dari nilai. Idle
Setelah perhitungan ini selesai, Idle Time
properti memiliki titik data berikut.
Stempel waktu | 14:00:00 | 14:01:00PM | 14:02:00PM | 14:03:00 SORE | 14:04:00 SORE |
Idle Time | N/A | 30 | 60 | 45 | 0 |
AWS IoT SiteWise melakukan perhitungan berikut untuk Idle Time
pada akhir setiap menit.
-
Pukul 14:00 (untuk 13:59 hingga 14:00)
-
Tidak ada data
Idle
sebelum pukul 14:00, jadi tidak ada titik data yang dihitung.
-
-
Pukul 14:01 (untuk 2:00 PM hingga 14:01 PM)
-
Pada pukul 14:00:00, mesin aktif (
Idle
sedang0
). -
Pada 14:00:30, mesin dalam keadaan idle (
Idle
is).1
-
Idle
tidak berubah lagi sebelum akhir interval pada 2:01:00 PM, begituIdle Time
juga 30 detik.
-
-
Pukul 14:02 (untuk 14:01 PM hingga 14:02 PM)
-
Pada pukul 14:01:00, mesin dalam keadaan idle (per titik data terakhir pada pukul 14:00:30).
-
Pukul 14:01:15, mesin masih menganggur.
-
Idle
tidak berubah lagi sebelum akhir interval pada 2:02:00 PM, begituIdle Time
juga 60 detik.
-
-
Pukul 14:03 (untuk 14:02 PM hingga 14:03 PM)
-
Pada pukul 14:02:00, mesin dalam keadaan idle (per titik data terakhir pada 2:01:15 PM).
-
Pada pukul 14:02:45, mesin aktif.
-
Idle
tidak berubah lagi sebelum akhir interval pada 2:03:00 PM, begituIdle Time
juga 45 detik.
-
-
Pukul 14:04 (untuk 14:03 PM hingga 14:04 PM)
-
Pada 2:03:00 PM, mesin aktif (per titik data terakhir pada 2:02:45 PM).
-
Idle
tidak berubah lagi sebelum akhir interval pada 2:04:00 PM, begituIdle Time
juga 0 detik.
-
contoh Contoh TimeWeightedAvg dan TimeWeightedStDev skenario
Tabel berikut menyediakan contoh input dan output untuk metrik jendela satu menit ini:. Avg(x), TimeWeightedAvg(x), TimeWeightedAvg(x, "linear"), stDev(x), timeWeightedStDev(x),
timeWeightedStDev(x, 'p')
Masukan sampel untuk jendela agregat satu menit:
catatan
Semua titik data ini memiliki GOOD
kualitas.
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 |
Output hasil agregat:
catatan
Tidak ada - Hasil tidak diproduksi untuk jendela ini.
Waktu | Avg(x) |
TimeWeightedAvg(x) |
TimeWeightedAvg(X, "linear") |
stDev(X) |
timeWeightedStDev(x) |
timeWeightedStDev(x, 'p') |
---|---|---|---|---|---|---|
3:00:00 | 4 | Tidak ada | Tidak ada | 0 | Tidak ada | Tidak ada |
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 | Tidak ada | 0 | 0 | Tidak ada | 0 | 0 |
Gunakan fungsi temporal dalam transformasi
Dalam transformasi saja, Anda dapat menggunakan pretrigger()
fungsi untuk mengambil nilai GOOD
kualitas untuk variabel sebelum pembaruan properti yang memulai perhitungan transformasi saat ini.
Pertimbangkan contoh di mana produsen menggunakan AWS IoT SiteWise untuk memantau status mesin. Pabrikan menggunakan pengukuran dan transformasi berikut untuk mewakili proses:
-
Pengukuran,
current_state
, yang bisa 0 atau 1.-
Jika mesin dalam keadaan pembersihan,
current_state
sama dengan 1. -
Jika mesin dalam keadaan manufaktur,
current_state
sama dengan 0.
-
-
Sebuah transformasi,
cleaning_state_duration
, itu sama.if(pretrigger(current_state) == 1, timestamp(current_state) - timestamp(pretrigger(current_state)), none)
Transformasi ini mengembalikan berapa lama mesin berada dalam keadaan pembersihan dalam hitungan detik, dalam format epoch Unix. Untuk informasi selengkapnya, lihat Gunakan fungsi kondisional dalam ekspresi rumus dan fungsi timestamp ().
Jika mesin tetap dalam kondisi pembersihan lebih lama dari yang diharapkan, pabrikan mungkin menyelidiki mesin.
Anda juga dapat menggunakan pretrigger()
fungsi dalam transformasi multivariat. Misalnya, Anda memiliki dua pengukuran bernama x
dany
, dan transformasi,z
, yang sama. x + y +
pretrigger(y)
Tabel berikut menunjukkan nilai untukx
,y
, dan z
dari 9:00 AM sampai 9:15 AM.
catatan
-
Contoh ini mengasumsikan bahwa nilai untuk pengukuran tiba secara kronologis. Misalnya, nilai
x
untuk 09:00 AM tiba sebelum nilaix
untuk 09:05 AM. -
Jika titik data untuk 9:05 tiba sebelum titik data untuk 9:00 AM,
z
tidak dihitung pada 9:05 AM. -
Jika nilai
x
untuk 9:05 tiba sebelum nilaix
untuk 09:00 AM dan nilaiy
tiba secara kronologis,z
sama22 = 20 + 1 + 1
dengan pukul 9:05.
09:00AM | 09:05AM | 09:10AM | 09:15AM | |
---|---|---|---|---|
|
10 |
20 |
30 |
|
|
1 |
2 |
3 |
|
|
|
23 = 20 + 2 + 1
|
25 = 20 + 3 + 2
|
36 = 30 + 3 + 3
|