View a markdown version of this page

Verwenden Sie temporale Funktionen in Formelausdrücken - AWS IoT SiteWise

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden Sie temporale Funktionen in Formelausdrücken

Verwenden Sie temporale Funktionen, um Werte zurückzugeben, die auf Zeitstempeln von Datenpunkten basieren.

Verwenden Sie temporale Funktionen in Metriken

Nur in Metriken können Sie die folgenden Funktionen verwenden, die Werte zurückgeben, die auf Zeitstempeln von Datenpunkten basieren.

Temporale Funktionsargumente müssen Eigenschaften aus dem lokalen Anlagenmodell oder verschachtelte Ausdrücke sein. Das bedeutet, dass Sie in temporalen Funktionen keine Eigenschaften aus untergeordneten Assetmodellen verwenden können.

Sie können verschachtelte Ausdrücke in temporalen Funktionen verwenden. Wenn Sie verschachtelte Ausdrücke verwenden, gelten die folgenden Regeln:

  • Jedes Argument kann nur eine Variable haben.

    Zum Beispiel latest( t*9/5 + 32 ) wird unterstützt.

  • Argumente können keine Aggregationsfunktionen sein.

    Wird beispielsweise first( sum(x) ) nicht unterstützt.

Funktion Description

first(x)

Gibt den Wert der angegebenen Variablen mit dem frühesten Zeitstempel über das aktuelle Zeitintervall hinweg zurück.

last(x)

Gibt den Wert der angegebenen Variablen mit dem spätesten Zeitstempel über das aktuelle Zeitintervall hinweg zurück.

earliest(x)

Gibt den letzten Wert der angegebenen Variablen vor dem Beginn des aktuellen Zeitintervalls zurück.

Diese Funktion berechnet einen Datenpunkt für jedes Zeitintervall, wenn die Eingabeeigenschaft mindestens einen Datenpunkt im Verlauf hat. Details dazu finden Sie unter time-range-defintion.

latest(x)

Gibt den letzten Wert der angegebenen Variablen mit dem letzten Zeitstempel vor dem Ende des aktuellen Zeitintervalls zurück.

Diese Funktion berechnet einen Datenpunkt für jedes Zeitintervall, wenn die Eingabeeigenschaft mindestens einen Datenpunkt im Verlauf hat. Details dazu finden Sie unter time-range-defintion.

statetime(x)

Gibt die Zeitspanne in Sekunden zurück, in der die angegebenen Variablen im aktuellen Zeitintervall positiv sind. Sie können die Vergleichsfunktionen verwenden, um eine Transformationseigenschaft zu erstellen, die von der statetime Funktion verwendet werden soll.

Wenn Sie beispielsweise eine Idle-Eigenschaft haben, für die 0 oder 1 gilt, können Sie die Leerlaufzeit pro Zeitintervall mit diesem Ausdruck berechnen: IdleTime = statetime(Idle). Weitere Informationen finden Sie im Beispielzustandszeitszenario.

Diese Funktion unterstützt keine Metrikeigenschaften als Eingabevariablen.

Diese Funktion berechnet einen Datenpunkt für jedes Zeitintervall, wenn die Eingabeeigenschaft mindestens einen Datenpunkt im Verlauf hat.

TimeWeightedAvg(x, [interpolation])

Gibt den Durchschnitt der Eingabedaten zurück, gewichtet mit Zeitintervallen zwischen Punkten.

Einzelheiten zu Berechnungen und Intervallen finden Sie unter Parameter für zeitgewichtete Funktionen.

Das optionale Argument interpolaton muss eine Zeichenkettenkonstante sein:

  • locf— Das ist die Standardeinstellung. Bei der Berechnung wird der Berechnungsalgorithmus Last Observed Carry Forward für Intervalle zwischen Datenpunkten verwendet. Bei diesem Ansatz wird der Datenpunkt als letzter beobachteter Wert bis zum nächsten Zeitstempel des Eingabedatenpunkts berechnet.

    Der Wert nach einem guten Datenpunkt wird als sein Wert bis zum nächsten Datenpunkt-Zeitstempel extrapoliert.

  • linear— Die Berechnung verwendet den Berechnungsalgorithmus der linearen Interpolation für Intervalle zwischen Datenpunkten.

    Der Wert zwischen zwei guten Datenpunkten wird als lineare Interpolation zwischen den Werten dieser Datenpunkte extrapoliert.

    Der Wert zwischen guten und schlechten Datenpunkten oder der Wert nach dem letzten guten Datenpunkt wird als guter Datenpunkt extrapoliert.

