View a markdown version of this page

Exemples de métadonnées d'importation - AWS IoT SiteWise

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Exemples de métadonnées d'importation

Cette section explique comment créer des fichiers de métadonnées pour importer des modèles d'actifs et des actifs en une seule opération d'importation groupée.

Exemple d'importation en masse

Vous pouvez importer de nombreux modèles d'actifs et actifs en une seule opération d'importation groupée. L'exemple suivant montre comment créer un fichier de métadonnées pour ce faire.

Dans cet exemple de scénario, différents sites de travail contiennent des robots industriels dans des cellules de travail.

L'exemple définit deux modèles d'actifs :

  • RobotModel1: Ce modèle d'actif représente un type particulier de robot que vous avez sur vos sites de travail. Le robot possède une propriété de mesure,Temperature.

  • WorkCell: Ce modèle d'actif représente un ensemble de robots sur l'un de vos sites de travail. Le modèle d'actif définit une hiérarchie,robotHierarchyOEM1, pour représenter la relation entre une cellule de travail et des robots.

L'exemple définit également certains actifs :

  • WorkCell1: une cellule de travail au sein de votre site de Boston

  • RobotArm123456: un robot dans cette cellule de travail

  • RobotArm987654: un autre robot au sein de cette cellule de travail

Le fichier de métadonnées JSON suivant définit ces modèles d'actifs et ces actifs. L'exécution d'une importation en masse avec ces métadonnées crée les modèles d'actifs et les actifs qu'ils contiennent AWS IoT SiteWise, y compris leurs relations hiérarchiques.

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

Exemple d'intégration initiale de modèles et d'actifs

Dans cet exemple de scénario, plusieurs sites de travail contiennent des robots industriels dans une entreprise.

L'exemple définit plusieurs modèles d'actifs :

  • Sample_Enterprise— Ce modèle d'actifs représente l'entreprise dont font partie les sites. Le modèle d'actif définit une hiérarchie pour représenter la relation entre les sites et l'entreprise. Enterprise to Site

  • Sample_Site— Ce modèle d'actifs représente les sites de fabrication au sein de l'entreprise. Le modèle d'actif définit une hiérarchieSite to Line,, pour représenter la relation entre les lignes et le site.

  • Sample_Welding Line— Ce modèle d'actif représente une chaîne de montage sur les sites de travail. Le modèle d'actif définit une hiérarchieLine to Robot,, pour représenter la relation entre les robots et la ligne.

  • Sample_Welding Robot— Ce modèle d'actif représente un type particulier de robot sur vos sites de travail.

L'exemple définit également les actifs en fonction des modèles d'actifs.

  • Sample_AnyCompany Motor— Cet actif est créé à partir d'Sample_Enterpriseun modèle d'actif.

  • Sample_Chicago— Cet actif est créé à partir d'Sample_Siteun modèle d'actif.

  • Sample_Welding Line 1— Cet actif est créé à partir d'Sample_Welding Lineun modèle d'actif.

  • Sample_Welding Robot 1— Cet actif est créé à partir d'Sample_Welding Robotun modèle d'actif.

  • Sample_Welding Robot 2— Cet actif est créé à partir d'Sample_Welding Robotun modèle d'actif.

Le fichier de métadonnées JSON suivant définit ces modèles d'actifs et ces actifs. L'exécution d'une importation en masse avec ces métadonnées crée les modèles d'actifs et les actifs qu'ils contiennent AWS IoT SiteWise, y compris leurs relations hiérarchiques.

