메타데이터 가져오기 예제 - AWS IoT SiteWise

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

메타데이터 가져오기 예제

이 섹션에서는 한 번의 대량 가져오기 작업으로 자산 모델 및 자산을 가져오기 위한 메타데이터 파일을 생성하는 방법을 보여줍니다.

대량 가져오기의 예

한 번의 대량 가져오기 작업으로 여러 자산 모델 및 자산을 가져올 수 있습니다. 다음 예제에서는 메타데이터 파일을 생성하여 이를 수행하는 방법을 보여줍니다.

이 예제 시나리오에서는 작업실에 산업용 로봇이 포함된 다양한 작업장이 있습니다.

이 예제에서는 두 가지 자산 모델을 정의합니다.

  • RobotModel1: 이 자산 모델은 작업 현장에 있는 특정 유형의 로봇을 나타냅니다. 로봇에는 측정 속성이 있습니다Temperature.

  • WorkCell: 이 자산 모델은 작업 현장 중 한 곳에 있는 로봇 컬렉션을 나타냅니다. 자산 모델은 계층을 정의하여 작업셀에 로봇이 포함된 관계를 나타냅니다. robotHierarchyOEM1

이 예제에서는 일부 자산도 정의합니다.

  • WorkCell1: 보스턴 사이트 내 작업실

  • RobotArm123456: 작업실 안에 있는 로봇

  • RobotArm987654: 작업실 안에 있는 또 다른 로봇

다음 JSON 메타데이터 파일은 이러한 자산 모델 및 자산을 정의합니다. 이 메타데이터를 사용하여 대량 가져오기를 실행하면 계층 관계를 포함하여 에셋 모델 및 에셋이 생성됩니다. AWS IoT SiteWise

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

모델 및 자산의 초기 온보딩 예제

이 예제 시나리오에서는 회사에 산업용 로봇이 있는 다양한 작업장이 있습니다.

이 예제에서는 여러 자산 모델을 정의합니다.

  • Sample_Enterprise— 이 자산 모델은 사이트가 속한 회사를 나타냅니다. 자산 모델은 사이트와 기업 간의 관계를 나타내는 계층 구조를 정의합니다. Enterprise to Site

  • Sample_Site— 이 자산 모델은 회사 내 제조 현장을 나타냅니다. 자산 모델은 라인과 사이트 간의 관계를 나타내는 계층 구조를 정의합니다. Site to Line

  • Sample_Welding Line— 이 자산 모델은 작업장 내의 조립 라인을 나타냅니다. 자산 모델은 로봇과 라인 간의 관계를 나타내는 계층 구조를 정의합니다. Line to Robot

  • Sample_Welding Robot— 이 자산 모델은 작업 현장의 특정 로봇 유형을 나타냅니다.

또한 이 예제에서는 자산 모델을 기반으로 자산을 정의합니다.

  • Sample_AnyCompany Motor— 이 자산은 Sample_Enterprise 자산 모델에서 생성됩니다.

  • Sample_Chicago— 이 자산은 Sample_Site 자산 모델에서 생성됩니다.

  • Sample_Welding Line 1— 이 자산은 Sample_Welding Line 자산 모델에서 생성됩니다.

  • Sample_Welding Robot 1— 이 자산은 Sample_Welding Robot 자산 모델에서 생성됩니다.

  • Sample_Welding Robot 2— 이 자산은 Sample_Welding Robot 자산 모델에서 생성됩니다.

다음 JSON 메타데이터 파일은 이러한 자산 모델 및 자산을 정의합니다. 이 메타데이터를 사용하여 대량 가져오기를 실행하면 계층 관계를 포함하여 에셋 모델 및 에셋이 생성됩니다. AWS IoT SiteWise

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

다음 스크린샷은 이전 코드 예제를 AWS IoT SiteWise Console 실행한 후 에 표시되는 모델의 스크린샷입니다.

AWS IoT SiteWise 에셋 및 에셋 모델이 포함된 모델.

다음 스크린샷은 이전 코드 예제를 실행한 AWS IoT SiteWise Console 후 에 표시되는 모델, 자산 및 계층 구조입니다.

