Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utiliser des fonctions temporelles dans les expressions de formules
Utilisez des fonctions temporelles pour renvoyer des valeurs en fonction de l'horodatage des points de données.
Utiliser des fonctions temporelles dans les métriques
Dans les métriques uniquement, vous pouvez utiliser les fonctions suivantes qui renvoient des valeurs basées sur l'horodatage des points de données.
Les arguments de la fonction temporelle doivent être des propriétés issues du modèle d'actif local ou d'expressions imbriquées. Cela signifie que vous ne pouvez pas utiliser les propriétés des modèles d'actifs enfants dans les fonctions temporelles.
Vous pouvez utiliser des expressions imbriquées dans les fonctions temporelles. Lorsque vous utilisez des expressions imbriquées, les règles suivantes s'appliquent :
-
Chaque argument ne peut avoir qu'une seule variable.
Par exemple,
latest( t*9/5 + 32 )est pris en charge. -
Les arguments ne peuvent pas être des fonctions d'agrégation.
Par exemple,
first( sum(x) )n'est pas pris en charge.
| Fonction | Description |
|---|---|
|
|
Renvoie la valeur de la variable donnée avec l'horodatage le plus ancien sur l'intervalle de temps actuel. |
|
|
Renvoie la valeur de la variable donnée avec l'horodatage le plus récent sur l'intervalle de temps actuel. |
|
|
Renvoie la dernière valeur de la variable donnée avant le début de l'intervalle de temps actuel. Cette fonction calcule un point de données pour chaque intervalle de temps, si la propriété d'entrée a au moins un point de données dans son historique. Consultez time-range-defintion pour plus de détails. |
|
|
Renvoie la dernière valeur de la variable donnée avec le dernier horodatage avant la fin de l'intervalle de temps en cours. Cette fonction calcule un point de données pour chaque intervalle de temps, si la propriété d'entrée a au moins un point de données dans son historique. Consultez time-range-defintion pour plus de détails. |
|
|
Renvoie la durée, en secondes, pendant laquelle les variables données sont positives sur l'intervalle de temps actuel. Vous pouvez utiliser les fonctions de comparaison pour créer une propriété de transformation pour la Par exemple, si vous avez une propriété Cette fonction ne prend pas en charge les propriétés de métriques en tant que variables d'entrée. Cette fonction calcule un point de données pour chaque intervalle de temps, si la propriété d'entrée a au moins un point de données dans son historique. |
|
|
Renvoie la moyenne des données d'entrée pondérées par des intervalles de temps entre les points. Voir Paramètres des fonctions pondérées dans le temps pour plus de détails sur les calculs et les intervalles.L'argument facultatif
|
|
|
Renvoie l'écart type des données d'entrée pondérées par les intervalles de temps entre les points. Voir Paramètres des fonctions pondérées dans le temps pour plus de détails sur les calculs et les intervalles. Le calcul utilise l'algorithme de calcul Last Observed Carry Forward pour les intervalles entre les points de données. Dans cette approche, le point de données est calculé comme étant la dernière valeur observée jusqu'au prochain horodatage du point de données d'entrée. Le poids est calculé comme l'intervalle de temps en secondes entre les points de données ou les limites des fenêtres. L'argument facultatif
Les formules suivantes sont utilisées pour les calculs où :
Équation pour l'écart type de la population :
Équation pour l'écart type de fréquence :
|
Le schéma suivant montre comment AWS IoT SiteWise calculer les fonctions temporellesfirst,, et last earliestlatest, par rapport à l'intervalle de temps actuel.
Note
La plage de temps pour
first(x),last(x)est (début de la fenêtre en cours, fin de la fenêtre en cours).L'intervalle de temps pour
latest(x)est (début de l'heure, fin de la fenêtre en cours).L'intervalle de temps pour
earliest(x)est (début de l'heure, fin de la fenêtre précédente).
Time-weighted paramètres des fonctions
Time-weighted les fonctions calculées pour la fenêtre d'agrégation prennent en compte les éléments suivants :
-
Points de données à l'intérieur de la fenêtre
-
Intervalles de temps entre les points de données
-
Dernier point de données avant la fenêtre
-
Premier point de données après la fenêtre (pour certains algorithmes)
Termes :
-
Point de données incorrect : tout point de données dont la qualité n'est pas bonne ou dont la valeur n'est pas numérique. Ceci n'est pas pris en compte dans le calcul des résultats d'une fenêtre.
-
Intervalle incorrect : intervalle suivant un point de données erroné. L'intervalle précédant le premier point de données connu est également considéré comme un mauvais intervalle.
-
Bon point de données — Tout point de données de bonne qualité et de bonne valeur numérique.
Note
-
AWS IoT SiteWise ne consomme des données
GOODde qualité que lorsqu'il calcule des transformations et des métriques. Il ignore les pointsUNCERTAINdeBADdonnées. -
L'intervalle précédant le premier point de données connu est considéré comme un mauvais intervalle. Pour plus d’informations, consultez Tutoriels d'expression de formules.
L'intervalle qui suit le dernier point de données connu se poursuit indéfiniment, affectant toutes les fenêtres suivantes. Lorsqu'un nouveau point de données arrive, la fonction recalcule l'intervalle.
En suivant les règles ci-dessus, le résultat global de la fenêtre est calculé et limité aux limites des fenêtres. Par défaut, la fonction envoie le résultat de la fenêtre uniquement si l'intervalle de la fenêtre entière est correct.
Si l'intervalle de validité de la fenêtre est inférieur à la longueur de la fenêtre, la fonction n'envoie pas la fenêtre.
Lorsque les points de données affectant le résultat de la fenêtre changent, la fonction recalcule la fenêtre, même si les points de données se trouvent en dehors de la fenêtre.
Si la propriété d'entrée possède au moins un point de données dans son historique et qu'un calcul a été lancé, la fonction calcule les fonctions d'agrégation pondérées dans le temps pour chaque intervalle de temps.
Exemple Exemple de scénario statetime
Prenons un exemple où vous avez une ressource avec les propriétés suivantes :
-
Idle— Une mesure qui est0ou1. Lorsque la valeur est1, la machine est inactive. -
Idle Time— Mesure qui utilise la formulestatetime(Idle)pour calculer la durée en secondes pendant laquelle la machine est inactive, par intervalle de 1 minute.
La propriété Idle possède les points de données suivants.
| Horodatage | 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 calcule la Idle Time propriété toutes les minutes à partir des valeurs de. Idle Une fois ce calcul terminé, la propriété Idle Time possède les points de données suivants.
| Horodatage | 2:00:00 PM | 2:01:00 PM | 2:02:00 PM | 2:03:00 PM | 2:04:00 PM |
| Idle Time | N/A | 30 | 60 | 45 | 0 |
AWS IoT SiteWise effectue les calculs suivants Idle Time à la fin de chaque minute.
-
À 2:00 PM (pour 1:59 PM à 2:00 PM)
-
Il n'y a pas de données pour
Idleavant 2:00 PM, donc aucun point de données n'est calculé.
-
-
À 2:01 PM (pour 2:00 PM à 2:01 PM)
-
À 2:00:00 PM, la machine est active (
Idleest égal à0). -
À 2:00:30 PM, la machine es inactive (
Idleest égal à1). -
Idlene change plus avant la fin de l'intervalle à 2:01:00 PM,Idle Timeest donc égal à 30 secondes.
-
-
À 2:02 PM (pour 2:01 PM à 2:02 PM)
-
À 2:01:00 PM, la machine est inactive (conformément au dernier point de données à 2:00:30 PM).
-
À 2:01:15 PM, la machine est toujours inactive.
-
Idlene change plus non plus avant la fin de l'intervalle à 2:02:00 PM,Idle Timeest donc égal à 60 secondes.
-
-
À 2:03 PM (pour 2:02 PM à 2:03 PM)
-
À 2:02:00 PM, la machine est inactive (conformément au dernier point de données à 2:01:15 PM).
-
À 2:02:45 PM, la machine est active.
-
Idlene change plus non plus avant la fin de l'intervalle à 2:03:00 PM,Idle Timeest donc égal à 45 secondes.
-
-
À 2:04 PM (pour 2:03 PM à 2:04 PM)
-
À 2:03:00 PM, la machine est active (conformément au dernier point de données à 2:02:45 PM).
-
Idlene change plus non plus avant la fin de l'intervalle à 2:04:00 PM,Idle Timeest donc égal à 0 seconde.
-
Exemple Exemple TimeWeightedAvg et TimeWeightedStDev scénario
Les tableaux suivants fournissent des exemples d'entrées et de sorties pour ces mesures de fenêtre d'une minute :Avg(x), TimeWeightedAvg(x), TimeWeightedAvg(x, "linear"), stDev(x), timeWeightedStDev(x),
timeWeightedStDev(x, 'p').
Exemple de saisie pour une fenêtre agrégée d'une minute :
Note
Ces points de données sont tous GOOD de qualité.
| 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 |
Résultats de sortie agrégés :
Note
Aucun — Résultat non produit pour cette fenêtre.
| Heure | Avg(x) |
TimeWeightedAvg(x) |
TimeWeightedAvg(X, "linear") |
stDev(X) |
timeWeightedStDev(x) |
timeWeightedStDev(x, 'p') |
|---|---|---|---|---|---|---|
| 3 h 00 | 4 | Aucune | Aucune | 0 | Aucune | Aucune |
| 3 h 01 | 2 | 4 | 3 | 0 | 0 | 0 |
| 3 h 02 | 14 | 9 | 13 | 6 | 5,430610041581775 | 5,385164807134504 |
| 3 h 03 h 00 | 11 | 13 | 12,875 | 8,54400374531753 | 7,724054437220943 | 7,659416862050705 |
| 3 h 04 | 0 USD | 10 | 2,5 | 0 | 10,084389681792215 | 10 |
| 3 h 05 | Aucune | 0 | 0 | Aucune | 0 | 0 |
Utiliser des fonctions temporelles dans les transformations
Dans les transformations uniquement, vous pouvez utiliser la pretrigger() fonction pour récupérer la valeur de GOOD qualité d'une variable avant la mise à jour de la propriété qui a lancé le calcul de transformation en cours.
Prenons l'exemple d'un fabricant AWS IoT SiteWise qui surveille l'état d'une machine. Le fabricant utilise les mesures et les transformations suivantes pour représenter le processus :
-
Une mesure
current_state, qui peut être 0 ou 1.-
Si la machine est en état de nettoyage, est
current_stateégal à 1. -
Si la machine est en état de fabrication, est
current_stateégal à 0.
-
-
Une transformation
cleaning_state_duration, ça équivaut àif(pretrigger(current_state) == 1, timestamp(current_state) - timestamp(pretrigger(current_state)), none). Cette transformation renvoie la durée pendant laquelle la machine est restée en état de nettoyage en secondes, au format d'époque Unix. Pour plus d'informations, consultez Utiliser des fonctions conditionnelles dans des expressions de formule et la fonction timestamp ().
Si la machine reste en état de nettoyage plus longtemps que prévu, le fabricant peut examiner la machine.
Vous pouvez également utiliser la pretrigger() fonction dans des transformations multivariées. Par exemple, vous avez deux mesures nommées x ety, et une transformationz, égale àx + y +
pretrigger(y). Le tableau suivant indique les valeurs pour x et z entre 9 h 00 et 9 h 15. y
Note
-
Cet exemple suppose que les valeurs des mesures arrivent par ordre chronologique. Par exemple, la valeur de
xpour 09h00 arrive avant la valeur dexpour 09h05. -
Si les points de données pour 9 h 05 arrivent avant les points de données pour 9 h 00, cela
zn'est pas calculé à 9 h 05. -
Si la valeur de
xpour 9 h 05 arrive avant la valeur dexpour 9 h 00 et que les valeurs deyarrivent par ordre chronologique, elles sontzégales22 = 20 + 1 + 1à 9 h 05.
| 9 H 00 | 9 H 05 | 9 H 10 | 9 H 15 | |
|---|---|---|---|---|
|
|
10 |
20 |
30 |
|
|
|
1 |
2 |
3 |
|
|
|
|
23 = 20 + 2 + 1
|
25 = 20 + 3 + 2
|
36 = 30 + 3 + 3
|