Ejemplos de metadatos de importación - AWS IoT SiteWise

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Ejemplos de metadatos de importación

En esta sección se muestra cómo crear archivos de metadatos para importar modelos y activos con una sola operación de importación masiva.

Ejemplo de una importación masiva

Puede importar muchos modelos de activos y activos con una sola operación de importación masiva. El siguiente ejemplo muestra cómo crear un archivo de metadatos para ello.

En este escenario de ejemplo, tiene varios sitios de trabajo que contienen robots industriales en celdas de trabajo.

El ejemplo define dos modelos de activos:

  • RobotModel1: Este modelo de activos representa un tipo concreto de robot que tiene en sus lugares de trabajo. El robot tiene una propiedad de medición,Temperature.

  • WorkCell: Este modelo de activos representa un conjunto de robots dentro de uno de sus sitios de trabajo. El modelo de activos define una jerarquía para representar la relación entre una célula de trabajo y los robots. robotHierarchyOEM1

El ejemplo también define algunos activos:

  • WorkCell1: una célula de trabajo dentro de su sede de Boston

  • RobotArm123456: un robot dentro de esa celda de trabajo

  • RobotArm987654: otro robot dentro de esa celda de trabajo

El siguiente archivo de metadatos JSON define estos modelos y activos de activos. Al realizar una importación masiva con estos metadatos, se crean los modelos de activos y los activos que contienen AWS IoT SiteWise, incluidas sus relaciones jerárquicas.

{ "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" } ] } ] }

Ejemplo de incorporación inicial de modelos y activos

En este escenario de ejemplo, tiene varios sitios de trabajo que contienen robots industriales en una empresa.

El ejemplo define varios modelos de activos:

  • Sample_Enterprise— Este modelo de activos representa a la empresa de la que forman parte los sitios. El modelo de activos define una jerarquíaEnterprise to Site,, para representar la relación de los sitios con la empresa.

  • Sample_Site— Este modelo de activos representa las plantas de fabricación de la empresa. El modelo de activos define una jerarquíaSite to Line,, para representar la relación de las líneas con el sitio.

  • Sample_Welding Line— Este modelo de activos representa una línea de ensamblaje dentro de los sitios de trabajo. El modelo de activos define una jerarquía para representar la relación de los robots con la línea. Line to Robot

  • Sample_Welding Robot— Este modelo de activos representa un tipo particular de robot en sus lugares de trabajo.

El ejemplo también define los activos en función de los modelos de activos.

  • Sample_AnyCompany Motor— Este activo se crea a partir del modelo de Sample_Enterprise activos.

  • Sample_Chicago— Este activo se crea a partir del modelo de Sample_Site activos.

  • Sample_Welding Line 1— Este activo se crea a partir del modelo de Sample_Welding Line activos.

  • Sample_Welding Robot 1— Este activo se crea a partir del modelo de Sample_Welding Robot activos.

  • Sample_Welding Robot 2— Este activo se crea a partir del modelo de Sample_Welding Robot activos.

El siguiente archivo de metadatos JSON define estos modelos y activos de activos. Al realizar una importación masiva con estos metadatos, se crean los modelos de activos y los activos que contienen AWS IoT SiteWise, incluidas sus relaciones jerárquicas.

{ "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 siguiente captura de pantalla muestra los modelos que se muestran Consola de AWS IoT SiteWise después de ejecutar el ejemplo de código anterior.

AWS IoT SiteWise modelos con activos y modelos de activos.

La siguiente captura de pantalla muestra los modelos, activos y jerarquías que se muestran Consola de AWS IoT SiteWise después de ejecutar el ejemplo de código anterior.

AWS IoT SiteWise modelos con activos, modelos de activos y jerarquías.

Ejemplo de incorporación de activos adicionales

En este ejemplo se definen activos adicionales para importarlos a un modelo de activos existente en su cuenta:

  • Sample_Welding Line 2— Este activo se crea a partir del modelo de Sample_Welding Line activos.

  • Sample_Welding Robot 3— Este activo se crea a partir del modelo de Sample_Welding Robot activos.

  • Sample_Welding Robot 4— Este activo se crea a partir del modelo de Sample_Welding Robot activos.

Para crear los activos iniciales de este ejemplo, consulteEjemplo de incorporación inicial de modelos y activos.

El siguiente archivo de metadatos JSON define estos modelos y activos de activos. Al realizar una importación masiva con estos metadatos, se crean los modelos de activos y los activos que contienen AWS IoT SiteWise, incluidas sus relaciones jerárquicas.

{ "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 siguiente captura de pantalla muestra los modelos, activos y jerarquías que se muestran Consola de AWS IoT SiteWise después de ejecutar el ejemplo de código anterior.

AWS IoT SiteWise modelos con activos y modelos de activos.

Ejemplo de incorporación de nuevas propiedades

En este ejemplo, se definen nuevas propiedades en los modelos de activos existentes. Consulte Ejemplo de incorporación de activos adicionales para incorporar activos y modelos adicionales.

  • Joint 1 Temperature— Esta propiedad se añade al modelo Sample_Welding Robot de activos. Esta nueva propiedad también se propagará a cada activo creado a partir del modelo de Sample_Welding Robot activos.

Para añadir una nueva propiedad a un modelo de activos existente, consulte el siguiente ejemplo de archivo de metadatos JSON. Como se muestra en el JSON, se debe proporcionar la definición completa del modelo de Sample_Welding Robot activos existente junto con la nueva propiedad. Si no se proporciona la lista completa de propiedades de la definición existente, AWS IoT SiteWise elimina las propiedades omitidas.

En este ejemplo, se añade una nueva propiedad Joint 1 Temperature al modelo de activos.

{ "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" } ] } ] }

Ejemplo de administración de flujos de datos

En este ejemplo, se muestran dos formas de administrar los flujos de datos asociados a una propiedad de activo. Al cambiar el nombre del alias de una propiedad de activo, hay dos opciones para los datos históricos actualmente almacenados en el flujo de datos de la propiedad de activo.

  • Primera opción: conservar el flujo de datos actual y cambiar el nombre únicamente del alias, de forma que se pueda acceder a los datos históricos con el nuevo alias.

    En el ejemplo del archivo de metadatos JSON, la propiedad del activo con el ID External_Id_Welding_Robot_Cycle_Count cambia su alias aAnyCompany/Chicago/Welding Line/S3000/Count-Updated. Los datos históricos de esta propiedad de activo siguen siendo los mismos tras este cambio.

  • Opción dos: asignar un nuevo flujo de datos a la propiedad del activo al que se pueda acceder con el nuevo alias. El flujo de datos anterior, junto con sus datos históricos, sigue siendo accesible con el alias anterior, pero no está asociado a ninguna propiedad de activo.

    En el ejemplo del archivo de metadatos JSON, la propiedad del activo con el ID External_Id_Welding_Robot_Joint_1_Current cambia su alias aAnyCompany/Chicago/Welding Line/S4999/1/Current. Esta vez, el valor adicional retainDataOnAliasChange está presente y establecido enFalse. Con esta configuración, el flujo de datos original se disocia de la propiedad del activo y se crea un flujo de datos nuevo que no contiene datos históricos.

Para acceder al flujo de datos antiguo con los datos históricos originales AWS Console Home, vaya a la página Flujos de datos y busque el alias AnyCompany/Chicago/Welding Line/S3000/1/Current anterior.

{ "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" } ] }