TimeWeightedStDev(x, [algo])

Gibt die Standardabweichung der Eingabedaten zurück, gewichtet mit Zeitintervallen zwischen den Punkten.

Einzelheiten zu Berechnungen und Intervallen finden Sie unter Parameter für zeitgewichtete Funktionen.

Bei der Berechnung wird der Berechnungsalgorithmus Last Observed Carry Forward für Intervalle zwischen Datenpunkten verwendet. Bei diesem Ansatz wird der Datenpunkt als letzter beobachteter Wert bis zum nächsten Zeitstempel des Eingabedatenpunkts berechnet. Das Gewicht wird als Zeitintervall in Sekunden zwischen Datenpunkten oder Fenstergrenzen berechnet.

Das optionale Argument algo muss eine Zeichenkettenkonstante sein:

  • f— Das ist die Standardeinstellung. Sie gibt eine unverzerrte gewichtete Stichprobenvarianz mit Frequenzgewichten zurück, wobei die Berechnung in Sekunden TimeWeight erfolgt. Für diesen Algorithmus wird in der Regel die Standardabweichung zugrunde gelegt. Er wird als Bessel-Korrektur der Standardabweichung für gewichtete Stichproben bezeichnet.

  • p— Gibt die verzerrte gewichtete Stichprobenvarianz zurück, auch bekannt als Populationsvarianz.

Die folgenden Formeln werden für die Berechnung verwendet, wobei:

  • S p = Standardabweichung der Grundgesamtheit

  • S f = Frequenzstandardabweichung

  • X i = eingehende Daten

  • ω i = Gewicht, das dem Zeitintervall in Sekunden entspricht

  • μ* = ein gewichteter Mittelwert der eingehenden Daten

Gleichung für die Standardabweichung der Grundgesamtheit:

Gleichung für die Standardabweichung der Grundgesamtheit.

Gleichung für die Frequenzstandardabweichung:

Gleichung für die Frequenzstandardabweichung.

Das folgende Diagramm zeigt, wie die Zeitfunktionenfirst,, und last earliestlatest, relativ zum aktuellen Zeitintervall AWS IoT SiteWise berechnet werden.

AWS IoT SiteWise Temporale Funktionen geben Datenpunkte auf der Grundlage ihres Zeitstempels zurück.
Anmerkung
  • Der Zeitbereich fürfirst(x), last(x) ist (aktueller Fensterstart, aktuelles Fensterende].

  • Der Zeitbereich für latest(x) ist (Beginn der Zeit, aktuelles Fensterende).

  • Der Zeitbereich für earliest(x) ist (Beginn der Zeit, vorheriges Fensterende].

Time-weighted Funktionen, Parameter.

Time-weighted Funktionen, die für das Aggregatfenster berechnet wurden, berücksichtigen Folgendes:

  • Datenpunkte innerhalb des Fensters

  • Zeitintervalle zwischen Datenpunkten

  • Letzter Datenpunkt vor dem Fenster

  • Erster Datenpunkt nach dem Fenster (für einige Algorithmen)

Begriffe:

  • Schlechter Datenpunkt — Jeder Datenpunkt mit schlechter Qualität oder keinem Zahlenwert. Dies wird bei der Berechnung des Fensterergebnisses nicht berücksichtigt.

  • Schlechtes Intervall — Das Intervall nach einem schlechten Datenpunkt. Das Intervall vor dem ersten bekannten Datenpunkt wird ebenfalls als schlechtes Intervall betrachtet.

  • Guter Datenpunkt — Jeder Datenpunkt mit guter Qualität und numerischem Wert.

Anmerkung
  • AWS IoT SiteWise verbraucht nur GOOD Qualitätsdaten, wenn es Transformationen und Metriken berechnet. Es ignoriert Datenpunkte. UNCERTAIN BAD

  • Das Intervall vor dem ersten bekannten Datenpunkt wird als schlechtes Intervall betrachtet. Weitere Informationen finden Sie unter Tutorials zu Formelausdrücken.

