Importa esempi di metadati - 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à.

Importa esempi di metadati

Questa sezione mostra come creare file di metadati per importare modelli di asset e asset con un'unica operazione di importazione in blocco.

Esempio di importazione in blocco

È possibile importare molti modelli di asset e asset con un'unica operazione di importazione in blocco. L'esempio seguente mostra come creare un file di metadati a tale scopo.

In questo scenario di esempio, sono presenti diversi siti di lavoro che contengono robot industriali nelle celle di lavoro.

L'esempio definisce due modelli di asset:

  • RobotModel1: Questo modello di asset rappresenta un particolare tipo di robot che avete nei vostri cantieri. Il robot ha una proprietà di misurazione,Temperature.

  • WorkCell: Questo modello di asset rappresenta una raccolta di robot all'interno di uno dei vostri siti di lavoro. Il modello di asset definisce una gerarchiarobotHierarchyOEM1, per rappresentare la relazione tra robot e celle di lavoro.

L'esempio definisce anche alcune risorse:

  • WorkCell1: una cella di lavoro all'interno del sito di Boston

  • RobotArm123456: un robot all'interno di quella cella di lavoro

  • RobotArm987654: un altro robot all'interno di quella cella di lavoro

Il seguente file di JSON metadati definisce questi modelli e asset di asset. L'esecuzione di un'importazione di massa con questi metadati crea i modelli di asset e le risorse al loro interno AWS IoT SiteWise, comprese le relative relazioni gerarchiche.

{ "assetModels": [ { "assetModelExternalId": "Robot.OEM1.3536", "assetModelName": "RobotModel1", "assetModelProperties": [ { "dataType": "DOUBLE", "externalId": "Temperature", "name": "Temperature", "type": { "measurement": { "processingConfig": { "forwardingConfig": { "state": "ENABLED" } } } }, "unit": "fahrenheit" } ] }, { "assetModelExternalId": "ISA95.WorkCell", "assetModelName": "WorkCell", "assetModelProperties": [], "assetModelHierarchies": [ { "externalId": "workCellHierarchyWithOEM1Robot", "name": "robotHierarchyOEM1", "childAssetModelExternalId": "Robot.OEM1.3536" } ] } ], "assets": [ { "assetExternalId": "Robot.OEM1.3536.123456", "assetName": "RobotArm123456", "assetModelExternalId": "Robot.OEM1.3536" }, { "assetExternalId": "Robot.OEM1.3536.987654", "assetName": "RobotArm987654", "assetModelExternalId": "Robot.OEM1.3536" }, { "assetExternalId": "BostonSite.Area1.Line1.WorkCell1", "assetName": "WorkCell1", "assetModelExternalId": "ISA95.WorkCell", "assetHierarchies": [ { "externalId": "workCellHierarchyWithOEM1Robot", "childAssetExternalId": "Robot.OEM1.3536.123456" }, { "externalId": "workCellHierarchyWithOEM1Robot", "childAssetExternalId": "Robot.OEM1.3536.987654" } ] } ] }

Esempio di integrazione iniziale di modelli e asset

In questo scenario di esempio, in un'azienda sono presenti diversi siti di lavoro che contengono robot industriali.

L'esempio definisce più modelli di asset:

  • Sample_Enterprise— Questo modello di asset rappresenta la società di cui fanno parte i siti. Il modello di asset definisce una gerarchia per rappresentare la relazione tra i siti e l'azienda. Enterprise to Site

  • Sample_Site— Questo modello di asset rappresenta i siti di produzione all'interno dell'azienda. Il modello di asset definisce una gerarchia per rappresentare la relazione tra le linee e il sito. Site to Line

  • Sample_Welding Line— Questo modello di asset rappresenta una linea di assemblaggio all'interno dei siti di lavoro. Il modello di asset definisce una gerarchiaLine to Robot, per rappresentare la relazione tra i robot e la linea.

  • Sample_Welding Robot— Questo modello di asset rappresenta un particolare tipo di robot nei vostri cantieri.

L'esempio definisce anche gli asset in base ai modelli di asset.

  • Sample_AnyCompany Motor— Questa risorsa viene creata a partire da un modello di Sample_Enterprise asset.

  • Sample_Chicago— Questa risorsa viene creata a partire da un modello di Sample_Site asset.

  • Sample_Welding Line 1— Questa risorsa viene creata a partire da un modello di Sample_Welding Line asset.

  • Sample_Welding Robot 1— Questa risorsa viene creata a partire da un modello di Sample_Welding Robot asset.

  • Sample_Welding Robot 2— Questa risorsa viene creata a partire da un modello di Sample_Welding Robot asset.

