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.
Transformer les données (transformations)
Les transformations sont des expressions mathématiques qui mappent les points de données des propriétés des actifs d'un formulaire à l'autre. Une expression de transformation comprend des variables de propriété d'actif, des littéraux, des opérateurs et des fonctions. Les points de données transformés entretiennent une one-to-one relation avec les points de données d'entrée. AWS IoT SiteWise calcule un nouveau point de données transformé chaque fois que l'une des propriétés d'entrée reçoit un nouveau point de données.
Note
Pour les mises à jour de propriétés avec le même horodatage, les valeurs de sortie peuvent être remplacées par des mises à jour provenant d'autres propriétés entrantes.
Par exemple, si votre ressource a un flux de mesure de température nommé Temperature_C
avec des unités en Celsius, vous pouvez convertir chaque point de données en Fahrenheit avec la formule Temperature_F = 9/5 * Temperature_C + 32
. Chaque fois qu'un point de données est AWS IoT SiteWise reçu dans le flux de Temperature_C
mesure, la Temperature_F
valeur correspondante est calculée en quelques secondes et disponible en tant que Temperature_F
propriété.
Si votre transformation contient plusieurs variables, le point de données qui arrive le plus tôt lance immédiatement le calcul. Prenons l'exemple d'un fabricant de pièces utilisant une transformation pour contrôler la qualité de ses produits. En utilisant une norme différente basée sur le type de pièce, le fabricant utilise les mesures suivantes pour représenter le processus :
-
Part_Number
‐ Chaîne identifiant le type de pièce. -
Good_Count
‐ Un entier qui augmente d'un si la pièce répond à la norme. -
Bad_Count
‐ Un entier qui augmente d'un si la pièce ne répond pas à la norme.
Le fabricant crée également une transformationQuality_Monitor
, qui équivaut à if(eq(Part_Number, "BLT123") and (Bad_Count / (Good_Count + Bad_Count) > 0.1),
"Caution", "Normal")
.
Cette transformation surveille le pourcentage de pièces défectueuses produites pour un type de pièce spécifique. Si le numéro de pièce est BLT123 et que le pourcentage de pièces défectueuses dépasse 10 % (0,1), la transformation est renvoyée"Caution"
. Dans le cas contraire, la transformation est renvoyée"Normal"
.
Note
-
Si
Part_Number
elle reçoit un nouveau point de données avant les autres mesures, laQuality_Monitor
transformation utilise la nouvellePart_Number
valeur et les dernièresBad_Count
valeursGood_Count
et. Pour éviter les erreurs, effectuez une réinitialisationGood_Count
etBad_Count
avant le prochain cycle de fabrication. -
Utilisez des métriques si vous souhaitez évaluer les expressions uniquement lorsque toutes les variables ont reçu de nouveaux points de données.
Définir les transformations (console)
Lorsque vous définissez une transformation pour un modèle d'actif dans la AWS IoT SiteWise console, vous spécifiez les paramètres suivants :
-
Nom : nom de la propriété.
-
Unité — (Facultatif) L'unité scientifique de la propriété, telle que mm ou Celsius.
-
Type de données : type de données de la transformation, qui peut être double ou chaîne.
-
ID externe — (Facultatif) Il s'agit d'un identifiant défini par l'utilisateur. Pour plus d’informations, consultez Objets de référence avec interface externe IDs dans le Guide de l’utilisateur AWS IoT SiteWise .
-
Formule — L'expression de transformation. Les expressions de transformation ne peuvent pas utiliser de fonctions d'agrégation ou de fonctions temporelles. Pour ouvrir la fonction de saisie automatique, commencez à taper ou appuyez sur la flèche vers le bas. Pour de plus amples informations, veuillez consulter Utiliser des expressions de formule.
Important
Les transformations peuvent saisir des propriétés de type entier, double, booléen ou chaîne. Les booléens sont convertis en
0
(faux) et1
(vrai).Les transformations doivent saisir une ou plusieurs propriétés qui ne sont pas des attributs et un certain nombre de propriétés d'attribut. AWS IoT SiteWise calcule un nouveau point de données transformé chaque fois que la propriété d'entrée qui n'est pas un attribut reçoit un nouveau point de données. Les nouvelles valeurs d'attribut ne lancent pas les mises à jour de transformation. Le même taux de demande pour les API opérations de données relatives aux propriétés des actifs s'applique aux résultats des calculs de transformation.
Les expressions de formule ne peuvent générer que des valeurs doubles ou des valeurs de chaîne. Les expressions imbriquées peuvent générer d'autres types de données, tels que des chaînes, mais la formule dans son ensemble doit être évaluée à un nombre ou à une chaîne. Vous pouvez utiliser la fonction jp pour convertir une chaîne en nombre. La valeur booléenne doit être 1 (vrai) ou 0 (faux). Pour de plus amples informations, veuillez consulter Valeurs non définies, infinies et en dépassement.
Pour de plus amples informations, veuillez consulter Création d'un modèle d'actif (console).
Définir les transformations (AWS CLI)
Lorsque vous définissez une transformation pour un modèle d'actif avec le AWS IoT SiteWise API, vous spécifiez les paramètres suivants :
-
name
— Le nom de la propriété. -
unit
— (Facultatif) L'unité scientifique de la propriété, telle que mm ou Celsius. -
dataType
— Le type de données de la transformation, qui doit êtreDOUBLE
ouSTRING
. -
externalId
— (Facultatif) Il s'agit d'un identifiant défini par l'utilisateur. Pour plus d’informations, consultez Objets de référence avec interface externe IDs dans le Guide de l’utilisateur AWS IoT SiteWise . -
expression
— L'expression de transformation. Les expressions de transformation ne peuvent pas utiliser de fonctions d'agrégation ou de fonctions temporelles. Pour de plus amples informations, veuillez consulter Utiliser des expressions de formule. -
variables
— La liste des variables qui définit les autres propriétés de votre actif à utiliser dans l'expression. Chaque structure de variable contient un nom simple à utiliser dans l'expression et une structurevalue
qui identifie la propriété à lier à cette variable. La structurevalue
contient les informations suivantes :-
propertyId
— L'ID de la propriété à partir de laquelle les valeurs doivent être saisies. Vous pouvez utiliser le nom de la propriété au lieu de son ID.
Important
Les transformations peuvent saisir des propriétés de type entier, double, booléen ou chaîne. Les booléens sont convertis en
0
(faux) et1
(vrai).Les transformations doivent saisir une ou plusieurs propriétés qui ne sont pas des attributs et un certain nombre de propriétés d'attribut. AWS IoT SiteWise calcule un nouveau point de données transformé chaque fois que la propriété d'entrée qui n'est pas un attribut reçoit un nouveau point de données. Les nouvelles valeurs d'attribut ne lancent pas les mises à jour de transformation. Le même taux de demande pour les API opérations de données relatives aux propriétés des actifs s'applique aux résultats des calculs de transformation.
Les expressions de formule ne peuvent générer que des valeurs doubles ou des valeurs de chaîne. Les expressions imbriquées peuvent générer d'autres types de données, tels que des chaînes, mais la formule dans son ensemble doit être évaluée à un nombre ou à une chaîne. Vous pouvez utiliser la fonction jp pour convertir une chaîne en nombre. La valeur booléenne doit être 1 (vrai) ou 0 (faux). Pour de plus amples informations, veuillez consulter Valeurs non définies, infinies et en dépassement.
-
Exemple définition de transformation
L'exemple suivant illustre une propriété de transformation qui convertit les données de mesure de température d'une ressource de Celsius en Fahrenheit. Cet objet est un exemple d'objet AssetModelPropertycontenant une transformation. Vous pouvez spécifier cet objet dans le cadre de la charge utile de la CreateAssetModeldemande pour créer une propriété de transformation. Pour de plus amples informations, veuillez consulter Création d'un modèle d'actifs (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" } ],...
}
Exemple définition de transformation contenant trois variables
L'exemple suivant illustre une propriété de transformation qui renvoie un message d'avertissement ("Caution"
) si plus de 10 % des BLT123 pièces ne répondent pas à la norme. Dans le cas contraire, il renvoie un message d'information ("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" } } ] } } }...
}