Skip to main content

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.

Jump to: navigation, search

Difference between revisions of "BaSyx / ApplicationScenarios"

m
(Added links to Java examples)
Line 31: Line 31:
 
| style="width:20em" | ''Snippet'' || style="width:20em" | ''Additional Documentation'' ||style="width:45em" | ''Description'' || style="width:20em" | ''Source''
 
| style="width:20em" | ''Snippet'' || style="width:20em" | ''Additional Documentation'' ||style="width:45em" | ''Description'' || style="width:20em" | ''Source''
 
|-
 
|-
| CRUD operations || || Illustrate creation of VAB object and use of create/update/retrieve/delete operations to manipulate it. || source
+
| CRUD operations || || Illustrate creation of VAB object and use of create/update/retrieve/delete operations to manipulate it. || [https://git.eclipse.org/r/plugins/gitiles/basyx/basyx/+/master/examples/basys.examples/examples/org/eclipse/basyx/examples/snippets/vab/CRUDOperations.java Java]
 
|-
 
|-
| Manual HTTP calls || || Illustrate manual HTTP operations to access VAB objects via HTTP REST interface || source
+
| Manual HTTP calls || || Illustrate manual HTTP operations to access VAB objects via HTTP REST interface || [https://git.eclipse.org/r/plugins/gitiles/basyx/basyx/+/master/examples/basys.examples/examples/org/eclipse/basyx/examples/snippets/vab/ManualHTTPCalls.java Java]
 
|-
 
|-
| Dynamic property (Lambda) || || Illustrate dynamic properties (Lambda expression) in VAB objects. || source
+
| Dynamic property (Lambda) || || Illustrate dynamic properties (Lambda expression) in VAB objects. || [https://git.eclipse.org/r/plugins/gitiles/basyx/basyx/+/master/examples/basys.examples/examples/org/eclipse/basyx/examples/snippets/vab/DynamicPropertyLambda.java Java]
 
|-
 
|-
| Dynamic property (Class) || || Illustrate the dynamic properties (Class) in VAB objects. || source
+
| Dynamic property (Class) || || Illustrate the dynamic properties (Class) in VAB objects. ||  
 +
[https://git.eclipse.org/r/plugins/gitiles/basyx/basyx/+/master/examples/basys.examples/examples/org/eclipse/basyx/examples/snippets/vab/DynamicPropertyClass.java Java]
 
|}
 
|}
  
Line 49: Line 50:
 
| style="width:20em" | ''Snippet'' || style="width:20em" | ''Additional Documentation'' ||style="width:45em" | ''Description'' || style="width:20em" | ''Source''
 
| style="width:20em" | ''Snippet'' || style="width:20em" | ''Additional Documentation'' ||style="width:45em" | ''Description'' || style="width:20em" | ''Source''
 
|-  
 
|-  
| Create AAS || || Illustrate creation and use of Asset Administration Shell  || source
+
| Create AAS || [[BaSyx.Examples.Snippets.AASCreation.Java | (Java)]] || Creation of Asset Administration Shell by extending SDK class  || [https://git.eclipse.org/r/plugins/gitiles/basyx/basyx/+/master/examples/basys.examples/examples/org/eclipse/basyx/examples/snippets/aas/CreateAAS.java Java]
 +
|-
 +
| Create AAS on the fly || || Creation of Asset Administration Shell by setting properties of predefined AAS class || [https://git.eclipse.org/r/plugins/gitiles/basyx/basyx/+/master/examples/basys.examples/examples/org/eclipse/basyx/examples/snippets/aas/AccessAASProperties.java Java]
 
|}
 
|}
  
Line 60: Line 63:
 
{|
 
{|
 
| style="width:20em" | ''Snippet'' || style="width:20em" | ''Additional Documentation'' ||style="width:45em" | ''Description'' || style="width:20em" | ''Source''
 
| style="width:20em" | ''Snippet'' || style="width:20em" | ''Additional Documentation'' ||style="width:45em" | ''Description'' || style="width:20em" | ''Source''
|-
 
| Create AAS by extending SDK class || [[BaSyx.Examples.Snippets.AASCreation.Java | (Java)]] || Illustrate creation of Asset Administration Shell by extending an SDK class  || source
 
 
|-
 
|-
| Connect to remote AAS || [[BaSyx.Examples.Snippets.AASConnection.Java | (Java)]] || Illustrate connection to Asset Administration Shell with SDK connector || source
+
| Connect to remote AAS || [[BaSyx.Examples.Snippets.AASConnection.Java | (Java)]] || Illustrate connection to Asset Administration Shell with SDK connector || [https://git.eclipse.org/r/plugins/gitiles/basyx/basyx/+/master/examples/basys.examples/examples/org/eclipse/basyx/examples/snippets/aas/deployment/http/ConnectToRemoteAAS.java Java]
 
|}
 
|}
  
Line 75: Line 76:
 
| style="width:20em" | ''Snippet'' || style="width:20em" | ''Additional Documentation'' ||style="width:45em" | ''Description'' || style="width:20em" | ''Source''
 
| style="width:20em" | ''Snippet'' || style="width:20em" | ''Additional Documentation'' ||style="width:45em" | ''Description'' || style="width:20em" | ''Source''
 
|-
 
|-
| Device AAS deployment  ||  || Dynamic deployment of Asset Administration Shell on Device using a BaSyx/TCP protocol server || source
+
| Device AAS deployment  ||  || Dynamic Asset Administration Shell deployment with BaSyx/TCP ||  
 +
[https://git.eclipse.org/r/plugins/gitiles/basyx/basyx/+/master/examples/basys.examples/examples/org/eclipse/basyx/examples/snippets/aas/deployment/device/DeviceAASDeployment.java Java]
 
|-
 
|-
| Device sub model deployment ||  || Dynamic deployment of sub model on Device using a BaSyx/TCP protocol server || source
+
| Device AAS deployment (VAB) ||  || Dynamic Asset Administration Shell deployment with BaSyx/TCP using low-level VAB access || [https://git.eclipse.org/r/plugins/gitiles/basyx/basyx/+/master/examples/basys.examples/examples/org/eclipse/basyx/examples/snippets/aas/deployment/device/DeviceAASDeploymentVAB.java Java]
 +
|-
 +
| Device sub model deployment ||  || Dynamic deployment of sub model on Device using a BaSyx/TCP protocol server || [https://git.eclipse.org/r/plugins/gitiles/basyx/basyx/+/master/examples/basys.examples/examples/org/eclipse/basyx/examples/snippets/aas/deployment/device/DeviceSubModelDeployment.java Java]
 +
|-
 +
| Device sub model deployment (VAB) ||  || Dynamic deployment of sub model on Device using a BaSyx/TCP protocol server (VAB access) || [https://git.eclipse.org/r/plugins/gitiles/basyx/basyx/+/master/examples/basys.examples/examples/org/eclipse/basyx/examples/snippets/aas/deployment/device/DeviceSubModelDeploymentVAB.java Java]
 
|}
 
|}
  
Line 89: Line 95:
 
| style="width:20em" | ''Snippet'' || style="width:20em" | ''Additional Documentation'' ||style="width:45em" | ''Description'' || style="width:20em" | ''Source''
 
| style="width:20em" | ''Snippet'' || style="width:20em" | ''Additional Documentation'' ||style="width:45em" | ''Description'' || style="width:20em" | ''Source''
 
|-
 
|-
| Create AAS sub model || [[BaSyx.Examples.Snippets.AASSMCreation.Java | (Java)]] || Illustrate creation of AAS sub model with SDK factory || source
+
| Create AAS sub model (SDK) || [[BaSyx.Examples.Snippets.AASSMCreation.Java | (Java)]] || Illustrate creation of AAS sub model with SDK factory || [https://git.eclipse.org/r/plugins/gitiles/basyx/basyx/+/master/examples/basys.examples/examples/org/eclipse/basyx/examples/snippets/aas/submodels/CreateAASSubModelSDK.java Java]
 +
|-
 +
| Create AAS sub model (VAB) || [[BaSyx.Examples.Snippets.AASSMCreation.Java | (Java)]] || Illustrate creation of AAS sub model with VAB primitives || [https://git.eclipse.org/r/plugins/gitiles/basyx/basyx/+/master/examples/basys.examples/examples/org/eclipse/basyx/examples/snippets/aas/submodels/CreateAASSubModelVAB.java Java]
 
|-
 
|-
| Dynamic sub model deployment ||  || Illustrate dynamic sub model deployment on BaSyx sub model server || source
+
| Dynamic sub model deployment (SDK) ||  || Illustrate dynamic sub model creation and deployment on BaSyx sub model server ||
 +
[https://git.eclipse.org/r/plugins/gitiles/basyx/basyx/+/master/examples/basys.examples/examples/org/eclipse/basyx/examples/snippets/aas/submodels/DynamicSubModelDeployment.java Java]
 
|-
 
|-
| Connect to AAS sub model || [[BaSyx.Examples.Snippets.AASSMConnection.Java | (Java)]] || Illustrate connection to AAS with SDK connector || source
+
| Dynamic sub model deployment (HTTP) || || Illustrate dynamic sub model creation and deployment on BaSyx sub model server ||
 +
[https://git.eclipse.org/r/plugins/gitiles/basyx/basyx/+/master/examples/basys.examples/examples/org/eclipse/basyx/examples/snippets/aas/submodels/DynamicSubModelDeploymentHTTP.java Java]
 
|-
 
|-
| Connect to AAS sub model via VAB || [[BaSyx.Examples.Snippets.VABAASConnection.Java | (Java)]] || Illustrate connection to AAS using low-level virtual automation bus (VAB) primitives || source
+
| Connect to AAS sub model via SDK || [[BaSyx.Examples.Snippets.AASSMConnection.Java | (Java)]] || Illustrate connection to AAS sub model using SDK connector || [https://git.eclipse.org/r/plugins/gitiles/basyx/basyx/+/master/examples/basys.examples/examples/org/eclipse/basyx/examples/snippets/aas/submodels/ConnectToAASSubModelsSDK.java Java]
 
|-
 
|-
| Connect to AAS sub model via HTTP REST || || Illustrate connection to AAS sub model using HTTP REST calls || source
+
| Connect to AAS sub model via VAB || [[BaSyx.Examples.Snippets.VABAASConnection.Java | (Java)]] || Illustrate connection to AAS using low-level virtual automation bus (VAB) primitives ||
 +
[https://git.eclipse.org/r/plugins/gitiles/basyx/basyx/+/master/examples/basys.examples/examples/org/eclipse/basyx/examples/snippets/aas/submodels/ConnectToAASSubModelsVAB.java Java]
 
|}
 
|}
  
Line 115: Line 126:
 
| style="width:20em" | ''Snippet'' || style="width:20em" | ''Additional Documentation'' ||style="width:45em" | ''Description'' || style="width:20em" | ''Source''
 
| style="width:20em" | ''Snippet'' || style="width:20em" | ''Additional Documentation'' ||style="width:45em" | ''Description'' || style="width:20em" | ''Source''
 
|-
 
|-
| Dynamic property (Lambda)  ||  || Illustrate dynamic sub model properties (Lambda expression) || source
+
| Dynamic property (Lambda)  ||  || Illustrate dynamic sub model properties (Lambda expression) || N/A
 
|-
 
|-
| Dynamic property (Class) ||  || Illustrate the dynamic sub model properties (Class) || source
+
| Dynamic property (Class) ||  || Illustrate the dynamic sub model properties (Class) || N/A
 
|}
 
|}
  
Line 129: Line 140:
 
| style="width:20em" | ''Snippet'' || style="width:20em" | ''Additional Documentation'' ||style="width:45em" | ''Description'' || style="width:20em" | ''Source''
 
| style="width:20em" | ''Snippet'' || style="width:20em" | ''Additional Documentation'' ||style="width:45em" | ''Description'' || style="width:20em" | ''Source''
 
|-
 
|-
| Register and lookup AAS ||  || Register and retrieve AAS descriptors from registry || source
+
| Register and lookup AAS ||  || Register and retrieve AAS descriptors from registry || [https://git.eclipse.org/r/plugins/gitiles/basyx/basyx/+/master/examples/basys.examples/examples/org/eclipse/basyx/examples/snippets/aas/registry/RegisterRetrieveAASEndpoints.java Java]
 
|-
 
|-
| Register AAS descriptor  ||  || Register an AAS descriptor in AAS registry, lookup AAS by ID, and connect to AAS || source
+
| Register AAS descriptor  ||  || Register an AAS descriptor in AAS registry, lookup AAS by ID, and connect to AAS || [https://git.eclipse.org/r/plugins/gitiles/basyx/basyx/+/master/examples/basys.examples/examples/org/eclipse/basyx/examples/snippets/aas/registry/ConnectToAASEndpoints.java Java]
 
|-
 
|-
| Register AAS sub models ||  || Register an AAS descriptor with sub models, lookup and connect to AAS sub models || source
+
| Register AAS sub models ||  || Register an AAS descriptor with sub models, lookup and connect to AAS sub models || [https://git.eclipse.org/r/plugins/gitiles/basyx/basyx/+/master/examples/basys.examples/examples/org/eclipse/basyx/examples/snippets/aas/registry/ConnectToSubModelEndpoints.java Java]
 
|}
 
|}
  

Revision as of 08:01, 24 June 2019

The following BaSys 4.0 scenarios document application scenarios and functional examples of the Eclipse BaSyx middleware. Application scenarios illustrate how common Industrie 4.0 challanges are addressed with Eclipse BaSyx. They describe architecture concepts and implement running example scenarios that illustrate the implementation of Industrie 4.0 components and inter-component interactions. Functional examples provide a focused documentation to developers that explain one function of eclipse BaSyx. They provide concrete recepies that illustrate the use and the application of Eclipse BaSyx components.


BaSyx HowTo

Howto: Asset Administration Shells


Application scenarios

under construction


Code snippets

Code snippets are simple, isolated use-cases that illustrate the use of Eclipse BaSyx. They provide focused recipes that document the intended use of the BaSyx SDK and our reference implementations of Industrie 4.0 middleware components. To keep functional examples simple, code snippets only address selected aspects of Industrie 4.0 implementations. Selected snippets provide a page with documentation. For all snippets, links to executable source code files in the git repository are provided. The source code may contain required drivers and stubs for running the code, as well as testing routines that validate the results of the execution.

Please keep in mind that not all features are available with all language versions of Eclipse BaSyx. Snippets therefore may only be available for selected languages.

The code for the snippets is available via the Eclipse BaSyx GIT repository:

  • For Java, the code is located in the basyx.example project in package org.eclipse.basyx.examples.snippets



Virtual Automation Bus (VAB)

The Virtual Automation Bus provides end-to-end connection capabilities. The VAB uses gateways to connect network technologies into one virtual, and fully connected network. The network consists of objects, e.g. Asset Administration Shells and sub models that are accessible through unqiue IDs. The following code snippets illustrate VAB operations and the use of the Virtual Automation Bus.

Snippet Additional Documentation Description Source
CRUD operations Illustrate creation of VAB object and use of create/update/retrieve/delete operations to manipulate it. Java
Manual HTTP calls Illustrate manual HTTP operations to access VAB objects via HTTP REST interface Java
Dynamic property (Lambda) Illustrate dynamic properties (Lambda expression) in VAB objects. Java
Dynamic property (Class) Illustrate the dynamic properties (Class) in VAB objects.

Java


Asset Administration Shell (AAS)

The Asset Administration Shell snippets illustrate the creation of Asset Administration Shells using tools of the BaSyx SDKs.

Snippet Additional Documentation Description Source
Create AAS (Java) Creation of Asset Administration Shell by extending SDK class Java
Create AAS on the fly Creation of Asset Administration Shell by setting properties of predefined AAS class Java


Asset Administration Shell HTTP server deployment

These code snippets illustrate Asset Administration Shells in context of HTTP servers. It is common to deploy an Asset Administration Shell to the IT to ensure its presence when a device fails. HTTP servers are a viable host for Asset Administration Shells. The following code snippets illustrate the dynamic creation of an Asset Administratuion Shell, its transfer, and its use from Industrie 4.0 applications.

Snippet Additional Documentation Description Source
Connect to remote AAS (Java) Illustrate connection to Asset Administration Shell with SDK connector Java


Asset Administration Shell deployment on Device

Instead of an HTTP server, Asset Administration Shells may be deployed to devices that run their own servers to enable access to an AAS. The following code snippets illustrate SDK features to host Asset Administration Shells and sub models on devices.

Snippet Additional Documentation Description Source
Device AAS deployment Dynamic Asset Administration Shell deployment with BaSyx/TCP

Java

Device AAS deployment (VAB) Dynamic Asset Administration Shell deployment with BaSyx/TCP using low-level VAB access Java
Device sub model deployment Dynamic deployment of sub model on Device using a BaSyx/TCP protocol server Java
Device sub model deployment (VAB) Dynamic deployment of sub model on Device using a BaSyx/TCP protocol server (VAB access) Java


AAS Sub models

Asset Administration Shell sub models may be distributed through the network. While an AAS resides on the IT and remains accessible in case of device failures, sub models may be distributed. Sub models containing static data or information about devices that needs to remain available in case of device failure may be hosted on the IT as well; sub models containing live data may be hosted on devices, and possibly on products. The following code snippets illustrate the creation, transfer, hosting, and use of AAS sub models.

Snippet Additional Documentation Description Source
Create AAS sub model (SDK) (Java) Illustrate creation of AAS sub model with SDK factory Java
Create AAS sub model (VAB) (Java) Illustrate creation of AAS sub model with VAB primitives Java
Dynamic sub model deployment (SDK) Illustrate dynamic sub model creation and deployment on BaSyx sub model server

Java

Dynamic sub model deployment (HTTP) Illustrate dynamic sub model creation and deployment on BaSyx sub model server

Java

Connect to AAS sub model via SDK (Java) Illustrate connection to AAS sub model using SDK connector Java
Connect to AAS sub model via VAB (Java) Illustrate connection to AAS using low-level virtual automation bus (VAB) primitives

Java


AAS Sub model providers

Eclipse BaSyx provides pre-created AAS sub model providers. These servlets connect existing data sources, such as textual configuration files and SQL data bases into Industrie 4.0 environments as AAS sub models. BaSyx sub model providers are configured with a configuration API and do not require programming knowledge to integrate data sources into Industrie 4.0 environments as AAS sub models.


AAS Sub models (Dynamic)

Asset Administration Shell sub models may contain dynamic properties and operations. Dynamic properties are properties whose values are generated dynamically at runtime. This may happen for example periodically, or whenever a specific information is requested. Dynamic operations are operations that may be updated at runtime. The following code snippets illustrate dynamic sub model properties and operations.

Snippet Additional Documentation Description Source
Dynamic property (Lambda) Illustrate dynamic sub model properties (Lambda expression) N/A
Dynamic property (Class) Illustrate the dynamic sub model properties (Class) N/A


Registry

The Asset Administration Shell registry enables registration of AAS and sub models, as well as retrieving previously registered AAS and sub models by their IDs.

Snippet Additional Documentation Description Source
Register and lookup AAS Register and retrieve AAS descriptors from registry Java
Register AAS descriptor Register an AAS descriptor in AAS registry, lookup AAS by ID, and connect to AAS Java
Register AAS sub models Register an AAS descriptor with sub models, lookup and connect to AAS sub models Java


URN

Eclipse BaSyx advocates the use of URNs as unique identifiers for AAS. Code snippets illustrate the creation and use of URNs.

Snippet Additional Documentation Description Source
Construct URNs Create URNs for AAS and globally idenfied sub models Java




BaSyx project links: Project BaSyx main wiki page | What is BaSyx? | BaSyx Developer Documentation

Back to the top