Das Intervall nach dem letzten bekannten Datenpunkt dauert unbegrenzt an und wirkt sich auf alle nachfolgenden Fenster aus. Wenn ein neuer Datenpunkt eintrifft, berechnet die Funktion das Intervall neu.

Gemäß den obigen Regeln wird das aggregierte Fensterergebnis berechnet und auf Fenstergrenzen beschränkt. Standardmäßig sendet die Funktion das Fensterergebnis nur, wenn das gesamte Fenster einem guten Intervall entspricht.

Wenn das Intervall für einen guten Zeitraum kleiner als die Fensterlänge ist, sendet die Funktion das Fenster nicht.

Wenn sich die Datenpunkte, die das Fensterergebnis beeinflussen, ändern, berechnet die Funktion das Fenster neu, auch wenn sich die Datenpunkte außerhalb des Fensters befinden.

Wenn die Eingabeeigenschaft mindestens einen Datenpunkt in ihrer Historie hat und eine Berechnung initiiert wurde, berechnet die Funktion die zeitgewichteten Aggregatfunktionen für jedes Zeitintervall.

Beispiel
Beispielzustandszeitszenario

Betrachten Sie ein Beispiel mit einer Komponente mit den folgenden Eigenschaften:

  • Idle— Ein Messwert, der oder ist. 0 1 Wenn der Wert „1“ ist, befindet sich die Maschine im Leerlauf.

  • Idle Time— Eine Metrik, die anhand der Formel berechnetstatetime(Idle), wie lange sich das Gerät im Leerlauf befindet, pro 1-Minuten-Intervall in Sekunden.

Die Idle-Eigenschaft verfügt über die folgenden Datenpunkte.

Zeitstempel 14:00:00 Uhr 14:00:30 Uhr 14:01:15 Uhr 14:02:45 Uhr 14:04:00 Uhr
Idle 0 1 1 0 0

AWS IoT SiteWise berechnet die Idle Time Eigenschaft jede Minute anhand der Werte vonIdle. Nach Abschluss dieser Berechnung verfügt die Idle Time-Eigenschaft über die folgenden Datenpunkte.

Zeitstempel 14:00:00 Uhr 14:01:00 Uhr 14:02:00 Uhr 14:03:00 Uhr 14:04:00 Uhr
Idle Time N/A 30 60 45 0

AWS IoT SiteWise führt am Ende jeder Minute die folgenden Berechnungen durch. Idle Time

  • Um 14:00 Uhr (für 13:59 Uhr bis 14:00 Uhr)

    • Vor 14:00 Uhr liegen keine Daten für Idle vor, daher wird kein Datenpunkt berechnet.

  • Um 14:01 Uhr (für 14:00 Uhr bis 14:01 Uhr)

    • Um 14:00:00 Uhr ist die Maschine aktiv (Idle ist 0).

    • Um 14:00:30 Uhr befindet sich die Maschine im Leerlauf (Idle ist 1).

    • Idle ändert sich vor dem Ende des Intervalls um 14:01:00 Uhr nicht mehr, Idle Time ist also 30 Sekunden.

  • Um 14:02 Uhr (für 14:01 bis 14:02 Uhr)

    • Um 14:01:00 Uhr befindet sich die Maschine im Leerlauf (entsprechend des letzten Datenpunkts um 14:00:30 Uhr).

    • Um 14:01:15 Uhr befindet sich die Maschine noch im Leerlauf.

    • Idle ändert sich vor dem Ende des Intervalls um 14:02:00 Uhr nicht mehr, Idle Time ist also 60 Sekunden.

  • Um 14:03 Uhr (für 14:02 Uhr bis 14:03 Uhr)

    • Um 14:02:00 Uhr befindet sich die Maschine im Leerlauf (entsprechend des letzten Datenpunkts um 14:01:15 Uhr).

    • Um 14:02:45 Uhr ist die Maschine aktiv.

    • Idle ändert sich vor dem Ende des Intervalls um 14:03:00 Uhr nicht mehr, Idle Time ist also 45 Sekunden.

  • Um 14:04 Uhr (für 14:03 Uhr bis 14:04 Uhr)

    • Um 14:03:00 Uhr ist die Maschine aktiv (entsprechend des letzten Datenpunkts um 14:02:45 Uhr).

    • Idle ändert sich vor dem Ende des Intervalls um 14:04:00 Uhr nicht mehr, Idle Time ist also 0 Sekunden.

