BaSyx / Documentation / API / ControlComponentProfiles
|Overview | Interface | Implementation|
BaSys control components may be described by the following profiles:
- SI - Service Interface Profile
- Describes how the offered services are structured and how states are represented.
- This profile is special, because it is orthogonal to the other profiles. Hence, every other profile looks a bit different, if a different SI profile is realised in component.
- OC - Occupation Profile
- Describes whether a occuption is necessary.
- Variants may describe whether a occupation with priority or local is possible.
- EM - Execution Modes Profile
- Describes whether different execution modes are possible.
- Variants may describe which modes are possible and how they are called.
- ES - Execution States Profile
- References the used execution states and their transitions.
- May describe variants or subsets of a full execution state state machines.
- OM - Operation Modes Profile
- 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.
For example a control component could have the following profile values.
- SI = 5 (OPERATIONS)
- OC = 4 (PRIO)
- EM = 3 (MANUAL)
- ES = 3 (PACKML)
- OM = 4 (MULTI)
The address space of a control component interface in OPC UA is shown in the figure.
All profiles shall be determined with an positiv integer or zero, respectively enums may be implemented. In order to combine profile 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 profile 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 the value is higher than one any profile values are given.
|1||0||UNKNOWN||No statement about profile or not determined|
|1||1||NONE||Profile is not realised, used, compliant or implemented|
|2..n||>1||ANY||One ore more profile values, but not specified which ones|
|2||2||...||First specific variant or property of the profile.|
|n||2^n||...||Nth specific variant or property of the profile.|
The control component service interface E1 may be realised in various ways. Basys classifies different realisations via profiles. 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. Therefore each profile value 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 profile also defines 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 major profile of 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 common profile 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 profiles. Therefore an existing profile value like VARIABLES may be used or a new profile value may be necessary.
The occupation profile 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 profile determins, 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. Moreover, the OCCST variable is needed to differentiate occupation states.
|Bit||Value||Name||Description||Possible OCCST values||Possible ORDERs|
|-||0||UNKNOWN||See common profile 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|
The execution mode profile 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 common profile 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|
In general different execution state machines or subsets are used in different domains or companies. BaSys recommends the use of the PackML  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. 
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.
|-||0||UNKNOWN||See [[#Common profile values|common profile values]||-|
|1||1||NONE||Always in EXECUTE state||Minimal state model|
|2||2||BASYS||Subset of PackML (Start, Stop, Reset, Abort)||Minimal PackML state machine|
|3||4||PACKML||PackML state machine||ISA TR88.00.02-2008|
|4||8||ISA88||ISA88 procedural elements state machine||ANSI/ISA-88.00.01-2010|
|5||16||MTP||MTP state machine||MTP Part 4|
|6||32||OPCUA||OPC UA program state machine||OPC UA Part 10|
|7||64||NE160||NE160 procedure state machine||NAMUR NE160|
The operation mode profile defines 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.
|-||0||UNKNOWN||See common profile 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|
- ISA-TR88.00.02-2008 Machine and Unit States: An Implementation Example of ISA-88.
- 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.
- ISA-S88 Part 1 – Batch Control Models and Terminology (IEC 61512-1)
- VDI/VDE/NAMUR 2658 Part 4 - Modelling of module services
- IEC 62541 Part 10 – Programs
- NAMUR NE160 - Ein Referenzmodell für allgemeine Prozedurbeschreibungen, NAMUR, 2016.
|BaSyx project links: Project BaSyx main wiki page | What is BaSyx? | BaSyx Developer Documentation|