Il seguente file di JSON metadati definisce questi modelli e asset di asset. L'esecuzione di un'importazione di massa con questi metadati crea i modelli di asset e le risorse al loro interno AWS IoT SiteWise, comprese le relative relazioni gerarchiche.

{ "assetModels": [ { "assetModelExternalId": "External_Id_Welding_Robot", "assetModelName": "Sample_Welding Robot", "assetModelProperties": [ { "dataType": "STRING", "externalId": "External_Id_Welding_Robot_Serial_Number", "name": "Serial Number", "type": { "attribute": { "defaultValue": "-" } }, "unit": "-" }, { "dataType": "DOUBLE", "externalId": "External_Id_Welding_Robot_Cycle_Count", "name": "CycleCount", "type": { "measurement": {} }, "unit": "EA" }, { "dataType": "DOUBLE", "externalId": "External_Id_Welding_Robot_Joint_1_Current", "name": "Joint 1 Current", "type": { "measurement": {} }, "unit": "Amps" }, { "dataType": "DOUBLE", "externalId": "External_Id_Welding_Robot_Joint_1_Max_Current", "name": "Max Joint 1 Current", "type": { "metric": { "expression": "max(joint1current)", "variables": [ { "name": "joint1current", "value": { "propertyExternalId": "External_Id_Welding_Robot_Joint_1_Current" } } ], "window": { "tumbling": { "interval": "5m" } } } }, "unit": "Amps" } ] }, { "assetModelExternalId": "External_Id_Welding_Line", "assetModelName": "Sample_Welding Line", "assetModelProperties": [ { "dataType": "DOUBLE", "externalId": "External_Id_Welding_Line_Availability", "name": "Availability", "type": { "measurement": {} }, "unit": "%" } ], "assetModelHierarchies": [ { "externalId": "External_Id_Welding_Line_TO_Robot", "name": "Line to Robot", "childAssetModelExternalId": "External_Id_Welding_Robot" } ] }, { "assetModelExternalId": "External_Id_Site", "assetModelName": "Sample_Site", "assetModelProperties": [ { "dataType": "STRING", "externalId": "External_Id_Site_Street_Address", "name": "Street Address", "type": { "attribute": { "defaultValue": "-" } }, "unit": "-" } ], "assetModelHierarchies": [ { "externalId": "External_Id_Site_TO_Line", "name": "Site to Line", "childAssetModelExternalId": "External_Id_Welding_Line" } ] }, { "assetModelExternalId": "External_Id_Enterprise", "assetModelName": "Sample_Enterprise", "assetModelProperties": [ { "dataType": "STRING", "name": "Company Name", "externalId": "External_Id_Enterprise_Company_Name", "type": { "attribute": { "defaultValue": "-" } }, "unit": "-" } ], "assetModelHierarchies": [ { "externalId": "External_Id_Enterprise_TO_Site", "name": "Enterprise to Site", "childAssetModelExternalId": "External_Id_Site" } ] } ], "assets": [ { "assetExternalId": "External_Id_Welding_Robot_1", "assetName": "Sample_Welding Robot 1", "assetModelExternalId": "External_Id_Welding_Robot", "assetProperties": [ { "externalId": "External_Id_Welding_Robot_Serial_Number", "attributeValue": "S1000" }, { "externalId": "External_Id_Welding_Robot_Cycle_Count", "alias": "AnyCompany/Chicago/Welding Line/S1000/Count" }, { "externalId": "External_Id_Welding_Robot_Joint_1_Current", "alias": "AnyCompany/Chicago/Welding Line/S1000/1/Current" } ] }, { "assetExternalId": "External_Id_Welding_Robot_2", "assetName": "Sample_Welding Robot 2", "assetModelExternalId": "External_Id_Welding_Robot", "assetProperties": [ { "externalId": "External_Id_Welding_Robot_Serial_Number", "attributeValue": "S2000" }, { "externalId": "External_Id_Welding_Robot_Cycle_Count", "alias": "AnyCompany/Chicago/Welding Line/S2000/Count" }, { "externalId": "External_Id_Welding_Robot_Joint_1_Current", "alias": "AnyCompany/Chicago/Welding Line/S2000/1/Current" } ] }, { "assetExternalId": "External_Id_Welding_Line_1", "assetName": "Sample_Welding Line 1", "assetModelExternalId": "External_Id_Welding_Line", "assetProperties": [ { "externalId": "External_Id_Welding_Line_Availability", "alias": "AnyCompany/Chicago/Welding Line/Availability" } ], "assetHierarchies": [ { "externalId": "External_Id_Welding_Line_TO_Robot", "childAssetExternalId": "External_Id_Welding_Robot_1" }, { "externalId": "External_Id_Welding_Line_TO_Robot", "childAssetExternalId": "External_Id_Welding_Robot_2" } ] }, { "assetExternalId": "External_Id_Site_Chicago", "assetName": "Sample_Chicago", "assetModelExternalId": "External_Id_Site", "assetHierarchies": [ { "externalId": "External_Id_Site_TO_Line", "childAssetExternalId": "External_Id_Welding_Line_1" } ] }, { "assetExternalId": "External_Id_Enterprise_AnyCompany", "assetName": "Sample_AnyEnterprise Motor", "assetModelExternalId": "External_Id_Enterprise", "assetHierarchies": [ { "externalId": "External_Id_Enterprise_TO_Site", "childAssetExternalId": "External_Id_Site_Chicago" } ] } ] }

