Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
BaSyx / Introductory Examples
Setting up a digital production with Eclipse BaSyx
The introductory examples provide a starting point for getting started with the Eclipse BaSyx Java SDK. The overall rationale of Eclipse BaSyx is to enable digital manufacturing processes. Digital manufacturing processes are fully digitized, i.e. they have digital representatives for assets, for the process itself, and for the products. Digital representatives cover all relevant aspects of their real-world counterpart. Eclipse BaSyx realizes these digital representatives with the Asset Administration Shell (AAS). The AAS is therefore a digital substitute for an entity that is relevant for a production process. The following examples introduce Eclipse BaSyx and illustrate the use of our middleware to create a digital representative of a manufacturing process.
In the following, for each SDK there are introductory examples provided, showcasing the different concepts in the respective SDK.
Hello World via Docker
[Disclaimer: development branch] To get a first impression of the look and feel of the BaSyx infrastructure, within the examples a docker compose file is provided. It lets you build a basic BaSys infrastructure, consisting of a registry server, an AAS server and an AAS Web GUI. Setting it up is as simple as
- checkout basyx-java-examples
- navigate to basyx-java-examples
$ cd basyx-java-examples
- switch to development branch
git checkout development
- navigate to basyx.docker/simple-deployment-with-gui
$ cd basyx.docker/simple-deployment-with-gui
$ docker compose up
- A registry server at http://localhost:8082/registry
- An AAS server at http://localhost:8081/aasServer
- An AAS Web GUI at http://localhost:8080/
To setup the AAS Web GUI with the registry, visit http://localhost:8080/ and paste the url http://localhost:8082/registry into the appropriate input field at the top pf the page.
More details can be found at Introductory Examples/Java/Step 5
The goal of the following examples is to introduce core concepts and the respective infrastructure components of the Eclipse BaSyx Java SDK in 8 steps. In these steps we will illustrate:
The Virtual Automation Bus enables end-to-end connectivity. The Asset Administration Shell is the digital representative of a device. If the AAS only provides access to sensor data then it will be a digital shadow. If it also enables controlling of the real device, it is a digital twin. The control component can be implemented in a PLC controller, and provides a unified device interface.
The following example illustrates Eclipse BaSyx by creating a digital twin for one device. The device is an oven that consists of a temperature sensor and of a heater. An application will display the current state of the oven and control its operation. The following links lead to a set of classes that we will be using for simulating the behavior of the oven and its devices to enable the self-contained execution of this example:
Basic Example: There are currently 6 steps that illustrate the use of Eclipse BaSyx, each building upon the previous one. In the end, there will be a digitized oven with the ability to access its current state and to control its operation using Asset Administration Shells and Control Components.
- Step 1 - Creating the digital manufacturing concept
- Step 2 - Setting up the Eclipse BaSyx infrastructure
- Step 3 - Creating (and testing) the oven Submodel
- Step 4 - Providing the Submodel in the network via HTTP
- Step 5 - Assembling the oven Asset Administration Shell and deploying it on the AAS server
- Step 6 - Creating an application to connect to the oven through its AAS
- Step 7 - Eventing via MQTT
- Step 8 - Protect the Server from unauthorized access
Additional steps: The following steps illustrate additional activities and capabilities of the Eclipse BaSyx Java SDK in context of the oven example.
- Step 1 - Creating and accessing an oven model with local VAB access
- Step 2 - Providing the model via HTTP/REST and accessing the model remotely
- Step 3 - Using a Control Component for unified service interfacing
- Step 4 - Creating the AAS, registering it and exploring the HTTP-REST interface
- Step 5 - Accessing the remote AAS through the SDK
- Step 6 - Using the Off-the-Shelf-Components