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 / Documentation
The Eclipse BaSyx Middleware
The BaSyx middleware groups Industrie 4.0 components around an end-to-end communication medium, the virtual automation bus (VAB). The VAB implements an object oriented communication approach that exports all information and services as objects with a unique identifier that are connected to one virtual and homogeneous communication network, even if it is realized by multiple physical networks. The VAB therefore defines five virtual communication primitives that are mapped to concrete physical networks. VAB primitives provide a unified way to access properties and operations of VAB objects in a network and machine independent manner. VAB gateways realize inter-network communication by mapping the communication primitives to network specific telegrams, and this way enable end-to-end communication. Gateways furthermore may be used to integrate legacy devices by implementing a VAB interface for them.
The graphic below illustrates an architecture overview of the BaSyx middleware and its various components:
BaSys 4.0 compliant systems consist of the following core and optionally extended components:
|Plattform Industrie 4.0 compliant components|
|Asset Administration Shell|| An Asset Administration Shell is a "standardized digital representation of the asset, corner stone of the interoperability between the applications managing the manufacturing systems. It identifies the Administration Shell and the assets represented by it, holds digital models of various aspects (submodels) and describes technical functionality exposed by the Administration Shell or respective
assets." (Details of the Asset Administration Shell, 2018, p. 13, )
|Asset Administration Shell Submodels||"A Submodel defines a specific aspect of the asset represented by the Asset Administration Shell. A Submodel is used to structure the virtual representation and technical functionality of an Administration Shell into distinguishable parts. Each Submodel refers to a well-defined domain or subject matter. Submodels can become standardized and thus become submodels types. Submodels can have different life-cycles." (Details of the Asset Administration Shell, 2018, p. 46, )||Core|
|Registry||The BaSys 4.0 Registry enables registration and lookup of Asset Administration Shells within defined system boundaries. Entities that provide Asset Administration Shells including their submodels may register and hence enable other participants to find them. The necessary information required for registration amongst others are unique identifiers for the Administration Shell and her respective Asset, endpoint information regarding the Asset Administration Shell's API and their submodel service provider.||Core|
|Discovery||The BaSys 4.0 Discovery is a service that uses the registry to find Asset Administration Shells and Submodels. It provides additional functionalities to discover Asset Administration Shells and their Submodels based on filter criteria. These criteria are more advanced than a regular query parameter. The discovery service may provide indexing and/or crawling mechanisms to cache results from queried elements resp. find deeper information when searching.||Core|
|Control component||Control components realize BaSys 4.0 conforming service based Industrie 4.0 interfaces to assets. Assets may be devices, e.g. PLC controllers, sensors, actuators, but can represent any asset that realizes services or provide information, which also includes for example human workers. Control components provide a service based interface with callable services that e.g. drill a hole into a work piece. They define how a specific service is implemented, but do not decide about the orchestration of services, i.e. a control component does not decide when and if a particular service is called.||Core|
|Group component||Group components implement higher-level services that use services of other control and group components. Similar to control components, group component services provide the implementation of services but do not decide about when and why a provided service is invoked. Service callers are other components that orchestrate services.||Core|
|Virtual Automation Bus||The virtual automation bus (VAB) is our implementation of an end-to-end communication for Industrie 4.0. It maps one communication semantic with five primitives (create/retrieve/update/delete/invoke) to different networks and protocols. This way, the VAB can bridge networks via gateways, and can also integrate legacy devices into the virtual end-to-end communication network.||Core|
|Device integration||Device integration components are VAB components that are part of devices and communicate with the VAB. Device manager components for example connect native status data to VAB objects and upload Asset Administration Shells (AAS) and Sub Models of their device to AAS servers.||Extended|
|Gateway||Virtual Automation Bus protocol gateways bridges communication networks to enable inter-network communication. Every gateway needs to provide a mapping of all of the five BaSys communication primitives to its supported protocols to enable end-to-end communication. Gateways can be cascaded to bridge multiple networks.||Extended|
|Strategy / Optimization||The Strategy/Optimization component calculates production plans and production schedules that define when, and on which machine a production step for a specific product will be executed. This component is usually a domain or plant specific application component. Strategy, optimization and monitoring components are highly plant specific. These components use provided interfaces of other BaSys 4.0 components, but are not required to provide defined BaSys 4.0 interfaces.||Extended|
|Process control||The process control component executes the production plans that the Strategy/Optimization component did create. Eclipse BaSyx will integrate for example the open source Activiti BPMN engine as process control engine.||Extended|
|Monitoring||The monitoring component enables the monitoring of the production process. It for example collects and aggregates data for analysis or pushes selected and aggregated data to a dashboard.||Extended|
In addition to these components, BaSyx users may add other application specific components that connect to the network via an exposed endpoint depending on the communication technology (HTTP, OPC UA, BaSyx native) used.
BaSyx Identification Naming Convention
BaSys provides a unified way to identify types and instances regardless whether it is an information model (Submodel, Concept Description, Data Element, etc.) or an asset type resp. asset instance. These identifiers can be used as unique identifier for Asset Administation Shells and Assets as well as for semantic references within the meta-model elements of the Asset Administration Shell:
BaSyx defines interfaces for all components contained in the architecture overview above. Interfaces are well-defined descriptions of the interaction pattern (contract) and the necessary information models (payload) for the interaction between communication participants. All BaSyx components define at least an HTTP/REST interface on middle-ware and application level. On field device level, OPC UA as well as native BaSyx/TCP are applicable for component interfaces.
Compliant implementations of BaSyx components need to implement at least the interfaces depicted in the following table. BaSyx provides reference implementations for core components that are necessary to create and deploy an Industrie 4.0 solution.
|Component||Provided Interfaces||Available Technologies|
|Control component||BaSyx control component API||OPC-UA, BaSyx native|
|Group component||BaSyx control component API||OPC-UA, BaSyx native|
|Gateway||Gateway||Any to any|
|Asset Administration Shell||BaSyx Asset Administration Shell Service Provider API||HTTP-REST|
|Asset Administration Shell Submodels||BaSyx Submodel Service Provider API||HTTP-REST|
|Registry||BaSyx Registry API||HTTP-REST|
|Strategy / Optimization||---||HTTP-REST|
|Process Control||Process management, Process execution||HTTP-REST|
Eclipse BaSyx implements the following ready-to-use components:
Asset Administration Shell & Submodel Providers
Asset Administration Shell and Submodel providers provide generic Virtual Automation Bus objects, Asset Administration Shells, and/or Submodels with a defined ID on the network.
- CFG Submodel provider
- RAW AAS/Submodel provider
- SQL Submodel provider
- XQuery Submodel provider
- under construction: XML AAS/Submodel provider
Ready-to-use reference implementations of the BaSyx Registry API enable Industrie 4.0 components to register their Asset Administration Shells resp. users/applications to find those in a BaSyx compliant manner.
- Pre-compiled Registry (Local, Cloud & On-Premises via Docker)
- Simple File-based Registry (Local & Docker)
- SQL-based Dynamic Registry
Virtual Automation Bus Providers
Low-level providers provide generic Virtual Automation Bus objects and do not make an assumption on the structure. Thus, all types of objects can be offered by such a provider.
Control Component Templates
BaSyx SDK Architecture
The documentation of the BaSyx SDK architecture is provided on its own documentation page.