- Eclipse AAS Model for Java (AAS4J) provides libraries for Java implementing the specification of the AAS such as metamodels, submodels, serialization and deserialization modules, validators, and transformation libraries to other industry standards.
By working within the Eclipse Digital Twin Top-Level Project, we have bigger Open Source community backed up by the Eclipse Foundation to bring Digital Twins based on AAS to the next level.
Looking forward to seeing in the Eclipse AAS Model for Java (AAS4J)!
Provide a set of tools to realize the Asset Administration Shell for Industrie 4.0.
- i40-aas-objects - Contents:
i40-aas-objects is a typescript implementation of the specification "Details of the AssetAdministrationShell" part 1 version 2.0.1.
It implements all required classes to build an AAS-JSON-file. It is also possible to use it in the browser as it is JavaScript.
You need to download and install Node.js and its packagemanager NPM.
Enter node --version
and npm --version
in your command line to test your installation.
You should see:
$ node --version
// min version: v8.12.0
$ npm --version
// min version: 6.4.1
Download and install the TypeScriptCompiler (tsc).
$ npm install -g typescript
Check your installation with tsc --version
.
You should see:
$ tsc --version
// min version: 3.5.3
Import i40-aas-objects as a dependency in your package.json
file of your Node.js or TypeScript project.
$ mkdir myaas
$ cd myaas
$ npm init
Create a tsconfig.json
file in the root of the project directory and paste in the following snippet:
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"outDir": "dist",
"sourceMap": true,
"resolveJsonModule": true,
"esModuleInterop": true,
"strict": true,
"declaration": true
},
"include": ["src/**/*.ts", "index.ts"],
"exclude": ["node_modules"]
}
Let it be added by the package manager:
$ npm i --save i40-aas-objects
OR
$ npm i --save git://github.com/SAP/i40-aas-objects.git
Or add it manually to your package.json
. (NOTE: You need to run npm i
after you have edited your package.json
.)
{
"name": "testaas",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"dependencies":{
"i40-aas-objects": "^0.2.0",
...
},
"author": "",
"license": "SEE LICENSE IN LICENSE"
}
import {
AssetAdministrationShellEnv,
Asset,
AssetAdministrationShell,
Submodel,
IdTypeEnum,
Property,
AnyAtomicTypeEnum,
Reference,
KeyElementsEnum,
} from 'i40-aas-objects';
var run = function() {
/* Create a Submodel and add a new Property to it*/
var myAssetIdentificationModel = Submodel.fromJSON({
identification: { id: 'http://test.com/submodel/id/identification123', idType: IdTypeEnum.IRDI },
idShort: 'identification123',
}).addSubmodelElement(
new Property(
'ManufacturerName',
AnyAtomicTypeEnum.string,
'SAP SE',
undefined,
new Reference({
keys: [
{
local: false,
type: KeyElementsEnum.GlobalReference,
idType: IdTypeEnum.IRDI,
value: '0173-1#02-AAO677#002',
},
],
}),
),
);
/* Create an asset and add a reference to the previously created submodel as it assetIdentificationModel*/
var myAsset = new Asset(
{ id: 'http://test.com/asset/123', idType: IdTypeEnum.IRDI },
'123',
).setAssetIdentificationModel(myAssetIdentificationModel.getReference());
/* Create an AAS and add a reference to the previously created asset as its asset*/
var myAas = new AssetAdministrationShell(
{ id: 'http://test.com/aas/id/aas123', idType: IdTypeEnum.IRDI },
'identification123',
).setAsset(myAsset.getReference());
/* Create an environment and add all identifiables */
var myNewAasEnv = new AssetAdministrationShellEnv()
.addAssetAdministrationShell(myAas)
.addAsset(myAsset)
.addSubmodel(myAssetIdentificationModel);
/* print the environment to the console */
console.log(JSON.stringify(myNewAasEnv, null, 3));
};
run();
Please refer to the list of issues on GitHub.
Please use the GitHub issue tracker for any questions, bug reports, feature requests, etc.
You are welcome to join us in our efforts to improve and increase the set of tools to realize the Asset Administration Shell for Industrie 4.0!
Simply check the Contribution Guidelines.
This project follows the specification "Details of the AssetAdministrationShell" part 1 version 1.0, which is work in progress. As the specification changes, so will this project.
For upcoming changes under development, please refer to the Github issue board.