AWS IoT SiteWise 자산, 자산 모델 및 계층 구조가 포함된 모델.

추가 자산 온보딩 예제

이 예시에서는 계정의 기존 자산 모델로 가져올 추가 자산을 정의합니다.

  • Sample_Welding Line 2— 이 자산은 Sample_Welding Line 자산 모델에서 생성됩니다.

  • Sample_Welding Robot 3— 이 자산은 Sample_Welding Robot 자산 모델에서 생성됩니다.

  • Sample_Welding Robot 4— 이 자산은 Sample_Welding Robot 자산 모델에서 생성됩니다.

이 예제의 초기 자산을 만들려면 을 참조하십시오모델 및 자산의 초기 온보딩 예제.

다음 JSON 메타데이터 파일은 이러한 자산 모델 및 자산을 정의합니다. 이 메타데이터를 사용하여 대량 가져오기를 실행하면 계층 관계를 포함하여 에셋 모델 및 에셋이 생성됩니다. AWS IoT SiteWise

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

다음 스크린샷은 이전 코드 예제를 실행한 AWS IoT SiteWise Console 후 에 표시되는 모델, 자산 및 계층 구조입니다.

AWS IoT SiteWise 자산 및 자산 모델이 포함된 모델.

새 속성 온보딩 예제

이 예제는 기존 자산 모델의 새 속성을 정의합니다. 추가 자산 및 모델을 추가 자산 온보딩 예제 온보딩하려면 을 참조하십시오.

  • Joint 1 Temperature— 이 속성이 Sample_Welding Robot 자산 모델에 추가됩니다. 이 새 속성은 자산 모델에서 생성된 각 자산에도 전파됩니다Sample_Welding Robot.

기존 자산 모델에 새 속성을 추가하려면 다음 JSON 메타데이터 파일 예제를 참조하십시오. 에서 볼 수 있듯이 기존 Sample_Welding Robot 자산 모델 정의 전체를 새 속성과 함께 제공해야 합니다. JSON 기존 정의의 전체 속성 목록이 제공되지 않은 경우 생략된 속성을 AWS IoT SiteWise 삭제합니다.

이 예제는 자산 모델에 새 속성을 Joint 1 Temperature 추가합니다.

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

데이터 스트림 관리 예제

이 예제에서는 자산 자산과 관련된 데이터 스트림을 관리하는 두 가지 방법을 보여줍니다. 자산 자산 별칭의 이름을 바꾸는 경우 자산 속성의 데이터 스트림에 현재 저장되어 있는 과거 데이터에 대한 두 가지 옵션이 있습니다.

  • 옵션 1 — 현재 데이터 스트림을 유지하고 별칭만 변경하여 새 별칭으로 과거 데이터에 액세스할 수 있도록 합니다.

    JSON메타데이터 파일 예제에서 ID가 있는 자산 속성은 별칭을 로 External_Id_Welding_Robot_Cycle_Count 변경합니다. AnyCompany/Chicago/Welding Line/S3000/Count-Updated 이 자산 속성의 이전 데이터는 변경 후에도 동일하게 유지됩니다.

  • 옵션 2 — 새 별칭으로 액세스할 수 있는 자산 자산에 새 데이터 스트림을 할당합니다. 이전 별칭을 사용하여 이전 데이터 스트림과 과거 데이터에 계속 액세스할 수 있지만 자산 자산과는 연결되지 않습니다.

    JSON메타데이터 파일 예제에서 ID가 있는 자산 속성은 별칭을 로 External_Id_Welding_Robot_Joint_1_Current 변경합니다. AnyCompany/Chicago/Welding Line/S4999/1/Current 이번에는 추가 값이 retainDataOnAliasChange 존재하고 로 설정됩니다. False 이 설정을 사용하면 원본 데이터 스트림이 자산 속성과 분리되고 이전 데이터가 포함되지 않은 새 데이터 스트림이 생성됩니다.

원본 기록 데이터로 이전 데이터 스트림에 액세스하려면 에서 데이터 스트림 페이지로 이동하여 이전 별칭을 AnyCompany/Chicago/Welding Line/S3000/1/Current 검색하십시오. AWS Console Home

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