Exemplos de importação de metadados - AWS IoT SiteWise

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á.

Exemplos de importação de metadados

Esta seção mostra como criar arquivos de metadados para importar modelos e ativos de ativos com uma única operação de importação em massa.

Exemplo de importação em massa

Você pode importar vários modelos e ativos de ativos com uma única operação de importação em massa. O exemplo a seguir mostra como criar um arquivo de metadados para fazer isso.

Neste cenário de exemplo, você tem vários locais de trabalho que contêm robôs industriais em células de trabalho.

O exemplo define dois modelos de ativos:

  • RobotModel1: Esse modelo de ativo representa um tipo específico de robô que você tem em seus locais de trabalho. O robô tem uma propriedade de medição,Temperature.

  • WorkCell: esse modelo de ativo representa uma coleção de robôs em um de seus locais de trabalho. O modelo de ativos define uma hierarquia,robotHierarchyOEM1, para representar a relação que uma célula de trabalho contém robôs.

O exemplo também define alguns ativos:

  • WorkCell1: uma célula de trabalho em seu site em Boston

  • RobotArm123456: um robô dentro dessa célula de trabalho

  • RobotArm987654: outro robô dentro dessa célula de trabalho

O arquivo de metadados JSON a seguir define esses modelos e ativos de ativos. A execução de uma importação em massa com esses metadados cria os modelos de ativos e os ativos internos AWS IoT SiteWise, incluindo seus relacionamentos hierárquicos.

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

Exemplo de integração inicial de modelos e ativos

Neste cenário de exemplo, você tem vários locais de trabalho que contêm robôs industriais em uma empresa.

O exemplo define vários modelos de ativos:

  • Sample_Enterprise— Esse modelo de ativos representa a empresa da qual os sites fazem parte. O modelo de ativos define uma hierarquiaEnterprise to Site,, para representar a relação dos sites com a empresa.

  • Sample_Site— Esse modelo de ativos representa os locais de fabricação dentro da empresa. O modelo de ativos define uma hierarquiaSite to Line,, para representar a relação das linhas com o site.

  • Sample_Welding Line— Esse modelo de ativos representa uma linha de montagem dentro dos locais de trabalho. O modelo de ativos define uma hierarquia,Line to Robot, para representar a relação dos robôs com a linha.

  • Sample_Welding Robot— Esse modelo de ativos representa um tipo específico de robô em seus locais de trabalho.

O exemplo também define ativos com base nos modelos de ativos.

  • Sample_AnyCompany Motor— Esse ativo é criado a partir do modelo de Sample_Enterprise ativos.

  • Sample_Chicago— Esse ativo é criado a partir do modelo de Sample_Site ativos.

  • Sample_Welding Line 1— Esse ativo é criado a partir do modelo de Sample_Welding Line ativos.

  • Sample_Welding Robot 1— Esse ativo é criado a partir do modelo de Sample_Welding Robot ativos.

  • Sample_Welding Robot 2— Esse ativo é criado a partir do modelo de Sample_Welding Robot ativos.

O arquivo de metadados JSON a seguir define esses modelos e ativos de ativos. A execução de uma importação em massa com esses metadados cria os modelos de ativos e os ativos internos AWS IoT SiteWise, incluindo seus relacionamentos hierárquicos.

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

A captura de tela a seguir mostra os modelos exibidos Console do AWS IoT SiteWise após a execução do exemplo de código anterior.

AWS IoT SiteWise modelos com ativos e modelos de ativos.

A captura de tela a seguir mostra modelos, ativos e hierarquias que são exibidos Console do AWS IoT SiteWise após a execução do exemplo de código anterior.

AWS IoT SiteWise modelos com ativos, modelos de ativos e hierarquias.

Exemplo de integração de ativos adicionais

Este exemplo define ativos adicionais a serem importados para um modelo de ativo existente em sua conta:

  • Sample_Welding Line 2— Esse ativo é criado a partir do modelo de Sample_Welding Line ativos.

  • Sample_Welding Robot 3— Esse ativo é criado a partir do modelo de Sample_Welding Robot ativos.

  • Sample_Welding Robot 4— Esse ativo é criado a partir do modelo de Sample_Welding Robot ativos.

Para criar os ativos iniciais para este exemplo, consulteExemplo de integração inicial de modelos e ativos.

O arquivo de metadados JSON a seguir define esses modelos e ativos de ativos. A execução de uma importação em massa com esses metadados cria os modelos de ativos e os ativos internos AWS IoT SiteWise, incluindo seus relacionamentos hierárquicos.

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

A captura de tela a seguir mostra modelos, ativos e hierarquias que são exibidos Console do AWS IoT SiteWise após a execução do exemplo de código anterior.

AWS IoT SiteWise modelos com ativos e modelos de ativos.

Exemplo de integração de novas propriedades

Este exemplo define novas propriedades em modelos de ativos existentes. Consulte Exemplo de integração de ativos adicionais a integração de ativos e modelos adicionais.

  • Joint 1 Temperature— Essa propriedade é adicionada ao modelo do Sample_Welding Robot ativo. Essa nova propriedade também se propagará para cada ativo criado a partir do modelo de Sample_Welding Robot ativo.

Para adicionar uma nova propriedade a um modelo de ativo existente, consulte o exemplo de arquivo de metadados JSON a seguir. Conforme mostrado no JSON, toda a definição do modelo Sample_Welding Robot de ativo existente deve ser fornecida junto com a nova propriedade. Se a lista de propriedades inteira da definição existente não for fornecida, AWS IoT SiteWise excluirá as propriedades omitidas.

Este exemplo adiciona uma nova propriedade Joint 1 Temperature ao modelo de ativos.

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

Exemplo de gerenciamento de fluxos de dados

Este exemplo mostra duas maneiras de gerenciar fluxos de dados associados a uma propriedade do ativo. Ao renomear um alias de propriedade do ativo, há duas opções para os dados históricos atualmente armazenados no fluxo de dados da propriedade do ativo.

  • Opção 1 — Manter o fluxo de dados atual e renomear apenas o alias, permitindo que os dados históricos sejam acessíveis com o novo alias.

    No exemplo do arquivo de metadados JSON, a propriedade do ativo com ID External_Id_Welding_Robot_Cycle_Count muda seu alias para. AnyCompany/Chicago/Welding Line/S3000/Count-Updated Os dados históricos dessa propriedade do ativo permanecem os mesmos após essa alteração.

  • Opção dois — Atribuir um novo fluxo de dados à propriedade do ativo que pode ser acessada com o novo alias. O fluxo de dados antigo, junto com seus dados históricos, ainda pode ser acessado com o alias antigo, mas não está associado a nenhuma propriedade do ativo.

    No exemplo do arquivo de metadados JSON, a propriedade do ativo com ID External_Id_Welding_Robot_Joint_1_Current muda seu alias para. AnyCompany/Chicago/Welding Line/S4999/1/Current Desta vez, o valor adicional retainDataOnAliasChange está presente e definido comoFalse. Com essa configuração, o fluxo de dados original é desassociado da propriedade do ativo e um novo fluxo de dados é criado sem dados históricos.

Para acessar o fluxo de dados antigo com os dados históricos originais AWS Console Home, acesse a página Fluxos de dados e pesquise o AnyCompany/Chicago/Welding Line/S3000/1/Current alias antigo.

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