Skip to main content
Jump to: navigation, search

Difference between revisions of "BaSyx / Documentation / API / ControlComponentProfiles"

(Adapted terms to OPC UA profiles after discussion with BaSys4.2 partners. Facets parts still need to be converted.)
(Using the term "facet categories". Added explanation of future work for profiles)
Line 12: Line 12:
  
 
[[File:BaSyx-ControlComponent-Example-OPCUA-SI5-OC4-EM3-ES3-OM4.png|thumb|An example control component in OPC UA realizing different facets.]]
 
[[File:BaSyx-ControlComponent-Example-OPCUA-SI5-OC4-EM3-ES3-OM4.png|thumb|An example control component in OPC UA realizing different facets.]]
 +
<!-- TODO add more examples -->
 +
<!-- TODO maybe move examples to "Implementation" page? -->
 +
A profile is a composition of facets from different facet categories.
 
For example a control component profile can be defined by the following facets.
 
For example a control component profile can be defined by the following facets.
 
* SI = 4 (OPERATIONS)
 
* SI = 4 (OPERATIONS)
Line 19: Line 22:
 
* OM = 2 (MULTI)
 
* OM = 2 (MULTI)
 
The address space of a control component in OPC UA conforming to this profile is shown in the [[:File:BaSyx-ControlComponent-Example-OPCUA-SI5-OC4-EM3-ES3-OM4.png|figure]].
 
The address space of a control component in OPC UA conforming to this profile is shown in the [[:File:BaSyx-ControlComponent-Example-OPCUA-SI5-OC4-EM3-ES3-OM4.png|figure]].
<!-- TODO add more examples -->
 
<!-- TODO maybe move examples to "Implementation" page? -->
 
  
=== Profile Categories ===
+
Facets ordered in different facet categories may describe a huge variety of control component realizations.
 +
Consequently, profiles are needed to reduce the amount of facet combinations to a usefull subset.
 +
The profiles are not defined right now, as this is part of the ongoing BaSys 4.2 project.
 +
<!-- BaSys 4.2 D-4.4 Integrationsvarianten -->
 +
Every profile will refer to at least one facet from every facet category and will therefore be considered as full featured profile.
 +
At first some important profiles may be defined in the future:
 +
* BaSys4.0 - Control components as used in the BaSys 4.0 project
 +
* BaSys4.2 - Control components conform to the BaSys 4.2 project
 +
* MTP - Control components that are NAMUR MTP conform
 +
* PACKML - Control components that are conform to PackML
 +
<!-- TODO Add EMF metamodell of tests
 +
=== Profile Compliance Testing ===
 +
Describe test setup and terms (test cases, fixtures, suites, environment)
 +
-->
 +
 
 +
== Facet Categories ==
  
