View a markdown version of this page

Trasforma i dati (trasformazioni) - AWS IoT SiteWise

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Trasforma i dati (trasformazioni)

Le trasformazioni sono espressioni matematiche che mappano i punti dati delle proprietà di un asset da un modulo all’altro. Un'espressione di trasformazione è costituita da variabili di proprietà degli asset, valori letterali, operatori e funzioni. I punti dati trasformati mantengono una relazione uno a uno con i punti dati di input. AWS IoT SiteWise calcola un nuovo punto dati trasformato ogni volta che una delle proprietà di input riceve un nuovo punto dati.

Nota

Per gli aggiornamenti delle proprietà con lo stesso timestamp, i valori di output possono essere sovrascritti dagli aggiornamenti di altre proprietà in entrata.

Ad esempio, se l'asset ha un flusso di misurazione della temperatura denominato Temperature_C con unità in Celsius, è possibile convertire ogni punto dati in Fahrenheit con la formula Temperature_F = 9/5 * Temperature_C + 32. Ogni volta che AWS IoT SiteWise riceve un punto dati nel flusso di Temperature_C misurazione, il Temperature_F valore corrispondente viene calcolato in pochi secondi e disponibile come proprietà. Temperature_F

Se la trasformazione contiene più di una variabile, il punto dati che arriva prima avvia immediatamente il calcolo. Si consideri un esempio in cui un produttore di componenti utilizza una trasformazione per monitorare la qualità del prodotto. Utilizzando uno standard diverso in base al tipo di parte, il produttore utilizza le seguenti misure per rappresentare il processo:

  • Part_Number- Una stringa che identifica il tipo di parte.

  • Good_Count- Un numero intero che aumenta di uno se la parte soddisfa lo standard.

  • Bad_Count- Un numero intero che aumenta di uno se la parte non soddisfa lo standard.

Il produttore crea anche una trasformazioneQuality_Monitor, che equivale a if(eq(Part_Number, "BLT123") and (Bad_Count / (Good_Count + Bad_Count) > 0.1), "Caution", "Normal").

Questa trasformazione monitora la percentuale di parti difettose prodotte per un tipo di parte specifico. Se il numero di parte è BLT123 e la percentuale di parti difettose supera il 10 percento (0,1), la trasformazione viene ripristinata. "Caution" In caso contrario, viene restituita la trasformazione. "Normal"

Nota
  • Se Part_Number riceve un nuovo punto dati prima di altre misurazioni, la Quality_Monitor trasformazione utilizza il nuovo Part_Number valore e i Bad_Count valori più recentiGood_Count. Per evitare errori, Good_Count esegui il ripristino Bad_Count prima del successivo ciclo di produzione.

  • Usa le metriche se desideri valutare le espressioni solo dopo che tutte le variabili hanno ricevuto nuovi punti dati.

Definisci le trasformazioni (console)

Quando si definisce una trasformazione per un modello di asset nella AWS IoT SiteWise console, si specificano i seguenti parametri:

  • Nome: il nome della proprietà.

  • Unità — (Facoltativo) L'unità scientifica della proprietà, ad esempio mm o Celsius.

  • Tipo di dati: il tipo di dati della trasformazione, che può essere Double o String.

  • ID esterno: (facoltativo) Si tratta di un ID definito dall'utente. Per ulteriori informazioni, consulta Oggetti di riferimento con ID esterni nella Guida per l'utente di AWS IoT SiteWise .

  • Formula: l'espressione di trasformazione. Le espressioni di trasformazione non possono utilizzare funzioni di aggregazione o funzioni temporali. Per aprire la funzionalità di completamento automatico, inizia a digitare o premi il tasto freccia giù. Per ulteriori informazioni, consulta Usa espressioni di formula.

    Importante

    Le trasformazioni possono immettere proprietà di tipo intero, double, booleano o stringa. I valori booleani vengono convertiti in 0 (false) e (true). 1

    Le trasformazioni devono inserire una o più proprietà che non siano attributi e un numero qualsiasi di proprietà degli attributi. AWS IoT SiteWise calcola un nuovo punto dati trasformato ogni volta che la proprietà di input che non è un attributo riceve un nuovo punto dati. I nuovi valori degli attributi non avviano gli aggiornamenti delle trasformazioni. La stessa frequenza di richiesta per le operazioni API relative ai dati delle proprietà degli asset si applica ai risultati del calcolo delle trasformazioni.

    Le espressioni di formula possono generare solo valori doppi o stringhe. Le espressioni annidate possono generare altri tipi di dati, ad esempio stringhe, ma la formula nel suo insieme deve restituire un numero o una stringa. È possibile utilizzare la funzione jp per convertire una stringa in un numero. Il valore booleano deve essere 1 (vero) o 0 (falso). Per ulteriori informazioni, consulta Valori indefiniti, infiniti e di overflow.

