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 / Documentation / ControlComponentProfiles"

m (Renamed profile categories to facet categories for a better understanding and consitency. (profile category is used in OPC UA Part 7))
(Profile Meta Model: Adapted interface specification to VAB.)
Line 29: Line 29:
 
== Profile Meta Model ==
 
== Profile Meta Model ==
 
<!--[[File:BaSyx-ControlComponentProfiles-profile-meta-model-example.png|thumb|Example of a modelled interface in the profile meta model editor.]]-->
 
<!--[[File:BaSyx-ControlComponentProfiles-profile-meta-model-example.png|thumb|Example of a modelled interface in the profile meta model editor.]]-->
<!--TODO adapt terms to facet -->
 
 
<!--TODO maybe add the meta model as class model itself -->
 
<!--TODO maybe add the meta model as class model itself -->
 
<!--TODO add the profiles part of the metamodel -->
 
<!--TODO add the profiles part of the metamodel -->
Line 37: Line 36:
  
 
A '''profile''' is a composition of '''facets''' describing the features or requirements of a control component.
 
A '''profile''' is a composition of '''facets''' describing the features or requirements of a control component.
Each facet has a name and a numeric or bit value, like in an enumeration, related to the facet category.
+
Each facet has a name and a numeric or bit value, like in an enumeration, which is related to the facet category.
 
A '''facet category''' describes a specific aspect of the control component interface by grouping multiple facets.
 
A '''facet category''' describes a specific aspect of the control component interface by grouping multiple facets.
 
Usually a profile determines at least one facet for each facet category.
 
Usually a profile determines at least one facet for each facet category.
 
Therefore the term profile is used synonymous to '''full featured profiles'''<ref name="OPCUA-Part7"/> here.
 
Therefore the term profile is used synonymous to '''full featured profiles'''<ref name="OPCUA-Part7"/> here.
  
=== Interface Model ===
+
=== Interface Specification ===
  
Besides the facet and profile definition, the meta model is used to model the control component interface depending on the facets.
+
Besides the facet and profile definition, the meta model is used to model the control components interface depending on the facets.
This interface model can be converted to an OPC UA companion specificiation, an active AAS submodel or other information model technology standards.
+
This interface model may be converted to an OPC UA companion specificiation, an active AAS submodel or other information model technology standards.
Therefore the meta model is based on elements (nodes, ressources, etc.).
+
The interface specification is based on the [[BaSyx_/_Documentation_/_VAB|BaSyx VAB]], in order to describe the interface in a technology independent manner.
These elements have a name (browsename, path, ressource identifier, etc.) and may contain facet requirements.
+
Moreover, it is an important base to define conformance test units and derive test cases for automated compliance test.
A facet requirement names a facet and states whether it is optional or mandatory.
+
Node sets, variables and methods are specialized elements:
+
* Node sets may contain other elements.
+
* A variable has a type of boolean, integer or string (or arrays of these types) and a flag if it is writeable.
+
* Methods may contain specialised variables called input or output parameter.
+
  
