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.
Transforma los datos (transforma)
Las transformaciones son expresiones matemáticas que asignan puntos de datos de la propiedad de un activo de un formulario a otro. Una expresión de transformación consta de variables de propiedad de activos, literales, operadores y funciones comunes. Los puntos de datos transformados mantienen una one-to-one relación con los puntos de datos de entrada. AWS IoT SiteWise calcula un nuevo punto de datos transformado cada vez que alguna de las propiedades de entrada recibe un nuevo punto de datos.
Por ejemplo, si su activo tiene un flujo de medición de temperatura denominado Temperature_C
con unidades en Celsius, puede convertir cada punto de datos a Fahrenheit con la fórmula Temperature_F = 9/5 * Temperature_C + 32
. Cada vez que AWS IoT SiteWise recibe un punto de datos en el flujo de Temperature_C
medición, el Temperature_F
valor correspondiente se calcula en unos segundos y está disponible como Temperature_F
propiedad.
Si la transformación contiene más de una variable, el punto de datos que llegue antes inicia el cálculo inmediatamente. Considere un ejemplo en el que un fabricante de piezas utiliza una transformación para monitorear la calidad del producto. Aplicando estándares diferentes según el tipo de pieza, el fabricante utiliza las siguientes mediciones para representar el proceso:
-
Part_Number
: una cadena que identifica el tipo de pieza. -
Good_Count
: un número entero que aumenta en uno si la pieza cumple el estándar. -
Bad_Count
: un número entero que aumenta en uno si la pieza no cumple el estándar.
El fabricante crea además una transformación Quality_Monitor
, que equivale a if(eq(Part_Number, "BLT123") and (Bad_Count / (Good_Count + Bad_Count) > 0.1),
"Caution", "Normal")
.
Esta transformación monitorea el porcentaje de piezas defectuosas producidas para un tipo de pieza específico. Si el número de pieza es BLT123 y el porcentaje de piezas defectuosas supera el 10 por ciento (0,1), la transformación vuelve"Caution"
. De lo contrario, la transformación devuelve el mensaje "Normal"
.
nota
-
Si
Part_Number
recibe un nuevo punto de datos antes que otras mediciones, la transformación deQuality_Monitor
utiliza el nuevo valor dePart_Number
y los valores deGood_Count
yBad_Count
más recientes. Para evitar errores, reinicieGood_Count
yBad_Count
antes de la siguiente ronda de fabricación. -
Utilice las métricas si quiere evaluar las expresiones solo después de que todas las variables hayan recibido nuevos puntos de datos.
Defina las transformaciones (consola)
Al definir una transformación para un modelo de activos en la AWS IoT SiteWise consola, se especifican los siguientes parámetros:
-
Nombre: el nombre de la propiedad.
-
Unidad: (opcional) la unidad científica de la propiedad, como mm o Celsius.
-
Tipo de datos: el tipo de datos de la transformación, que puede ser Doble o Cadena.
-
ID externo: (opcional) Este es un ID definido por el usuario. Para obtener más información, consulte Haga referencia a objetos con objetos externos IDs en la Guía del usuario de AWS IoT SiteWise .
-
Fórmula: la expresión de transformación. Las expresiones de transformación no pueden usar funciones de agregación ni funciones temporales. Para abrir la función de autocompletar, comienza a escribir o presiona la tecla de flecha hacia abajo. Para obtener más información, consulte Usa expresiones de fórmula.
importante
Las transformaciones pueden agregar propiedades de tipo entero, doble, booleano o cadena. Los valores booleanos se convierten en
0
(falso) y1
(verdadero).Las transformaciones deben especificar una o más propiedades que no sean atributos y cualquier número de propiedades de atributo. AWS IoT SiteWise calcula un nuevo punto de datos transformado cada vez que la propiedad de entrada de no atributo recibe un nuevo punto de datos. Los nuevos valores de atributo no lanzan actualizaciones de transformación. La misma tasa de solicitudes para API las operaciones de datos de propiedades de los activos se aplica a los resultados del cálculo de las transformaciones.
Las expresiones de fórmula solo pueden generar valores dobles o de cadena. Las expresiones anidadas pueden generar otros tipos de datos, como cadenas, pero la fórmula en su conjunto debe evaluarse como un número o una cadena. Puede usar la función jp para convertir una cadena en un número. El valor booleano debe ser 1 (verdadero) o 0 (falso). Para obtener más información, consulte Valores indefinidos, infinitos y de desbordamiento.
Para obtener más información, consulte Cree un modelo de activos (consola).
Defina las transformaciones ()AWS CLI
Al definir una transformación para un modelo de activos con AWS IoT SiteWise API, se especifican los siguientes parámetros:
-
name
: el nombre de la propiedad. -
unit
: (opcional) la unidad científica de la propiedad, como mm o Celsius. -
dataType
: el tipo de datos de la transformación, que debe serDOUBLE
oSTRING
. -
externalId
— (Opcional) Se trata de un ID definido por el usuario. Para obtener más información, consulte Haga referencia a objetos con objetos externos IDs en la Guía del usuario de AWS IoT SiteWise . -
expression
– Una expresión de transformación. Las expresiones de transformación no pueden usar funciones de agregación ni funciones temporales. Para obtener más información, consulte Usa expresiones de fórmula. -
variables
– Una lista de variables que define las otras propiedades del activo que se van a utilizar en la expresión. Cada estructura de variable contiene un nombre sencillo para utilizar en la expresión y una estructura devalue
que identifica qué propiedad vincular a esa variable. La estructuravalue
contiene la siguiente información:-
propertyId
: el ID de la propiedad desde la que se van a introducir los valores. Puede usar el nombre de la propiedad en lugar de su ID.
importante
Las transformaciones pueden agregar propiedades de tipo entero, doble, booleano o cadena. Los valores booleanos se convierten en
0
(falso) y1
(verdadero).Las transformaciones deben especificar una o más propiedades que no sean atributos y cualquier número de propiedades de atributo. AWS IoT SiteWise calcula un nuevo punto de datos transformado cada vez que la propiedad de entrada de no atributo recibe un nuevo punto de datos. Los nuevos valores de atributo no lanzan actualizaciones de transformación. La misma tasa de solicitudes para API las operaciones de datos de propiedades de los activos se aplica a los resultados del cálculo de las transformaciones.
Las expresiones de fórmula solo pueden generar valores dobles o de cadena. Las expresiones anidadas pueden generar otros tipos de datos, como cadenas, pero la fórmula en su conjunto debe evaluarse como un número o una cadena. Puede usar la función jp para convertir una cadena en un número. El valor booleano debe ser 1 (verdadero) o 0 (falso). Para obtener más información, consulte Valores indefinidos, infinitos y de desbordamiento.
-
ejemplo definición de transformación
El siguiente ejemplo muestra una propiedad de transformación que convierte los datos de medición de temperatura de un activo de Celsius a Fahrenheit. Este objeto es un ejemplo de un objeto AssetModelPropertyque contiene una transformación. Puedes especificar este objeto como parte de la carga útil de la CreateAssetModelsolicitud para crear una propiedad de transformación. Para obtener más información, consulte Cree un modelo de activos (AWS CLI).
{
...
"assetModelProperties": [...
{ "name": "Temperature F", "dataType": "DOUBLE", "type": { "transform": { "expression": "9/5 * temp_c + 32", "variables": [ { "name": "temp_c", "value": { "propertyId": "Temperature C" } } ] } }, "unit": "Fahrenheit" } ],...
}
ejemplo definición de transformación que contiene tres variables
En el siguiente ejemplo, se muestra una propiedad de transformación que devuelve un mensaje de advertencia ("Caution"
) si más del 10 por ciento de las BLT123 piezas no cumplen el estándar. De lo contrario, devuelve un mensaje informativo ("Normal"
).
{
...
"assetModelProperties": [...
{ "name": "Quality_Monitor", "dataType": "STRING", "type": { "transform": { "expression": "if(eq(Part_Number,"BLT123") and (Bad_Count / (Good_Count + Bad_Count) > 0.1), "Caution", "Normal")", "variables": [ { "name": "Part_Number", "value": { "propertyId": "Part Number" } }, { "name": "Good_Count", "value": { "propertyId": "Good Count" } }, { "name": "Bad_Count", "value": { "propertyId": "Bad Count" } } ] } } }...
}