Per ulteriori informazioni, consulta Crea un modello di asset (console).

Definire le trasformazioni (AWS CLI)

Quando definisci una trasformazione per un modello di asset con l' AWS IoT SiteWise API, specifichi i seguenti parametri:

  • name— Il nome della proprietà.

  • unit— (Facoltativo) L'unità scientifica della proprietà, ad esempio mm o Celsius.

  • dataType— Il tipo di dati della trasformazione, che deve essere DOUBLE oSTRING.

  • externalId— (Facoltativo) Si tratta di un ID definito dall'utente. Per ulteriori informazioni, consulta Oggetti di riferimento con ID esterni nella Guida per l'utente di AWS IoT SiteWise .

  • expression— L'espressione di trasformazione. Le espressioni di trasformazione non possono utilizzare funzioni di aggregazione o funzioni temporali. Per ulteriori informazioni, consulta Usa espressioni di formula.

  • variables— L'elenco di variabili che definisce le altre proprietà della risorsa da utilizzare nell'espressione. Ogni struttura di variabile contiene un nome semplice da utilizzare nell'espressione e una struttura value che specifica la proprietà da collegare alla variabile stessa. La struttura value contiene le seguenti informazioni:

    • propertyId— L'ID della proprietà da cui immettere i valori. È possibile utilizzare il nome della proprietà anziché il relativo ID.

    Importante

    Le trasformazioni possono immettere proprietà di tipo intero, doppio, booleano o stringa. I valori booleani vengono convertiti in 0 (false) e (true). 1

    Le trasformazioni devono inserire una o più proprietà che non siano attributi e un numero qualsiasi di proprietà degli attributi. AWS IoT SiteWise calcola un nuovo punto dati trasformato ogni volta che la proprietà di input che non è un attributo riceve un nuovo punto dati. I nuovi valori degli attributi non avviano gli aggiornamenti delle trasformazioni. La stessa frequenza di richiesta per le operazioni API relative ai dati delle proprietà degli asset si applica ai risultati del calcolo delle trasformazioni.

    Le espressioni di formula possono generare solo valori doppi o stringhe. Le espressioni annidate possono generare altri tipi di dati, ad esempio stringhe, ma la formula nel suo insieme deve restituire un numero o una stringa. È possibile utilizzare la funzione jp per convertire una stringa in un numero. Il valore booleano deve essere 1 (vero) o 0 (falso). Per ulteriori informazioni, consulta Valori indefiniti, infiniti e di overflow.

Esempio definizione di trasformazione

Nell'esempio seguente viene illustrata una proprietà di trasformazione che converte i dati di misurazione della temperatura di un asset da Celsius a Fahrenheit. Questo oggetto è un esempio di un oggetto AssetModelProperty che contiene una trasformazione. Puoi specificare questo oggetto come parte del payload della richiesta CreateAssetModel per creare una proprietà di trasformazione. Per ulteriori informazioni, consulta Crea un modello di asset (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" } ], ... }
Esempio definizione di trasformazione che contiene tre variabili

L'esempio seguente dimostra una proprietà di trasformazione che restituisce un messaggio di avviso ("Caution") se più del 10% delle parti BLT123 non soddisfa lo standard. Altrimenti, restituisce un messaggio 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" } } ] } } } ... }