Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Utilice funciones temporales en las expresiones de fórmula
Utilice funciones temporales para devolver valores basados en las marcas de tiempo de los puntos de datos.
Utilice funciones temporales en las métricas
Solo en las métricas, puede utilizar las siguientes funciones que devuelven valores basados en marcas temporales de puntos de datos.
Los argumentos de las funciones temporales deben ser propiedades del modelo de activo local o expresiones anidadas. Esto significa que no se pueden usar propiedades de modelos de entidades secundarias en las funciones temporales.
Puede usar expresiones anidadas en las funciones temporales. Cuando se utilizan expresiones anidadas, se aplican las reglas siguientes:
-
Cada argumento solo puede tener una variable.
Por ejemplo,
latest( t*9/5 + 32 )
no se admite. -
Los argumentos no pueden ser funciones de agregación.
Por ejemplo,
first( sum(x) )
no es compatible.
Función | Descripción |
---|---|
|
Devuelve el valor de la variable dada con la marca temporal más temprana durante el intervalo de tiempo especificado. |
|
Devuelve el valor de la variable dada con la última marca temporal durante el intervalo de tiempo especificado. |
|
Devuelve el último valor de la variable dada antes del inicio del intervalo de tiempo actual. Esta función calcula un punto de datos para cada intervalo de tiempo, si la propiedad de entrada tiene al menos un punto de datos en su historial. Para obtener más información, consulte time-range-defintion. |
|
Devuelve el último valor de la variable dada con la última marca de tiempo antes del final del intervalo de tiempo actual. Esta función calcula un punto de datos para cada intervalo de tiempo, si la propiedad de entrada tiene al menos un punto de datos en su historial. Para obtener más información, consulte time-range-defintion. |
|
Devuelve la cantidad de tiempo en segundos que las variables dadas son positivas durante el intervalo de tiempo especificado. Puede usar lasfunciones de comparación para crear una propiedad de transformación para que la función Por ejemplo, si tiene una propiedad La función no admite propiedades de métricas como variables de entrada. Esta función calcula un punto de datos para cada intervalo de tiempo, si la propiedad de entrada tiene al menos un punto de datos en su historial. |
|
Devuelve el promedio de los datos de entrada ponderados con los intervalos de tiempo entre puntos. Consulte los Parámetros de las funciones ponderadas por tiempo para obtener detalles sobre el cálculo y los intervalos.El argumento opcional
|
|
Devuelve la desviación estándar de los datos de entrada ponderada con los intervalos de tiempo entre puntos. Consulte los Parámetros de las funciones ponderadas por tiempo para obtener detalles sobre el cálculo y los intervalos. El cálculo utiliza el algoritmo de cálculo de última observación realizada para los intervalos entre puntos de datos. En este enfoque, el punto de datos se calcula como el último valor observado hasta la siguiente entrada de punto de datos con marca temporal. El peso se calcula como el intervalo de tiempo en segundos entre los puntos de datos o los límites de las ventanas. El argumento opcional
Para el cálculo se utilizan las siguientes fórmulas, donde:
Ecuación para la desviación estándar de la población: Ecuación para la desviación estándar de la frecuencia: |
El siguiente diagrama muestra cómo se AWS IoT SiteWise calculan las funciones temporalesfirst
,, y last
earliest
latest
, en relación con el intervalo de tiempo actual.
nota
El intervalo de tiempo para
first(x)
,last(x)
es (inicio de la ventana actual, final de la ventana actual].El intervalo de tiempo
latest(x)
es (inicio del tiempo, fin de la ventana actual].El intervalo de tiempo
earliest(x)
es (principio del tiempo, fin de la ventana anterior].
Parámetros de funciones con ponderación de tiempo
Las funciones con ponderación temporal calculadas para la ventana de agregación tienen en cuenta lo siguiente:
-
Puntos de datos dentro de la ventana
-
Intervalos de tiempo entre puntos de datos
-
Último punto de datos antes de la ventana
-
Primer punto de datos después de la ventana (para algunos algoritmos)
Términos:
-
Punto de datos nulo: cualquier punto de datos con una calidad no buena o un valor que no sea numérico. Estos no se tienen en cuenta para el cálculo de los resultados de una ventana.
-
Intervalo nulo: el intervalo que sigue a un punto de datos nulo. El intervalo anterior al primer punto de datos conocido también se considera un intervalo nulo.
-
Punto de datos válido: cualquier punto de datos con buena calidad y valor numérico.
nota
-
AWS IoT SiteWise solo consume datos
GOOD
de calidad cuando calcula las transformaciones y las métricas. Ignora los puntos de datosUNCERTAIN
yBAD
. -
El intervalo anterior al primer punto de datos conocido se considera un intervalo nulo. Para obtener más información, consulte Tutoriales de expresiones de fórmula.
El intervalo posterior al último punto de datos conocido continúa indefinidamente y afecta a todas las ventanas siguientes. Cuando llega un nuevo punto de datos, la función vuelve a calcular el intervalo.
Siguiendo las reglas anteriores, se calcula el resultado agregado de la ventana y se limita a los límites de la ventana. De forma predeterminada, la función solo envía el resultado de la ventana si toda la ventana es un intervalo válido.
Si el intervalo válido de la ventana es inferior a la longitud de la ventana, la función no envía la ventana.
Cuando cambian los puntos de datos que afectan al resultado de la ventana, la función vuelve a calcular la ventana, incluso si los puntos de datos están fuera de la ventana.
Si la propiedad de entrada tiene al menos un punto de datos en su historial y se ha iniciado un cálculo, la función calcula las funciones agregadas con ponderación temporal para cada intervalo de tiempo.
ejemplo Escenario de statetime de ejemplo
Considere un ejemplo en el que tiene un activo con las siguientes propiedades:
-
Idle
: una medición que es0
o1
. Cuando el valor es1
, la máquina está inactiva. -
Idle Time
: una métrica que utiliza la fórmulastatetime(Idle)
para calcular la cantidad de tiempo en segundos en que la máquina está inactiva, por cada intervalo de 1 minuto.
La propiedad Idle
tiene los siguientes puntos de datos.
Timestamp | 14:00:00 h | 14:00:30 h | 14:01:15 h | 14:02:45 h | 14:04:00 h |
Idle | 0 | 1 | 1 | 0 | 0 |
AWS IoT SiteWise calcula la Idle Time
propiedad cada minuto a partir de los valores deIdle
. Una vez realizado este cálculo, la propiedad Idle Time
tiene los siguientes puntos de datos.
Timestamp | 14:00:00 h | 14:01:00 h | 14:02:00 h | 14:03:00 h | 14:04:00 h |
Idle Time | N/A | 30 | 60 | 45 | 0 |
AWS IoT SiteWise realiza los siguientes cálculos Idle Time
al final de cada minuto.
-
A las 14:00 h (de las 13:59 h a las 14:00 h)
-
No hay datos para
Idle
antes de las 14:00 h, por lo que no se calcula ningún punto de datos.
-
-
A las 14:01 h (de las 14:00 h a las 14:01 h)
-
A las 14:00:00 h, la máquina está activa (
Idle
es0
). -
A las 14:00:30 h, la máquina está inactiva (
Idle
es1
). -
Idle
no vuelve a cambiar antes del final del intervalo de las 14:01:00 h, por lo que el valor deIdle Time
es de 30 segundos.
-
-
A las 14:02 h (de las 14:01 h a las 14:02 h)
-
A las 14:01:00 h, el equipo está inactivo (según el último punto de datos de las 14:00:30 h).
-
A las 14:01:15 h, la máquina sigue inactiva.
-
Idle
no vuelve a cambiar antes del final del intervalo de las 14:02:00 h, por lo que el valor deIdle Time
es de 60 segundos.
-
-
A las 14:03 h (de las 14:02 h a las 14:03 h)
-
A las 14:02:00 h, el equipo está inactivo (según el último punto de datos de las 14:01:15 h).
-
A las 14:02:45 h, la máquina está activa.
-
Idle
no vuelve a cambiar antes del final del intervalo de las 14:03:00 h, por lo que el valor deIdle Time
es de 45 segundos.
-
-
A las 14:04 h (de las 14:03 h a las 14:04 h)
-
A las 14:03:00 h, el equipo está activo (según el último punto de datos de las 14:02:45 h).
-
Idle
no vuelve a cambiar antes del final del intervalo de las 14:04:00 h, por lo que el valor deIdle Time
es de 0 segundos.
-
ejemplo Ejemplo TimeWeightedAvg y TimeWeightedStDev escenario
Las siguientes tablas proporcionan ejemplos de entradas y salidas para estas métricas de ventana de un minuto: Avg(x), TimeWeightedAvg(x), TimeWeightedAvg(x, "linear"), stDev(x), timeWeightedStDev(x),
timeWeightedStDev(x, 'p')
.
Ejemplo de entrada para una ventana agregada de un minuto:
nota
Todos estos puntos de datos son GOOD
de calidad.
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 |
Salida de resultados agregados:
nota
Ninguno: no se produjo un resultado para esta ventana.
Tiempo | Avg(x) |
TimeWeightedAvg(x) |
TimeWeightedAvg(X, "linear") |
stDev(X) |
timeWeightedStDev(x) |
timeWeightedStDev(x, 'p') |
---|---|---|---|---|---|---|
3:00:00 | 4 | Ninguna | Ninguna | 0 | Ninguna | Ninguna |
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,5400374531753 | 7,724054437220943 | 7,659416862050705 |
3:04:00 | 0 | 10 | 2,5 | 0 | 10,084389681792215 | 10 |
3:05:00 | Ninguna | 0 | 0 | Ninguna | 0 | 0 |
Usa funciones temporales en las transformaciones
Solo en las transformaciones, puede utilizar la función pretrigger()
para recuperar el valor de calidad GOOD
de una variable antes de actualizar la propiedad que inició el cálculo de la transformación actual.
Considere un ejemplo en el que un fabricante utiliza AWS IoT SiteWise para supervisar el estado de una máquina. El fabricante utiliza las siguientes medidas y transformaciones para representar el proceso:
-
Una medición,
current_state
, que puede ser 0 o 1.-
Si la máquina está en estado de limpieza,
current_state
equivale a 1. -
Si la máquina está en estado de fabricación,
current_state
equivale a 0.
-
-
Una transformación,
cleaning_state_duration
, que equivale aif(pretrigger(current_state) == 1, timestamp(current_state) - timestamp(pretrigger(current_state)), none)
. Esta transformación devuelve el tiempo que la máquina ha estado en estado de limpieza en segundos, en formato de tiempo Unix. Para obtener más información, consulte Utilice funciones condicionales en las expresiones de fórmula y la función marca temporal().
Si la máquina permanece en estado de limpieza más tiempo del esperado, el fabricante podría investigar la máquina.
También puede utilizar la función pretrigger()
en transformaciones multivariantes. Por ejemplo, dispone de dos mediciones denominadas x
y y
, y una transformación z
, que equivale a x + y +
pretrigger(y)
. En la siguiente tabla se muestran los valores de x
, y
y z
desde las 9:00 h hasta las 9:15 h.
nota
-
En este ejemplo se presupone que los valores de las mediciones llegan en orden cronológico. Por ejemplo, el valor de
x
para las 09:00 h llega antes que el valor dex
para las 09:05 h. -
Si los puntos de datos de las 9:05 h llegan antes que los puntos de datos de las 9:00 h, no se calcula
z
a las 9:05 h. -
Si el valor de
x
para las 9:05 h llega antes que el valor dex
para las 09:00 h y los valores dey
llegan en orden cronológico,z
equivale a22 = 20 + 1 + 1
a las las 9:05 h.
09:00 h | 09:05 h | 09:10 h | 09:15 h | |
---|---|---|---|---|
|
10 |
20 |
30 |
|
|
1 |
2 |
3 |
|
|
|
23 = 20 + 2 + 1
|
25 = 20 + 3 + 2
|
36 = 30 + 3 + 3
|