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á.
Transforme dados (transformações)
As Transformações são expressões matemáticas que mapeiam pontos de dados de propriedades de um ativo de um formulário a outro. Uma expressão de transformação consiste em variáveis de propriedade de ativos, 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 SiteWise calcula um novo ponto de dados transformado sempre que qualquer uma das propriedades de entrada recebe um novo ponto de dados.
nota
Para atualizações de propriedades com o mesmo timestamp, os valores de saída podem ser substituídos por atualizações de outras propriedades de entrada.
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 que AWS IoT SiteWise recebe um ponto de dados no fluxo de Temperature_C
medição, o Temperature_F
valor correspondente é calculado em alguns segundos e está disponível como Temperature_F
propriedade.
Caso sua transformação contiver mais de uma variável, o ponto de dados que chegar primeiro iniciará o cálculo imediatamente. Considere um exemplo onde 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ção, Quality_Monitor
, 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 por cento (0,1), a transformação será retornada"Caution"
. Caso contrário, a transformação retornará "Normal"
.
nota
-
Se
Part_Number
receber um novo ponto de dados antes de outras medições, aQuality_Monitor
transformação usa o novo valorPart_Number
e os valoresBad_Count
eGood_Count
mais recentes. Para evitar erros, reinicieGood_Count
eBad_Count
antes da próxima execuçã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 AWS IoT SiteWise console, você especifica os seguintes parâmetros:
-
Nome — o nome da propriedade.
-
Unidade – (opcional) unidade científica da propriedade, como mm ou Celsius.
-
Tipo de dado — tipo de dado da transformação, que pode ser Duplo ou String.
-
ID externa — (Opcional) Essa é uma ID definida pelo usuário. Para obter mais informações, consulte Objetos de referência com objetos externos IDs no Guia de Usuário AWS IoT SiteWise .
-
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. Para abrir o recurso de preenchimento automático, comece a digitar ou pressione a tecla de seta para baixo. Para obter mais informações, consulte Use expressões de fórmula.
Importante
As transformações só podem inserir propriedades de número inteiro, duplo, Booleano, ou tipo string. Os Booleanos são convertidos em
0
(falso) e1
(verdadeiro).As transformações devem inserir uma ou mais propriedades que não sejam atributo e qualquer número de propriedades de atributo. O AWS IoT SiteWise calcula um novo ponto de dados transformado cada vez que a propriedade de entrada que não for de atributo receber um novo ponto de dados. Novos valores de atributos não iniciam atualizações de transformação. A mesma taxa de solicitação para API operações de dados de propriedades de ativos se aplica aos resultados de computação de transformação.
As expressões de fórmula só podem produzir valores duplos ou de string. Expressões aninhadas podem gerar outros tipos de dados, como strings, mas a fórmula como um todo deve ser avaliada como um número ou string. 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.
Para obter mais informações, consulte Crie um modelo de ativo (console).
Definir transformações ()AWS CLI
Ao definir uma transformação para um modelo de ativo com o AWS IoT SiteWise API, você especifica os seguintes parâmetros:
-
name
– o nome da propriedade. -
unit
– (opcional) unidade científica da propriedade, como mm ou Celsius. -
dataType
– tipo de dados da transformação, que deve serDOUBLE
ouSTRING
. -
externalId
— (Opcional) Essa é uma ID definida pelo usuário. Para obter mais informações, consulte Objetos de referência com objetos externos IDs no Guia de Usuário AWS IoT SiteWise . -
expression
– 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 Use expressões de fórmula. -
variables
– 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
– a ID da propriedade da qual deseja extrair valores. Você pode usar o nome da propriedade em vez de seu ID.
Importante
As transformações só podem inserir propriedades de número inteiro, duplo, Booleano, ou tipo string. Os Booleanos são convertidos em
0
(falso) e1
(verdadeiro).As transformações devem inserir uma ou mais propriedades que não sejam atributo e qualquer número de propriedades de atributo. O AWS IoT SiteWise calcula um novo ponto de dados transformado cada vez que a propriedade de entrada que não for de atributo receber um novo ponto de dados. Novos valores de atributos não iniciam atualizações de transformação. A mesma taxa de solicitação para API operações de dados de propriedades de ativos se aplica aos resultados de computação de transformação.
As expressões de fórmula só podem produzir valores duplos ou de string. Expressões aninhadas podem gerar outros tipos de dados, como strings, mas a fórmula como um todo deve ser avaliada como um número ou string. 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.
-
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 CreateAssetModelsolicitação para criar uma propriedade de transformação. Para obter mais informações, consulte Crie um modelo de ativo (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" } ],...
}
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 BLT123 peças não atenderem ao padrão. Caso contrário, ela retornará uma mensagem de informação ("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" } } ] } } }...
}