This simple meta model is sufficient to define the syntax and interfaces for all control component facets.
+
A BaSyx interface specification for control componentes is structured as follows.
It is an important base to define conformance test units and derive test cases for automated compliance test.
+
The main definition is a [[BaSyx_/_Documentation_/_VAB#VAB_elements|VAB element]] hierarchy starting at the control component realization as root VAB element.
It may easily be transfered to different information model technologies or communication protocols like OPC UA, REST, BaSyx VAB, etc.
+
This root element can be mapped to a specific control component instance by its elementId (e.g. URI or OPC UA node id).
An example of the modeled interface is shown in the [[:File:BaSyx-ControlComponentProfiles-profile-meta-model-example.png|figure]].
+
Each element in the hierarchy needs to be specified by:
 +
* the name: browsename, path segment, ressource identifier, etc. depending on the technology.
 +
* the element type: a property, property group or operation
 +
* the modelling rule: mandatory or optional
 +
* optionally the requirement in a specific facet can be noted
 +
* Properties may be further specified by
 +
** the datatype of VAB element based on the [[BaSyx_/_Documentation_/_VAB#Virtual_Automation_Bus_type_system|VAB type system]] and allowed values
 +
** the writeability of the property value (defaults to read only, if not specified)
 +
* Operations may be further specified by their input and output arguments via name and [[BaSyx_/_Documentation_/_VAB#Virtual_Automation_Bus_type_system|VAB data type]]
 +
 
 +
Hence, a simple and not normative example for an interface descpription may look like:
 +
* VABElement: <ControlComponent>
 +
** Group: STATUS, mandatory
 +
*** Property: EXST, String(EXECUTE|IDLE|...), mandatory, ES facet group > 1
 +
*** Property: OCCUPIER, String, mandatory, OC facet group > 1
 +
** Group: OPERATIONS, mandatory, SI facet 4:OPERATIONS
 +
*** Operation: START(), mandatory, ES facet group > 1
 +
*** Operation: HOLD(), optional, ES facet 2:BASYS
 +
*** Operation: HOLD(), mandatory, ES facet 4:PACKML
 +
An example for the minimum interface specification for basyx control components can be found in the [[BaSyx_/_Documentation_/_API_/_ControlComponent#Virtual_Automation_Bus_.28VAB.29_implementation|control component documentation]].
 +
<!--TODO discuss and update control component documentation-->
 +
 
 +
All interface specifications belong to the same namespace.
 +
As control components may offer multiple facets combined in one interface, the name of each element in the hierarchy has to be non overlapping.
 +
<!--TODO update profile editor and create example figure-->
  
 
== References ==
 
== References ==

Revision as of 08:39, 12 March 2020

Warning2.png
This information is work in progress as part of the BaSys 4.2 project. This section is preliminary and subject to change during the project.


Overview | Interface | Implementation

The abstract concept of control components and their state machines may be realised in technology specific ways or focuss on certain aspects. For example an occupation might not be necessary or a differentexecution state machine may be satisfying. Especially domain, task or company specific constraints need to be applied in brownfield scenarios. In order to describe basys control components in a standardized manner and to ensure the compliance of basys labled control components, possible realisations are described in facets and clustered in facet categories. These profiles or facets may be used for the typification und type description of control components. Furthermore, they can be used to define requirements of a component system or its orchestration environment.

One goal of BaSys 4.2 is to enable plug and produce scenarios via standardized procedures. Considering that, the requirements of heterogenous industrial production systems and the offered features of various control components needs to be described and matched. In order to support this matching in an automated manner a limitation to and standardization of usefull profiles is necessary. Combinations of commonly used facets will be used to define full featured profiles for easier commponent development and usage. Finally adapters may be generated to integrate components of different profiles.

In conclusion control component profiles describe which design patterns are used for a control component or its type in a standardized manner. Hence they are linked to the basys design patterns which rely on the control comopnent state machines. The goal is to reference existing standards and to build a bridge between component developers and their users. In the context of I4.0 it is recommended to use the control component submodel in the asset administrator shell (AAS) to describe required or assured profiles of a control component.

Profile Meta Model

In order to be technology agnostic the profile definition should rely on abstract concepts. Therefore a minimalistic meta model for control component profiles is defined here. The profile concept and terms are inspired by OPC UA Part 7[1].

A profile is a composition of facets describing the features or requirements of a control component. Each facet has a name and a numeric or bit value, like in an enumeration, which is related to the facet category. A facet category describes a specific aspect of the control component interface by grouping multiple facets. Usually a profile determines at least one facet for each facet category. Therefore the term profile is used synonymous to full featured profiles[1] here.

Interface Specification

Besides the facet and profile definition, the meta model is used to model the control components interface depending on the facets. This interface model may be converted to an OPC UA companion specificiation, an active AAS submodel or other information model technology standards. The interface specification is based on the BaSyx VAB, in order to describe the interface in a technology independent manner. Moreover, it is an important base to define conformance test units and derive test cases for automated compliance test.

A BaSyx interface specification for control componentes is structured as follows. The main definition is a VAB element hierarchy starting at the control component realization as root VAB element. This root element can be mapped to a specific control component instance by its elementId (e.g. URI or OPC UA node id). Each element in the hierarchy needs to be specified by:

  • the name: browsename, path segment, ressource identifier, etc. depending on the technology.
  • the element type: a property, property group or operation
  • the modelling rule: mandatory or optional
  • optionally the requirement in a specific facet can be noted
  • Properties may be further specified by
    • the datatype of VAB element based on the VAB type system and allowed values
    • the writeability of the property value (defaults to read only, if not specified)
  • Operations may be further specified by their input and output arguments via name and VAB data type

Hence, a simple and not normative example for an interface descpription may look like:

  • VABElement: <ControlComponent>
    • Group: STATUS, mandatory
      • Property: EXST, String(EXECUTE|IDLE|...), mandatory, ES facet group > 1
      • Property: OCCUPIER, String, mandatory, OC facet group > 1
    • Group: OPERATIONS, mandatory, SI facet 4:OPERATIONS
      • Operation: START(), mandatory, ES facet group > 1
      • Operation: HOLD(), optional, ES facet 2:BASYS
      • Operation: HOLD(), mandatory, ES facet 4:PACKML

An example for the minimum interface specification for basyx control components can be found in the control component documentation.

All interface specifications belong to the same namespace. As control components may offer multiple facets combined in one interface, the name of each element in the hierarchy has to be non overlapping.

References

  1. 1.0 1.1 IEC 62541 Part 7 – OPC UA Profiles
BaSyx project links: Project BaSyx main wiki page | What is BaSyx? | BaSyx Developer Documentation

Back to the top