La schermata seguente mostra i modelli visualizzati nell'esempio di codice precedente Console AWS IoT SiteWise dopo l'esecuzione del precedente esempio di codice.

AWS IoT SiteWise modelli con asset e modelli di asset.

La schermata seguente mostra i modelli, gli asset e le gerarchie visualizzati Console AWS IoT SiteWise dopo l'esecuzione del precedente esempio di codice.

AWS IoT SiteWise modelli con risorse, modelli di asset e gerarchie.

Esempio di onboarding di risorse aggiuntive

Questo esempio definisce risorse aggiuntive da importare in un modello di asset esistente nel tuo account:

  • Sample_Welding Line 2— Questa risorsa viene creata a partire da un modello di Sample_Welding Line asset.

  • Sample_Welding Robot 3— Questa risorsa viene creata a partire da un modello di Sample_Welding Robot asset.

  • Sample_Welding Robot 4— Questa risorsa viene creata a partire da un modello di Sample_Welding Robot asset.

Per creare le risorse iniziali per questo esempio, vedereEsempio di integrazione iniziale di modelli e asset.

Il seguente file di JSON metadati definisce questi modelli e asset di asset. L'esecuzione di un'importazione di massa con questi metadati crea i modelli di asset e le risorse al loro interno AWS IoT SiteWise, comprese le relative relazioni gerarchiche.

{ "assets": [ { "assetExternalId": "External_Id_Welding_Robot_3", "assetName": "Sample_Welding Robot 3", "assetModelExternalId": "External_Id_Welding_Robot", "assetProperties": [ { "externalId": "External_Id_Welding_Robot_Serial_Number", "attributeValue": "S3000" }, { "externalId": "External_Id_Welding_Robot_Cycle_Count", "alias": "AnyCompany/Chicago/Welding Line/S3000/Count" }, { "externalId": "External_Id_Welding_Robot_Joint_1_Current", "alias": "AnyCompany/Chicago/Welding Line/S3000/1/Current" } ] }, { "assetExternalId": "External_Id_Welding_Robot_4", "assetName": "Sample_Welding Robot 4", "assetModelExternalId": "External_Id_Welding_Robot", "assetProperties": [ { "externalId": "External_Id_Welding_Robot_Serial_Number", "attributeValue": "S4000" }, { "externalId": "External_Id_Welding_Robot_Cycle_Count", "alias": "AnyCompany/Chicago/Welding Line/S4000/Count" }, { "externalId": "External_Id_Welding_Robot_Joint_1_Current", "alias": "AnyCompany/Chicago/Welding Line/S4000/1/Current" } ] }, { "assetExternalId": "External_Id_Welding_Line_1", "assetName": "Sample_Welding Line 1", "assetModelExternalId": "External_Id_Welding_Line", "assetHierarchies": [ { "externalId": "External_Id_Welding_Line_TO_Robot", "childAssetExternalId": "External_Id_Welding_Robot_1" }, { "externalId": "External_Id_Welding_Line_TO_Robot", "childAssetExternalId": "External_Id_Welding_Robot_2" }, { "externalId": "External_Id_Welding_Line_TO_Robot", "childAssetExternalId": "External_Id_Welding_Robot_3" } ] }, { "assetExternalId": "External_Id_Welding_Line_2", "assetName": "Sample_Welding Line 2", "assetModelExternalId": "External_Id_Welding_Line", "assetHierarchies": [ { "externalId": "External_Id_Welding_Line_TO_Robot", "childAssetExternalId": "External_Id_Welding_Robot_4" } ] }, { "assetExternalId": "External_Id_Site_Chicago", "assetName": "Sample_Chicago", "assetModelExternalId": "External_Id_Site", "assetHierarchies": [ { "externalId": "External_Id_Site_TO_Line", "childAssetExternalId": "External_Id_Welding_Line_1" }, { "externalId": "External_Id_Site_TO_Line", "childAssetExternalId": "External_Id_Welding_Line_2" } ] } ] }

La schermata seguente mostra modelli, risorse e gerarchie visualizzati Console AWS IoT SiteWise dopo l'esecuzione del precedente esempio di codice.

AWS IoT SiteWise modelli con asset e modelli di asset.

