IEC 63278 Asset Admin Shell Repository reference implementation using C# and .Net6.0.
- Loading of Asset Admin Shells V1, V2 and V3 (both XML and JSON encoding), but always saving in V3 format, leveraging both JSON and XML)
- Loading of OPC UA nodeset2 XML files as AAS models
- Standardized AAS REST interface (as specified in part 2 of the AAS spec)
- Swagger endpoint at /swagger
- IDTA AASX Package Explorer client interface support
- Joint CESMII/Plattform Industrie 4.0/IDTA/DTC Carbon Reporting Demonstrator integration
- Product Carbon Footprint (PCF) calculation (based on GHG Protocol specification) for the production line simulation which is part of the DTC's Manufacturing Ontologies reference solution.
- WattTime integration
- OPC UA PubSub operational data integration
- UA Cloud Library integration
- Azure Data Explorer data source integration
- Integrated AAS browser
- Integrated OPC UA Nodeset file browser
- Integrated AutomationML file browser
- Basic authentication header support (use "admin" and ServicePassword environment variable to set password)
- Local storage of AASX package files (in the server's root directory)
- Cloud storage of AASX package files
- CESMII Smart Manufacturing Innovation Plattform (SMIP) imtegration
- Loading AAS json/xml into OPC UA server using I4AAS mapping
One of the most popular use cases for the Asset Administration Shell (AAS) is to make the Product Carbon Footprint (PCF) of manufactured products available to customers of those products. In fact, the AAS will most likely become the underlying technology in the upcoming Digital Product Passport (DPP) initiative from the European Union. To calculate the PCF, all three scopes (1, 2 & 3) of emissions need to be taken into account.
These emissions come from all sources the manufacturer uses to burn fossil fuels, either during production (for example when the manufacturer has a natural gas-powered production process) or before (for example picking up parts by truck) or afterwards (for example the cars of sales people or the delivery trucks with the produced products). They are relatively easy to calculate as the emissions from fossil fuel-powered engines are a well-understood quantity. This reference solution simply adds a fixed value for scope 1 emissions to the total product carbon footprint.
These emissions come from the electricity used during production. If the manufacturer uses a 100% renewable energy provider, the scope 2 emissions are zero. However, most manufacturers have long-term contracts with energy providers and need to ask their energy provider for the carbon intensity per KWh of energy delivered. If this data is not available, an average for the electricity grid region the manufacturing site is in should be used. This data is available through services like WattTime and this is what this reference solution uses. The PCF calculation first checks if a new product was successfully produced by the production line, retrieves the produced product's serial number, followed by the energy consumption of each machine of the production line while the new product was produced by the machine and then applies the carbon intensity to the sum of all machines' energy consumption.
These emissions come from the parts and raw materials used within the product being manufactured as well as from using the product by the end customer (and getting it into the customer's hands in the first place!) and are the hardest to calculate simply due to a lack of data from the worldwide suppliers manufacturer uses today. Unfortunately, scope 3 emissions make up almost 90% of the emissions in manufacturing. However, this is where the AAS can help create a standardized interface and data model to provide and retrieve scope 3 emissions. This reference solution does just that by making an AAS available for each manufactured product built by the simulated production line and also reads PCF data from another AAS simulating a manufacturing supply chain.
Docker containers are automatically built. Simply run the app on a Docker-enabled PC via:
docker run -p 80:80 ghcr.io/digitaltwinconsortium/aas-repository:masterv3
And then point your browser to http://localhost.
Note: For a quickstart, the AAS Repository is integrated in the Manufacturing Ontologies reference solution.
- ServicePassword: Password to access the service via basic authentication header
- HostingPlatform: The hosting platform of the repository. Current options are
Azure
(the default is to run it locally) - BlobStorageConnectionString: The connection string to the Azure Blob storage when the hosting platform is set to Azure
- UACLUsername: OPC Foundation UA Cloud Library username
- UACLPassword: OPC Foundation UA Cloud Library password
- ADX_HOST: Azure Data Explorer host name
- ADX_DB: Azure Data Explorer database name
- AAD_TENANT: Azure Active Directory tenant ID of your Azure subscription (GUID)
- AAD_APPLICATION_ID: Azure Active Directory application ID (GUID, set this up via an app registration in the Azure Portal)
- AAD_APPLICATION_KEY: Azure Active Directory application key (with data owner access to ADX cluster and database, create a secret within your AAD app registration)
- DATA_QUERY_INTERVAL: The query interval for the connected database
- WATTTIME_USER: WattTime service username
- WATTTIME_PASSWORD: WattTime service password
- WATTTIME_LATITUDE: WattTime location to query
- WATTTIME_LONGITUDE: WattTime location to query
- CALCULATE_PCF: Set to "1" to enable PCF calculation for the DTC's Manufacturing Ontologies Reference Solution
- CALCULATE_PCF_SMIP: Set to "1" to enable PCF calculation for CESMII's Smart Manufacturing Innovation Platform
- CARBON_REPORTING: Set to "1" to enable carbon reporting
- OPCUA_REPORTING: Set to "1" to enable OPC UA PubSub operational data reporting
- USE_JSON_SERIALIZATION: Set "1" to enable saving AAS spec in JSON format (within AASX file)
- SMIP_GRAPHQL_ENDPOINT_URL: The CESMII SMIP GarphQL Endpoint URL, e.g. "https://demo.cesmii.net/graphql"
- SMIP_USERNAME: Your CESMII SMIP username
- SMIP_CLIENT_ID: The CESMII SMIP client ID of this AAS Repo
- SMIP_CLIENT_PASSWORD: The CESMII SMIP client password of this AAS Repo
- SMIP_CLIENT_ROLE: The CESMII SMIP client role of this AAS Repo
- SMIP_BEARER_TOKEN: The current CESMII SMIP bearer token. If blank, the other SMIP env variables are used to request a new token