View a markdown version of this page

Esempi di metadati di importazione - 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à.

Esempi di metadati di importazione

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 vari cantieri 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 un insieme di robot all'interno di uno dei tuoi siti di lavoro. Il modello di asset definisce una gerarchiarobotHierarchyOEM1, per rappresentare la relazione che una cella di lavoro contiene robot.

L'esempio definisce anche alcune risorse:

  • WorkCell1: una cella di lavoro all'interno del vostro 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 metadati JSON definisce questi modelli e risorse di asset. L'esecuzione di un'importazione in blocco con questi metadati crea i modelli di asset e le risorse all'interno AWS IoT SiteWise, comprese le loro 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 inserimento iniziale di modelli e risorse

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

L'esempio definisce diversi modelli di asset:

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

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

  • Sample_Welding Line— Questo modello di asset rappresenta una linea di assemblaggio all'interno dei cantieri. 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 dal modello di Sample_Enterprise asset.

  • Sample_Chicago— Questa risorsa viene creata dal modello di Sample_Site asset.

  • Sample_Welding Line 1— Questa risorsa viene creata dal modello di Sample_Welding Line asset.

  • Sample_Welding Robot 1— Questa risorsa viene creata dal modello di Sample_Welding Robot asset.

  • Sample_Welding Robot 2— Questa risorsa viene creata dal modello di Sample_Welding Robot asset.

Il seguente file di metadati JSON definisce questi modelli e risorse di asset. L'esecuzione di un'importazione in blocco con questi metadati crea i modelli di asset e le risorse all'interno AWS IoT SiteWise, comprese le loro 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 che vengono visualizzati Console AWS IoT SiteWise dopo aver eseguito l'esempio di codice precedente.

AWS IoT SiteWise modelli con asset e asset models.

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

AWS IoT SiteWise modelli con asset, 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 dal modello di Sample_Welding Line asset.

  • Sample_Welding Robot 3— Questa risorsa viene creata dal modello di Sample_Welding Robot asset.

  • Sample_Welding Robot 4— Questa risorsa viene creata dal modello di Sample_Welding Robot asset.

Per creare le risorse iniziali per questo esempio, consultaEsempio di inserimento iniziale di modelli e risorse.

Il seguente file di metadati JSON definisce questi modelli e risorse di asset. L'esecuzione di un'importazione in blocco con questi metadati crea i modelli di asset e le risorse all'interno AWS IoT SiteWise, comprese le loro 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 i modelli, gli asset e le gerarchie che vengono visualizzati Console AWS IoT SiteWise dopo aver eseguito l'esempio di codice precedente.

AWS IoT SiteWise modelli con asset e modelli di asset.

Esempio di inserimento di nuove proprietà

Questo esempio definisce nuove proprietà su modelli di asset esistenti. Vedi Esempio di onboarding di risorse aggiuntive per 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 metadati JSON. Come mostrato nel JSON, 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 per gestire i flussi di dati associati a una proprietà di un asset. Quando si rinomina l'alias di una proprietà dell'asset, sono disponibili due opzioni per i dati storici attualmente archiviati nel flusso di dati della proprietà dell'asset.

  • Opzione 1: mantieni 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 metadati JSON, la proprietà dell'asset con ID cambia il suo alias in. External_Id_Welding_Robot_Cycle_Count AnyCompany/Chicago/Welding Line/S3000/Count-Updated I dati storici di questa proprietà dell'asset rimangono invariati dopo questa modifica.

  • Opzione due: assegnate un nuovo flusso di dati alla proprietà dell'asset, accessibile con il nuovo alias. Il vecchio flusso di dati, insieme ai relativi dati storici, è ancora accessibile con il vecchio alias, ma non è associato a nessuna proprietà dell'asset.

    Nell'esempio del file di metadati JSON, 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 che non contiene dati storici.

Per accedere al vecchio flusso di dati con i dati storici originali 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" } ] }