Esempio di onboarding di nuove proprietà

Questo esempio definisce nuove proprietà sui modelli di asset esistenti. Guarda Esempio di onboarding di risorse aggiuntive come integrare risorse e modelli aggiuntivi.

  • Joint 1 Temperature— Questa proprietà viene aggiunta al modello di Sample_Welding Robot asset. Questa nuova proprietà si propagherà anche a ogni risorsa creata dal modello di Sample_Welding Robot asset.

Per aggiungere una nuova proprietà a un modello di asset esistente, vedete il seguente esempio di file di JSON metadati. Come illustrato nellaJSON, l'intera definizione del modello di Sample_Welding Robot asset esistente deve essere fornita insieme alla nuova proprietà. Se non viene fornito l'intero elenco di proprietà della definizione esistente, AWS IoT SiteWise elimina le proprietà omesse.

Questo esempio aggiunge una nuova proprietà Joint 1 Temperature al modello di asset.

{ "assetModels": [ { "assetModelExternalId": "External_Id_Welding_Robot", "assetModelName": "Sample_Welding Robot", "assetModelProperties": [ { "dataType": "STRING", "externalId": "External_Id_Welding_Robot_Serial_Number", "name": "Serial Number", "type": { "attribute": { "defaultValue": "-" } }, "unit": "-" }, { "dataType": "DOUBLE", "externalId": "External_Id_Welding_Robot_Cycle_Count", "name": "CycleCount", "type": { "measurement": {} }, "unit": "EA" }, { "dataType": "DOUBLE", "externalId": "External_Id_Welding_Robot_Joint_1_Current", "name": "Joint 1 Current", "type": { "measurement": {} }, "unit": "Amps" }, { "dataType": "DOUBLE", "externalId": "External_Id_Welding_Robot_Joint_1_Max_Current", "name": "Max Joint 1 Current", "type": { "metric": { "expression": "max(joint1current)", "variables": [ { "name": "joint1current", "value": { "propertyExternalId": "External_Id_Welding_Robot_Joint_1_Current" } } ], "window": { "tumbling": { "interval": "5m" } } } }, "unit": "Amps" }, { "dataType": "DOUBLE", "externalId": "External_Id_Welding_Robot_Joint_1_Temperature", "name": "Joint 1 Temperature", "type": { "measurement": {} }, "unit": "degC" } ] } ] }

Esempio di gestione dei flussi di dati

Questo esempio mostra due modi di gestire i flussi di dati associati a una proprietà di un asset. Quando si rinomina un alias di proprietà della risorsa, sono disponibili due opzioni per i dati storici attualmente archiviati nel flusso di dati della proprietà della risorsa.

  • Opzione uno: mantiene il flusso di dati corrente e rinomina solo l'alias, in modo che i dati storici siano accessibili con il nuovo alias.

    Nell'esempio del file di JSON metadati, la proprietà asset con ID External_Id_Welding_Robot_Cycle_Count cambia il suo alias in. AnyCompany/Chicago/Welding Line/S3000/Count-Updated I dati storici per questa proprietà dell'asset rimangono gli stessi dopo questa modifica.

  • Opzione due: assegna un nuovo flusso di dati alla proprietà dell'asset, accessibile con il nuovo alias. Il vecchio flusso di dati e i relativi dati storici sono ancora accessibili con il vecchio alias, ma non sono associati ad alcuna proprietà dell'asset.

    Nell'esempio del file di JSON metadati, la proprietà dell'asset con ID External_Id_Welding_Robot_Joint_1_Current cambia il suo alias in. AnyCompany/Chicago/Welding Line/S4999/1/Current Questa volta il valore aggiuntivo retainDataOnAliasChange è presente e impostato su. False Con questa impostazione, il flusso di dati originale viene dissociato dalla proprietà dell'asset e viene creato un nuovo flusso di dati senza dati storici.

Per accedere al vecchio flusso di dati con i dati storici originali, in AWS Console Home, vai alla pagina Data Streams e cerca il vecchio alias. AnyCompany/Chicago/Welding Line/S3000/1/Current

{ "assetExternalId": "External_Id_Welding_Robot_3", "assetName": "Sample_Welding Robot 3", "assetModelExternalId": "External_Id_Welding_Robot", "assetProperties": [ { "externalId": "External_Id_Welding_Robot_Serial_Number", "attributeValue": "S3000" }, { "externalId": "External_Id_Welding_Robot_Cycle_Count", "alias": "AnyCompany/Chicago/Welding Line/S3000/Count-Updated" }, { "externalId": "External_Id_Welding_Robot_Joint_1_Current", "alias": "AnyCompany/Chicago/Welding Line/S4999/1/Current", "retainDataOnAliasChange": "FALSE" } ] }