{ "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 capture d'écran suivante montre les modèles qui s'affichent Console AWS IoT SiteWise après l'exécution de l'exemple de code précédent.

AWS IoT SiteWise modèles avec actifs et modèles d'actifs.

La capture d'écran suivante montre les modèles, les actifs et les hiérarchies qui s'affichent dans l'exemple de code Console AWS IoT SiteWise suivant l'exécution de l'exemple de code précédent.

AWS IoT SiteWise modèles avec actifs, modèles d'actifs et hiérarchies.

Exemple d'intégration d'actifs supplémentaires

Cet exemple définit des actifs supplémentaires à importer vers un modèle d'actif existant dans votre compte :

  • Sample_Welding Line 2— Cet actif est créé à partir d'Sample_Welding Lineun modèle d'actif.

  • Sample_Welding Robot 3— Cet actif est créé à partir d'Sample_Welding Robotun modèle d'actif.

  • Sample_Welding Robot 4— Cet actif est créé à partir d'Sample_Welding Robotun modèle d'actif.

Pour créer les ressources initiales pour cet exemple, consultezExemple d'intégration initiale de modèles et d'actifs.

Le fichier de métadonnées JSON suivant définit ces modèles d'actifs et ces actifs. L'exécution d'une importation en masse avec ces métadonnées crée les modèles d'actifs et les actifs qu'ils contiennent AWS IoT SiteWise, y compris leurs relations hiérarchiques.

{ "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 capture d'écran suivante montre les modèles, les actifs et les hiérarchies qui s'affichent dans l'exemple de code Console AWS IoT SiteWise suivant l'exécution de l'exemple de code précédent.

AWS IoT SiteWise modèles avec actifs et modèles d'actifs.

Exemple d'intégration de nouveaux établissements

Cet exemple définit de nouvelles propriétés sur des modèles d'actifs existants. Consultez Exemple d'intégration d'actifs supplémentaires pour intégrer des actifs et des modèles supplémentaires.

  • Joint 1 Temperature— Cette propriété est ajoutée au modèle Sample_Welding Robot d'actif. Cette nouvelle propriété sera également propagée à chaque actif créé à partir du modèle Sample_Welding Robot d'actif.

Pour ajouter une nouvelle propriété à un modèle d'actif existant, consultez l'exemple de fichier de métadonnées JSON suivant. Comme indiqué dans le JSON, la définition complète du modèle Sample_Welding Robot d'actif existant doit être fournie avec la nouvelle propriété. Si la liste complète des propriétés de la définition existante n'est pas fournie, AWS IoT SiteWise supprime les propriétés omises.

Cet exemple ajoute une nouvelle propriété Joint 1 Temperature au modèle d'actif.

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

Exemple de gestion de flux de données

Cet exemple montre deux manières de gérer les flux de données associés à une propriété d'actif. Lorsque vous renommez l'alias d'une propriété d'actif, deux options sont disponibles pour les données historiques actuellement stockées dans le flux de données de la propriété d'actif.

  • Option 1 — Conservez le flux de données actuel et renommez uniquement l'alias, afin que les données historiques soient accessibles avec le nouvel alias.

    Dans l'exemple de fichier de métadonnées JSON, la propriété d'actif avec ID External_Id_Welding_Robot_Cycle_Count change son alias enAnyCompany/Chicago/Welding Line/S3000/Count-Updated. Les données historiques pour cette propriété d'actif restent les mêmes après cette modification.

  • Option 2 — Attribuez un nouveau flux de données à la propriété de l'actif accessible avec le nouvel alias. L'ancien flux de données ainsi que ses données historiques sont toujours accessibles avec l'ancien alias, mais ils ne sont associés à aucune propriété d'actif.

    Dans l'exemple de fichier de métadonnées JSON, la propriété d'actif avec ID External_Id_Welding_Robot_Joint_1_Current change son alias enAnyCompany/Chicago/Welding Line/S4999/1/Current. Cette fois, la valeur supplémentaire retainDataOnAliasChange est présente et réglée surFalse. Avec ce paramètre, le flux de données d'origine est dissocié de la propriété de l'actif et un nouveau flux de données est créé sans données historiques.

Pour accéder à l'ancien flux de données avec les données historiques d'origine AWS Console Home, accédez à la page Flux de données et recherchez l'ancien aliasAnyCompany/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" } ] }