Beispiel
Beispiel TimeWeightedAvg und TimeWeightedStDev Szenario

Die folgenden Tabellen enthalten Beispieleingaben und -ausgaben für diese einminütigen Fenstermetriken:Avg(x), TimeWeightedAvg(x), TimeWeightedAvg(x, "linear"), stDev(x), timeWeightedStDev(x), timeWeightedStDev(x, 'p').

Beispieleingabe für ein einminütiges Aggregatfenster:

Anmerkung

Diese Datenpunkte sind alle GOOD qualitativ hochwertig.

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

Ausgabe der aggregierten Ergebnisse:

Anmerkung

Keine — Für dieses Fenster wurde kein Ergebnis generiert.

Zeit Avg(x) TimeWeightedAvg(x) TimeWeightedAvg(X, "linear") stDev(X) timeWeightedStDev(x) timeWeightedStDev(x, 'p')
3:00:00 4 Keine Keine 0 Keine Keine
3:01 Uhr 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 Keine 0 0 Keine 0 0

Verwenden Sie temporale Funktionen in Transformationen

Nur in Transformationen können Sie die pretrigger() Funktion verwenden, um den GOOD Qualitätswert für eine Variable vor der Eigenschaftenaktualisierung abzurufen, die die aktuelle Transformationsberechnung initiiert hat.

Stellen Sie sich ein Beispiel vor AWS IoT SiteWise , bei dem ein Hersteller den Status einer Maschine überwacht. Der Hersteller verwendet die folgenden Messungen und Transformationen, um den Prozess darzustellen:

  • Ein Maßcurrent_state, das 0 oder 1 sein kann.

    • Wenn sich das Gerät im Reinigungszustand befindet, current_state entspricht 1.

    • Wenn sich die Maschine im Fertigungszustand befindet, current_state entspricht 0.

  • Eine Transformationcleaning_state_duration, das ist gleichif(pretrigger(current_state) == 1, timestamp(current_state) - timestamp(pretrigger(current_state)), none). Diese Transformation gibt im Unix-Epochenformat in Sekunden zurück, wie lange sich die Maschine im Reinigungszustand befunden hat. Weitere Informationen finden Sie unter Verwenden Sie bedingte Funktionen in Formelausdrücken und zur Funktion timestamp ().

Wenn das Gerät länger als erwartet im Reinigungszustand bleibt, untersucht der Hersteller das Gerät möglicherweise.

Sie können die pretrigger() Funktion auch in multivariaten Transformationen verwenden. Beispielsweise haben Sie zwei Messungen mit dem Namen x und und y eine Transformationz, die entspricht. x + y + pretrigger(y) Die folgende Tabelle zeigt die Werte für xy, und z von 9:00 Uhr bis 9:15 Uhr.

Anmerkung
  • In diesem Beispiel wird davon ausgegangen, dass die Werte für die Messungen in chronologischer Reihenfolge ankommen. Beispielsweise kommt der Wert x für 09:00 AM vor dem Wert von x für 09:05 AM an.

  • Wenn die Datenpunkte für 9:05 AM vor den Datenpunkten für 9:00 AM ankommen, wird z nicht um 9:05 AM berechnet.

  • Wenn der Wert x für 9:05 AM vor dem Wert x für 09:00 Uhr ankommt und die Werte von chronologisch y ankommen, z entspricht 22 = 20 + 1 + 1 dies 9:05 AM.

09:00 UHR 09:05 UHR 09:10 UHR 09:15 UHR

x

10

20

30

y

1

2

3

z = x + y + pretrigger(y)

yempfängt vor 09:00 Uhr keinen Datenpunkt. Daher wird z nicht um 09:00 Uhr berechnet.

23 = 20 + 2 + 1

pretrigger(y)entspricht 1.

25 = 20 + 3 + 2

xerhält keinen neuen Datenpunkt. pretrigger(y)entspricht 2.

36 = 30 + 3 + 3

yerhält keinen neuen Datenpunkt. Entspricht pretrigger(y) also 3 um 09:15 Uhr.