BaSys control components may be described by the following profile categorys:
+
BaSys control components may be described by the following facet categorys:
;SI - [[#SI Facets|Service Interface Profile Category]]
+
;SI - [[#SI Facets|Service Interface Facet Category]]
 
: Describes how the offered [[BaSyx_/_Documentation_/_API_/_ControlComponent#Control component interface|services]] are structured and how states are represented.
 
: Describes how the offered [[BaSyx_/_Documentation_/_API_/_ControlComponent#Control component interface|services]] are structured and how states are represented.
: This profile category is special, because it is orthogonal to the other profile categories. Hence, a control component interface looks a bit different, if different facets from the other profile categories are realised.
+
: This facet category is special, because it is orthogonal to the other facet categories. Hence, a control component interface looks a bit different, if different facets from the other facet categories are realised.
;OC - [[#OC Facets|Occupation Profile Category]]
+
;OC - [[#OC Facets|Occupation Facet Category]]
 
: Describes whether a [[BaSyx_/_Documentation_/_API_/_ControlComponent#Occupation state machine|occuption]] is necessary.
 
: Describes whether a [[BaSyx_/_Documentation_/_API_/_ControlComponent#Occupation state machine|occuption]] is necessary.
 
: Variants may describe whether a occupation with priority or local is possible.
 
: Variants may describe whether a occupation with priority or local is possible.
;EM - [[#EM Facets|Execution Modes Profile Category]]
+
;EM - [[#EM Facets|Execution Modes Facet Category]]
 
: Describes whether different [[BaSyx_/_Documentation_/_API_/_ControlComponent#Execution mode state machine|execution modes]] are possible.
 
: Describes whether different [[BaSyx_/_Documentation_/_API_/_ControlComponent#Execution mode state machine|execution modes]] are possible.
 
: Variants may describe which modes are possible and how they are called.
 
: Variants may describe which modes are possible and how they are called.
;ES - [[#ES Facets|Execution States Profile Category]]
+
;ES - [[#ES Facets|Execution States Facet Category]]
 
: References the used [[BaSyx_/_Documentation_/_API_/_ControlComponent#Execution state state machine|execution states]] and their transitions.
 
: References the used [[BaSyx_/_Documentation_/_API_/_ControlComponent#Execution state state machine|execution states]] and their transitions.
 
: May describe variants or subsets of a full execution state state machines.
 
: May describe variants or subsets of a full execution state state machines.
;OM - [[#OM Facets|Operation Modes Profile Category]]
+
;OM - [[#OM Facets|Operation Modes Facet Category]]
 
: Describes whether multiple [[BaSyx_/_Documentation_/_API_/_ControlComponent#Operation mode state machine|operation modes]] are available and need to be selcted.
 
: Describes whether multiple [[BaSyx_/_Documentation_/_API_/_ControlComponent#Operation mode state machine|operation modes]] are available and need to be selcted.
 
: Variants may describe whether there are specific operation modes, like fallback or startup and shutdown modes.
 
: Variants may describe whether there are specific operation modes, like fallback or startup and shutdown modes.
  
=== Profile Category Values ===
+
=== Facet Category Values ===
  
 
All facets have a name and are identfied with an positiv integer or zero.
 
All facets have a name and are identfied with an positiv integer or zero.
In order to combine profile category values and to use them as statements some common values are equal for all profiles, which is presented in the following table.
+
In order to combine facet category values and to use them as statements some common values are equal for all profiles, which is presented in the following table.
 
As different profile values in one facet may be combined they are defined by bitmasks.
 
As different profile values in one facet may be combined they are defined by bitmasks.
 
Hence their values are multiples of two and combinations may be represented by bit order operations and integer values.
 
Hence their values are multiples of two and combinations may be represented by bit order operations and integer values.
If a profile category value is higher than one any facet is defined for a profile category.
+
If a facet category value is higher than one any facet is defined for a facet category.
 
{| class="wikitable"
 
{| class="wikitable"
 
!Bit !! Value !! Name !! Description
 
!Bit !! Value !! Name !! Description
Line 53: Line 69:
 
| 1    || 0  || UNKNOWN || No statement about profile or not determined
 
| 1    || 0  || UNKNOWN || No statement about profile or not determined
 
|-
 
|-
| 1    || 1  || NONE    || Profile category is not realised, used, compliant or implemented
+
| 1    || 1  || NONE    || Facet category is not realised, used, compliant or implemented
 
|-
 
|-
| 2..n || >1 || ANY    || One ore more profile category values, but not specified which ones
+
| 2..n || >1 || ANY    || One ore more facet category values, but not specified which ones
 
|-
 
|-
| 2    || 2  || ...    || First specific facet of the profile category.
+
| 2    || 2  || ...    || First specific facet of the facet category.
 
|-
 
|-
| n    || 2^n|| ...    || Nth specific facet of the profile category.
+
| n    || 2^n|| ...    || Nth specific facet of the facet category.
 
|-
 
|-
 
|}
 
|}
 
<!-- TODO define a way how profile values can be concenated. -->
 
<!-- TODO define a way how profile values can be concenated. -->
 +
 +
== Facets ==
  
 
=== SI Facets ===
 
=== SI Facets ===
Line 68: Line 86:
  
 
The [[BaSyx_/_Documentation_/_API_/_ControlComponent#Control component interface|control component service interface]] '''E1''' may be realised in various ways.
 
The [[BaSyx_/_Documentation_/_API_/_ControlComponent#Control component interface|control component service interface]] '''E1''' may be realised in various ways.
Basys classifies different realisations via profiles.
+
Basys classifies different realisations via facets from the SI facet category.
The service interface profile ('''SI''') describes how a control component can be affected by the means of orchestration and how the resulting state changes may be observed.
+
The service interface category ('''SI''') describes how a control component can be affected by the means of orchestration and how the resulting state changes may be observed.
Therefore each profile value defines how the activation interaction likewise the writing of variables or invocation of operations is handled.
+
Therefore each facet defines how the activation interaction likewise the writing of variables or invocation of operations is handled.
 
Moreover, a component has aggregated state values for its [[BaSyx_/_Documentation_/_API_/_ControlComponent#Control component state machines|state machines]], which may be represented by one or more variables at different adresses.
 
Moreover, a component has aggregated state values for its [[BaSyx_/_Documentation_/_API_/_ControlComponent#Control component state machines|state machines]], which may be represented by one or more variables at different adresses.
 
State change events may be raised if state variable values change.
 
State change events may be raised if state variable values change.
Consequently, the SI profile also defines how to find the addresses or endpoints of its activation and reaction represenations.
+
Consequently, the SI facets also define how to find the addresses or endpoints of its activation and reaction represenations.
  
The following table presents an overview and small comparision of possible SI profile values.
+
The following table presents an overview and small comparision of possible SI facets.
The major profile of the service interface used in basys is ''OPERATIONS''.
+
The major facet for the service interface used in basys is ''OPERATIONS''.
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 90: Line 108:
 
| Not defined
 
| Not defined
 
| Not defined
 
| Not defined
| See [[#Profile Values|common profile values]]
+
| See [[#Facet Category Values|category values]]
 
|-
 
|-
 
| 2|| 2
 
| 2|| 2
Line 116: Line 134:
 
| Very generic but needs mapping description. Not standardized browseable. May be mapped to NAMUR MTP
 
| Very generic but needs mapping description. Not standardized browseable. May be mapped to NAMUR MTP
 
|}
 
|}
Note on ''NAMUR Module Type Package (MTP)'': in the future, basys will map the description for the orchestration of modules that are described via a NAMUR MTP to profiles.
+
Note on ''NAMUR Module Type Package (MTP)'': in the future, basys will map the description for the orchestration of modules that are described via a NAMUR MTP to facets or even to a profile.
Therefore an existing profile value like VARIABLES may be used or a new profile value may be necessary.
+
Therefore an existing facets like VARIABLES may be used or a new facet may be necessary.
<!-- TODO Describe (important) profiles values in detail:
+
<!-- TODO Describe (important) facets in detail:
 
==== SI Facet CMD ====
 
==== SI Facet CMD ====
  
Line 129: Line 147:
 
=== OC Facets ===
 
=== OC Facets ===
  
The occupation profile describes, whether a control component can be occupied.
+
The occupation facet category describes, whether a control component can be occupied.
 
This is important for an orchestrator, as it has to be checked, whether the component is free and it has to be occupied before operation.  
 
This is important for an orchestrator, as it has to be checked, whether the component is free and it has to be occupied before operation.  
Further more, the occupation profile determins, whether it is possible to occupy the component with a higher priority, for example by an operator or maintenance person.
+
Further more, the occupation facets determine, whether it is possible to occupy the component with a higher priority, for example by an operator or maintenance person.
An OC profile value of two or higher (ANY) requries the component to have an OCCUPIER variable to determine who occupies the component.
+
An OC value of two or higher (ANY) requries the component to have an OCCUPIER variable to determine who occupies the component.
 
Moreover, the OCCST variable is needed to differentiate occupation states.
 
Moreover, the OCCST variable is needed to differentiate occupation states.
  
Line 138: Line 156:
 
! Bit !! Value !! Name !! Description !! Possible OCCST values !! Possible ORDERs
 
! Bit !! Value !! Name !! Description !! Possible OCCST values !! Possible ORDERs
 
|-
 
|-
| -|| 0|| UNKNOWN || See [[#Profile Values|common profile values]] || Undefined || Undefined
+
| -|| 0|| UNKNOWN || See [[#Facet Category Values|category values]] || Undefined || Undefined
 
|-
 
|-
 
| 1|| 1|| NONE || No occupation necessary || - || -
 
| 1|| 1|| NONE || No occupation necessary || - || -
Line 152: Line 170:
 
=== EM Facets ===
 
=== EM Facets ===
  
The execution mode profile describes which execution modes are available.
+
The execution mode facet category describes which execution modes are available.
 
A component is assumed to be in AUTO like mode at all time, if the ES value is NONE.
 
A component is assumed to be in AUTO like mode at all time, if the ES value is NONE.
 
An ES value of two or higher (ANY) requires a EXMODE variable to determine the current mode.
 
An ES value of two or higher (ANY) requires a EXMODE variable to determine the current mode.
Line 159: Line 177:
 
! Bit !! Value !! Name !! Description !! Possible EXMODE values = Possible ORDERs
 
! Bit !! Value !! Name !! Description !! Possible EXMODE values = Possible ORDERs
 
|-
 
|-
| -|| 0|| UNKNOWN  || See [[#Profile Values|common profile values]] || Undefined
+
| -|| 0|| UNKNOWN  || See [[#Facet Category Values|category values]] || Undefined
 
|-
 
|-
 
| 1|| 1|| NONE    || Always in AUTO || -
 
| 1|| 1|| NONE    || Always in AUTO || -
Line 182: Line 200:
  
 
The EXST variable has to be present, if an ES value of two (ANY) or higher is given.
 
The EXST variable has to be present, if an ES value of two (ANY) or higher is given.
A control component with ES profile value one (NONE) is assumed to be in the EXECUTE state at all time and hence it can not be halted, suspended, stopped or aborted.
+
A control component with ES value one (NONE) is assumed to be in the EXECUTE state at all time and hence it can not be halted, suspended, stopped or aborted.
  
 
{| class="wikitable"
 
{| class="wikitable"
 
! Bit !! Value !! Name !! Description !! Reference
 
! Bit !! Value !! Name !! Description !! Reference
 
|-
 
|-
| -||  0|| UNKNOWN || See [[#Common profile values|common profile values] || -  
+
| -||  0|| UNKNOWN || See [[#Facet Category Values|category values]] || -  
 
|-
 
|-
 
| 1||  1|| NONE    || Always in EXECUTE state || Minimal state model<ref name="D-PC2.3"/>
 
| 1||  1|| NONE    || Always in EXECUTE state || Minimal state model<ref name="D-PC2.3"/>
Line 207: Line 225:
 
=== OM Facets ===
 
=== OM Facets ===
  
The operation mode profile defines whether different operation modes are selectable.
+
The operation mode facets define whether different operation modes are selectable.
 
A control component with an OM value of two or higher has to represent the current operation mode via OPMODE state variable.
 
A control component with an OM value of two or higher has to represent the current operation mode via OPMODE state variable.
 
The OM value NONE yields to a control component, that has no operation modes to select and is therefore assumed to be in BSTATE (basic state) at all time.  
 
The OM value NONE yields to a control component, that has no operation modes to select and is therefore assumed to be in BSTATE (basic state) at all time.  
Line 214: Line 232:
 
! Bit !! Value !! Name !! Description
 
! Bit !! Value !! Name !! Description
 
|-
 
|-
| -|| 0|| UNKNOWN  || See [[#Profile Values|common profile values]]
+
| -|| 0|| UNKNOWN  || See [[#Facet Category Values|category values]]
 
|-
 
|-
 
| 1|| 1|| NONE    || Only one operat mode (BSTATE).
 
| 1|| 1|| NONE    || Only one operat mode (BSTATE).
Line 225: Line 243:
 
|-
 
|-
 
|}
 
|}
 
<!-- TODO Add EMF metamodell of tests
 
== Profile Compliance Testing ==
 
-->
 
  
 
== References ==
 
== References ==

Revision as of 13:26, 19 February 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

Profiles

An example control component in OPC UA realizing different facets.

A profile is a composition of facets from different facet categories. For example a control component profile can be defined by the following facets.

  • SI = 4 (OPERATIONS)
  • OC = 6 (OCCUPIED,PRIO)
  • EM = 2 (MANUAL)
  • ES = 4 (PACKML)
  • OM = 2 (MULTI)

The address space of a control component in OPC UA conforming to this profile is shown in the figure.

Facets ordered in different facet categories may describe a huge variety of control component realizations. Consequently, profiles are needed to reduce the amount of facet combinations to a usefull subset. The profiles are not defined right now, as this is part of the ongoing BaSys 4.2 project. Every profile will refer to at least one facet from every facet category and will therefore be considered as full featured profile. At first some important profiles may be defined in the future:

  • BaSys4.0 - Control components as used in the BaSys 4.0 project
  • BaSys4.2 - Control components conform to the BaSys 4.2 project
  • MTP - Control components that are NAMUR MTP conform
  • PACKML - Control components that are conform to PackML

Facet Categories

BaSys control components may be described by the following facet categorys:

SI - Service Interface Facet Category
Describes how the offered services are structured and how states are represented.
This facet category is special, because it is orthogonal to the other facet categories. Hence, a control component interface looks a bit different, if different facets from the other facet categories are realised.
OC - Occupation Facet Category
Describes whether a occuption is necessary.
Variants may describe whether a occupation with priority or local is possible.
EM - Execution Modes Facet Category
Describes whether different execution modes are possible.
Variants may describe which modes are possible and how they are called.
ES - Execution States Facet Category
References the used execution states and their transitions.
May describe variants or subsets of a full execution state state machines.
OM - Operation Modes Facet Category
Describes whether multiple operation modes are available and need to be selcted.
Variants may describe whether there are specific operation modes, like fallback or startup and shutdown modes.

Facet Category Values

All facets have a name and are identfied with an positiv integer or zero. In order to combine facet category values and to use them as statements some common values are equal for all profiles, which is presented in the following table. As different profile values in one facet may be combined they are defined by bitmasks. Hence their values are multiples of two and combinations may be represented by bit order operations and integer values. If a facet category value is higher than one any facet is defined for a facet category.

Bit Value Name Description
1 0 UNKNOWN No statement about profile or not determined
1 1 NONE Facet category is not realised, used, compliant or implemented
2..n >1 ANY One ore more facet category values, but not specified which ones
2 2 ... First specific facet of the facet category.
n 2^n ... Nth specific facet of the facet category.

Facets

SI Facets

The control component service interface E1 may be realised in various ways. Basys classifies different realisations via facets from the SI facet category. The service interface category (SI) describes how a control component can be affected by the means of orchestration and how the resulting state changes may be observed. Therefore each facet defines how the activation interaction likewise the writing of variables or invocation of operations is handled. Moreover, a component has aggregated state values for its state machines, which may be represented by one or more variables at different adresses. State change events may be raised if state variable values change. Consequently, the SI facets also define how to find the addresses or endpoints of its activation and reaction represenations.

The following table presents an overview and small comparision of possible SI facets. The major facet for the service interface used in basys is OPERATIONS.

Bit SI value Name Activation mechanism Aggregated state represenation Utiliziation recommendation
1 0 - 1 UNKNOWN, NONE Not defined Not defined See category values
2 2 CMD A string variable called CMD (command input) with a specific syntax is used to activate service operations A flat list of variables of all aggregated component states under a containing element (folder) Process control applications with IEC 61131
3 4 OPERATIONS A flat list of operations of all offered services under a containing element (folder) A flat list of variables of all aggregated component states under a containing element (folder) Advanced components or as additional interface
4 8 SERVICES Operations are grouped under service elements State variables are grouped under service elements Advanced and modular components
5 16 VARIABLES Multiple (spread) variables are used to activate service operations Multiple (spread) variables are used to represent the component states Very generic but needs mapping description. Not standardized browseable. May be mapped to NAMUR MTP

Note on NAMUR Module Type Package (MTP): in the future, basys will map the description for the orchestration of modules that are described via a NAMUR MTP to facets or even to a profile. Therefore an existing facets like VARIABLES may be used or a new facet may be necessary.

OC Facets

The occupation facet category describes, whether a control component can be occupied. This is important for an orchestrator, as it has to be checked, whether the component is free and it has to be occupied before operation. Further more, the occupation facets determine, whether it is possible to occupy the component with a higher priority, for example by an operator or maintenance person. An OC value of two or higher (ANY) requries the component to have an OCCUPIER variable to determine who occupies the component. Moreover, the OCCST variable is needed to differentiate occupation states.

Bit Value Name Description Possible OCCST values Possible ORDERs
- 0 UNKNOWN See category values Undefined Undefined
1 1 NONE No occupation necessary - -
2 2 OCCUPIED Normal occupation possible FREE, OCCUPIED FREE, OCCUPY
3 4 PRIO Priority occupation possible FREE, PRIO FREE, PRIO
4 8 LOCAL Local overwrite FREE, LOCAL

EM Facets

The execution mode facet category describes which execution modes are available. A component is assumed to be in AUTO like mode at all time, if the ES value is NONE. An ES value of two or higher (ANY) requires a EXMODE variable to determine the current mode.

Bit Value Name Description Possible EXMODE values = Possible ORDERs
- 0 UNKNOWN See category values Undefined
1 1 NONE Always in AUTO -
2 2 MANUAL Additional manual mode available AUTO, MANUAL
3 4 SEMIAUTO Additional semiautomatic mode available AUTO, SEMIAUTO
4 8 SIMULATE Additional simulation mode available AUTO, SIMULATE

ES Facets

In general different execution state machines or subsets are used in different domains or companies. BaSys recommends the use of the PackML [1] state machine, as it is possible to map at least state and order names of other state machines to it. At the moment only the facets 0 to 4 are supported in basys and are therefore used in the full featured profiles. [2]

The EXST variable has to be present, if an ES value of two (ANY) or higher is given. A control component with ES value one (NONE) is assumed to be in the EXECUTE state at all time and hence it can not be halted, suspended, stopped or aborted.

Bit Value Name Description Reference
- 0 UNKNOWN See category values -
1 1 NONE Always in EXECUTE state Minimal state model[2]
2 2 BASYS Subset of PackML (Start, Stop, Reset, Abort) Minimal PackML state machine[2]
3 4 PACKML PackML state machine ISA TR88.00.02-2008[1]
4 8 ISA88 ISA88 procedural elements state machine ANSI/ISA-88.00.01-2010[3]
5 16 MTP MTP state machine MTP Part 4[4]
6 32 OPCUA OPC UA program state machine OPC UA Part 10[5]
7 64 NE160 NE160 procedure state machine NAMUR NE160[6]

OM Facets

The operation mode facets define whether different operation modes are selectable. A control component with an OM value of two or higher has to represent the current operation mode via OPMODE state variable. The OM value NONE yields to a control component, that has no operation modes to select and is therefore assumed to be in BSTATE (basic state) at all time.

Bit Value Name Description
- 0 UNKNOWN See category values
1 1 NONE Only one operat mode (BSTATE).
2 2 MULTI Multiple, application specific modes available.
3 4 PARALLEL Parallel executable operation modes with own execution states. See components with concurrent behavior.
4 8 CONTI Conti process operation mode with startup and shutdown: BSTATE, STARTUP, SHUTDOWN

References

  1. 1.0 1.1 ISA-TR88.00.02-2008 Machine and Unit States: An Implementation Example of ISA-88.
  2. 2.0 2.1 2.2 Wagner, C., Grothoff, J., Epple, U., Grüner, S., Wenger, M., & Zoitl, A. (2018). Ein Beitrag zu einem einheitlichen Engineering für Laufzeitumgebungen, 19. Leitkongress der Mess- und Automatisierungs-technik, Baden-Baden.
  3. ISA-S88 Part 1 – Batch Control Models and Terminology (IEC 61512-1)
  4. VDI/VDE/NAMUR 2658 Part 4 - Modelling of module services
  5. IEC 62541 Part 10 – Programs
  6. NAMUR NE160 - Ein Referenzmodell für allgemeine Prozedurbeschreibungen, NAMUR, 2016.
BaSyx project links: Project BaSyx main wiki page | What is BaSyx? | BaSyx Developer Documentation

Back to the top