As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Transformando dados (transformações)
As transformações são expressões matemáticas que mapeiam os pontos de dados das propriedades do ativo de um formulário para outro. Uma expressão de transformação consiste em variáveis de propriedades do ativo, literais, operadores e funções. Os pontos de dados transformados mantêm uma one-to-one relação com os pontos de dados de entrada. AWS IoT SiteWisecalcula um novo ponto de dados transformado sempre que qualquer uma das propriedades de entrada recebe um novo ponto de dados.
Por exemplo, se o seu ativo tiver um fluxo de medição de temperatura chamado Temperature_C
com unidades em Celsius, você poderá converter cada ponto de dados em Fahrenheit com a fórmula Temperature_F = 9/5 * Temperature_C + 32
. Cada vez queAWS IoT SiteWise recebe um ponto de dados no fluxo deTemperature_C
medição, oTemperature_F
valor correspondente é calculado em alguns segundos e está disponível comoTemperature_F
propriedade.
Se sua transformação contiver mais de uma variável, o ponto de dados que chegar mais cedo iniciará o cálculo imediatamente. Considere um exemplo em que um fabricante de peças usa uma transformação para monitorar a qualidade do produto. Usando um padrão diferente com base no tipo de peça, o fabricante usa as seguintes medidas para representar o processo:
-
Part_Number
‐ Uma sequência de caracteres que identifica o tipo de peça. -
Good_Count
‐ Um número inteiro que aumenta em um se a peça atender ao padrão. -
Bad_Count
‐ Um número inteiro que aumenta em um se a peça não atender ao padrão.
O fabricante também cria uma transformaçãoQuality_Monitor
, que é igual a if(eq(Part_Number, "BLT123") and (Bad_Count / (Good_Count + Bad_Count) > 0.1),
"Caution", "Normal")
.
Essa transformação monitora a porcentagem de peças defeituosas produzidas para um tipo específico de peça. Se o número da peça for BLT123 e a porcentagem de peças defeituosas exceder 10% (0,1), a transformação retornará"Caution"
. Caso contrário, a transformação retornará"Normal"
.
-
Se
Part_Number
receber um novo ponto de dados antes de outras medições, aQuality_Monitor
transformação usará o novoPart_Number
valor e os últimosGood_Count
Bad_Count
valores e. Para evitar erros,Good_Count
reinicie eBad_Count
antes da próxima operação de fabricação. -
Use métricas se quiser avaliar expressões somente depois que todas as variáveis receberem novos pontos de dados.
Definir transformações (console)
Ao definir uma transformação para um modelo de ativo no console do AWS IoT SiteWise, especifique os seguintes parâmetros:
-
Nome — O nome da propriedade.
-
Fórmula — A expressão de transformação. As expressões de transformação não podem usar funções de agregação ou funções temporais. Comece a digitar ou pressione a tecla de seta para baixo para abrir o recurso de preenchimento auto. Para obter mais informações, consulte Usar expressões de fórmula.
Importante As transformações podem inserir propriedades do tipo inteiro, duplo, booleano ou string. Os booleanos são convertidos em
0
(falso) e1
(verdadeiro).As transformações devem inserir uma ou mais propriedades que não sejam atributos e qualquer número de propriedades de atributos. AWS IoT SiteWisecalcula um novo ponto de dados transformado sempre que a propriedade de entrada que não é um atributo recebe um novo ponto de dados. Novos valores de atributo não acionam atualizações de transformação. A mesma taxa de solicitação para operações de API de dados de propriedades de ativos se aplica aos resultados da computação de transformação.
As expressões de fórmula só podem gerar valores duplos ou em sequência de caracteres. Expressões aninhadas podem gerar outros tipos de dados, como cadeias de caracteres, mas a fórmula como um todo deve ser avaliada como um número ou sequência de caracteres. Você pode usar a função jp para converter uma string em um número. O valor booleano deve ser 1 (verdadeiro) ou 0 (falso). Para obter mais informações, consulte Valores indefinidos, infinitos e excedidos.
-
Unidade — (Opcional) A unidade científica da propriedade, como mm ou Celsius.
-
Tipo de dados — O tipo de dados da transformação, que pode ser Double ou String.
Para obter mais informações, consulte Criar um modelo de ativo (console).
exemplo definição de transformação
O exemplo a seguir demonstra uma propriedade de transformação que converte dados de medição de temperatura de um ativo de Celsius para Fahrenheit.

exemplo definição de transformação que contém três variáveis
O exemplo a seguir demonstra uma propriedade de transformação que retorna uma mensagem de aviso ("Caution"
) se mais de 10% das peças do BLT123 não atenderem ao padrão. Caso contrário, uma mensagem de informação será retornada ("Normal"
).

Definir transformações (CLI)
Ao definir uma transformação para um modelo de ativo com a API do AWS IoT SiteWise, você especifica os seguintes parâmetros:
-
name
— O nome da propriedade. -
dataType
— O tipo de dados da transformação, que deve serDOUBLE
ouSTRING
. -
expression
— A expressão de transformação. As expressões de transformação não podem usar funções de agregação ou funções temporais. Para obter mais informações, consulte Usar expressões de fórmula. -
variables
— A lista de variáveis que define as outras propriedades do seu ativo a serem usadas na expressão. Cada estrutura variável contém um nome simples para uso na expressão e uma estrutura devalue
que identifica qual propriedade deve ser vinculada a essa variável. A estruturavalue
contém as seguintes informações:-
propertyId
— O ID da propriedade da qual inserir valores. Você pode usar o nome da propriedade em vez de seu ID.
Importante As transformações podem inserir propriedades do tipo inteiro, duplo, booleano ou string. Os booleanos são convertidos em
0
(falso) e1
(verdadeiro).As transformações devem inserir uma ou mais propriedades que não sejam atributos e qualquer número de propriedades de atributos. AWS IoT SiteWisecalcula um novo ponto de dados transformado sempre que a propriedade de entrada que não é um atributo recebe um novo ponto de dados. Novos valores de atributo não acionam atualizações de transformação. A mesma taxa de solicitação para operações de API de dados de propriedades de ativos se aplica aos resultados da computação de transformação.
As expressões de fórmula só podem gerar valores duplos ou em sequência de caracteres. Expressões aninhadas podem gerar outros tipos de dados, como cadeias de caracteres, mas a fórmula como um todo deve ser avaliada como um número ou sequência de caracteres. Você pode usar a função jp para converter uma string em um número. O valor booleano deve ser 1 (verdadeiro) ou 0 (falso). Para obter mais informações, consulte Valores indefinidos, infinitos e excedidos.
-
-
unit
— (Opcional) A unidade científica da propriedade, como mm ou Celsius.
exemplo definição de transformação
O exemplo a seguir demonstra uma propriedade de transformação que converte dados de medição de temperatura de um ativo de Celsius para Fahrenheit. Esse objeto é um exemplo de um AssetModelPropertyque contém uma Transformação. Você pode especificar esse objeto como parte da carga útil da solicitação CreateAssetModel para criar uma propriedade de transformação. Para obter mais informações, consulte Criar um modelo de ativo (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" } ],...
}
exemplo definição de transformação que contém três variáveis
O exemplo a seguir demonstra uma propriedade de transformação que retorna uma mensagem de aviso ("Caution"
) se mais de 10% das peças do BLT123 não atenderem ao padrão. Caso contrário, uma mensagem de informação será retornada ("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" } } ] } } }...
}