To meet the range of aspects of the assets which have to be described in the AAS a set of submodel element types are defined. Each submodel element type represents one of these aspects. Figure 14 provides a general overview.
Figure 14 – SubmodelElement Subtypes
Figure 15 shows an overview about the AASSubmodelElement ObjectType.
Figure 15 – AASSubmodelElementType graphical overview
A data element is a submodel element that is not further composed of other submodel elements (Table 27). A data element is a submodel element that has a value. The type of value may differ for different data elements.
Table 27 – AASSubmodelElementType Definition
Attribute |
Value |
||||
BrowseName |
AASSubmodelElementType |
||||
IsAbstract |
True |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
Subtype of the BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasInterface |
ObjectType |
IAASReferableType |
|
- |
- |
0:HasProperty |
Variable |
ModelingKind |
AASModelingKindDataType |
0:PropertyType |
M |
0:HasComponent |
Object |
<Qualifier> |
|
AASQualifierType |
OP |
0:HasComponent |
Object |
<DataSpecification> |
|
AASReferenceType |
OP |
0:HasDictionaryEntry |
Object |
<IRDI_or_IRI_or_Custom_concept_description_entry> |
|
AASIriConceptDescriptionType |
|
0:HasDictionaryEntry |
Object |
Admin-shell.io/aas/2/0/SubmodelElement |
|
AASIriConceptDescriptionType |
|
Applied from IAASReferableType |
|||||
0:HasProperty |
Variable |
Category |
0:String |
0:PropertyType |
M |
The default value of the variable “ModelingKind” is “Instance”.
For each AASSubmodelElementType instance the semanticId is mapped to the OPC UA HasDictionaryEntry. This is at instance level because the DictionaryEntry refers to the concept dictionary element, which describes the individual instance and not the submodel element type.
The components of the AASSubmodelElementType have additional references which are defined in Table 28.
Table 28 – AASSubmodelElementType Additional References
Source Path |
Reference Type |
Is Forward |
Target Path |
<DataSpecification> |
0:HasDictionaryEntry |
True |
Admin-shell.io/aas/2/0/hasDataSpecification/dataSpecification |
ModelingKind |
0:HasDictionaryEntry |
True |
Admin-shell.io/aas/2/0/SubmodelElement/kind |
<Qualifier> |
0:HasDictionaryEntry |
True |
Admin-shell.io/aas/2/0/SubmodelElement/qualifiers |
Figure 16 shows an overview about the AASSubmodelElementCollection ObjectType.
Figure 16 – AASSubmodelElementCollectionType graphical overview
A submodel element collection is a set or list of submodel elements. The AASSubmodelElementCollectionType is defined in Table 29
Table 29 – AASSubmodelElementCollectionType Definition
Attribute |
Value |
|||||
BrowseName |
AASSubmodelElementCollectionType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
|
Subtype of the AASSubmodelElementType defined 6.8.1, i.e. inheriting the InstanceDeclarations of that Node. |
||||||
0:HasComponent |
Object |
<SubmodelElement> |
|
AASSubmodelElementType |
OP |
|
0:HasProperty |
Variable |
AllowDuplicates |
0:Boolean |
0:PropertyType |
O |
|
0:HasDictionaryEntry |
Object |
Admin-shell.io/aas/2/0/SubmodelElementCollection |
|
AASIriConceptDescriptionType |
|
The components of the AASSubmodelElementCollectionType have additional references which are defined in Table 30.
Table 30 – AASSubmodelElementCollectionType Additional References
Source Path |
Reference Type |
Is Forward |
Target Path |
<SubmodelElement> |
0:HasDictionaryEntry |
True |
Admin-shell.io/aas/2/0/SubmodelElementCollection/values |
AllowDuplicates |
0:HasDictionaryEntry |
True |
Admin-shell.io/aas/2/0/SubmodelElementCollection/allowDuplicates |
The value elements in this collection are not ordered (i.e. http://Admin-shell.io/aas/2/0/ SubmodelElementCollection/ordered == False).
Figure 17 shows an overview about the AASOrderedSubmodelElementCollection ObjectType.
Figure 17 – AASOrderedSubmodelElementCollectionType graphical overview
Table 31 defines the AASOrderedSubmodelElementCollection ObjectType.
Table 31 – AASOrderedSubmodelElementCollectionType Definition
Attribute |
Value |
|||||
BrowseName |
AASOrderedSubmodelElementCollectionType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
|
Subtype of the AASSubmodelElementCollectionType defined in Table 29 and Table 30 i.e. inheriting the InstanceDeclarations of that Node. |
||||||
0:HasOrderedComponent |
Object |
<SubmodelElement> |
|
AASSubmodelElementType |
OP |
|
0:HasDictionaryEntry |
Object |
Admin-shell.io/aas/2/0/SubmodelElementCollection |
|
AASIriConceptDescriptionType |
|
The components of the AASOrderedSubmodelElementCollectionType have additional references which are defined in Table 32.
Table 32 – AASOrderedSubmodelElementCollectionType Additional References
Source Path |
Reference Type |
Is Forward |
Target Path |
<SubmodelElement> |
0:HasDictionaryEntry |
True |
Admin-shell.io/aas/2/0/SubmodelElementCollection/values |
|
|
|
|
The value elements in this collection are ordered (i.e. http://Admin-shell.io/aas/2/0/ SubmodelElementCollection/ordered == True).
Figure 18 shows an overview about the AASMultiLanguageProperty ObjectType
Figure 18 – AASMultiLanguagePropertyType graphical overview
This submodel element type is used for properties with a value that can be provided in multiple languages (see Table 33).
Table 33 – AASMultiLanguagePropertyType Definition
Attribute |
Value |
|||||
BrowseName |
AASMultiLanguagePropertyType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
|
Subtype of the AASSubmodelElementType defined 6.8.1, i.e. inheriting the InstanceDeclarations of that Node |
||||||
0:HasComponent |
Object |
ValueId |
|
AASReferenceType |
O |
|
0:HasProperty |
Variable |
Value |
0:LocalizedText[] |
0:PropertyType |
O |
|
0:HasDictionaryEntry |
Object |
Admin-shell.io/aas/2/0/MultiLanguageProperty |
|
AASIriConceptDescriptionType |
|
The components of the AASMultiLanguagePropertyType have additional references which are defined in Table 34.
Table 34 – AASMultiLanguagePropertyType Additional References
Source Path |
Reference Type |
Is Forward |
Target Path |
ValueId |
0:HasDictionaryEntry |
True |
Admin-shell.io/aas/2/0/MultiLanguageProperty/valueId |
Value |
0:HasDictionaryEntry |
True |
Admin-shell.io/aas/2/0/MultiLanguageProperty/value |
Figure 19 shows an overview about the AASProperty ObjectType.
Figure 19 – AASPropertyType graphical overview
The valueId attribute references a DictionaryEntry. Table 35 defines the AASProperty ObjectType.
Table 35 – AASPropertyType Definition
Attribute |
Value |
|||||
BrowseName |
AASPropertyType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
|
Subtype of the AASSubmodelElementType defined 6.8.1, i.e. inheriting the InstanceDeclarations of that Node. |
||||||
0:HasProperty |
Variable |
Value |
0:BaseDataType |
0:PropertyType |
O |
|
0:HasProperty |
Variable |
ValueType |
AASValueTypeDataType |
0:PropertyType |
M |
|
0:HasComponent |
Object |
ValueId |
- |
AASReferenceType |
O |
|
0:HasDictionaryEntry |
Object |
Admin-shell.io/aas/2/0/Property |
|
AASIriConceptDescriptionType |
|
The components of the AASPropertyType have additional references which are defined in Table 36.
Table 36 – AASPropertyType Additional References
Source Path |
Reference Type |
Is Forward |
Target Path |
Value |
0:HasDictionaryEntry |
True |
Admin-shell.io/aas/2/0/Property/value |
ValueType |
0:HasDictionaryEntry |
True |
Admin-shell.io/aas/2/0/Property/valueType |
ValueId |
0:HasDictionaryEntry |
True |
Admin-shell.io/aas/2/0/Property/valueId |
Table 37 defines the AASCapability ObjectType.
Table 37 – AASCapabilityType Definition
Attribute |
Value |
|||||
BrowseName |
AASCapabilityType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
|
Subtype of the AASSubmodelElementType defined 6.8.1, i.e. inheriting the InstanceDeclarations of that Node. |
||||||
0:HasDictionaryEntry |
Object |
Admin-shell.io/aas/2/0/Property |
|
AASIriConceptDescriptionType |
|
Figure 20 shows an overview about the AASOperation ObjectType.
Figure 20 – AASOperationType graphical overview
AASOperationType is defined in Table 38. It encapsulates the standard OPC UA Method “Operation”. All rules for the OPC UA Method NodeClass declaration apply. “Operation” is defined without Arguments but with the OptionalPlaceholder ModellingRule. As defined in OPC 10000-3, this rule allows the inclusion of Arguments to this Method on sub-types or on instances.
Table 38 – AASOperationType Definition
Attribute |
Value |
|||||
BrowseName |
AASOperationType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
Data Type |
TypeDefinition |
Others |
|
Subtype of the AASSubmodelElementType defined 6.8.1, i.e. inheriting the InstanceDeclarations of that Node. |
||||||
0:HasComponent |
Method |
Operation |
|
|
MP |
|
0:HasDictionaryEntry |
Object |
Admin-shell.io/aas/2/0/Operation |
|
AASIriConceptDescriptionType |
|
An example of a method definition is:
Signature
Method_xy_name (
[InputArgument]
0:PropertyType BrowseNameA
0:PropertyType BrowseNameB
…
[OutputArgument]
0:PropertyType BrowseNameK
0:PropertyType BrowseNameL
…
)
Each individual element of the InputArgument and OutputArgument has to be referenced by a 0:HasDictionaryEntry to its semantic definition.
Figure 21 shows an overview about the AASBlob ObjectType.
Figure 21 – AASBlobType graphical overview
Table 39 defines the AASBlob ObjectType.
Table 39 – AASBlobType Definition
Attribute |
Value |
|||||
BrowseName |
AASBlobType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
|
Subtype of the AASSubmodelElementType defined 6.8.1, i.e. inheriting the InstanceDeclarations of that Node. |
||||||
0:HasComponent |
Object |
File |
|
0:FileType |
M |
|
0:HasDictionaryEntry |
Object |
Admin-shell.io/aas/2/0/Blob |
|
AASIriConceptDescriptionType |
|
The components of the AASBlobType have additional references which are defined in Table 40.
Table 40 – AASBlobType Additional References
Source Path |
Reference Type |
Is Forward |
Target Path |
File |
0:HasDictionaryEntry |
True |
Admin-shell.io/aas/2/0/Blob/value |
Figure 22 shows an overview about the AASFile ObjectType.
Figure 22 – AASFileType graphical overview
Table 41 defines the AASFile ObjectType.
Table 41 – AASFileType Definition
Attribute |
Value |
|||||
BrowseName |
AASFileType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
|
Subtype of the AASSubmodelElementType defined 6.8.1, i.e. inheriting the InstanceDeclarations of that Node. |
||||||
0:HasProperty |
Variable |
Value |
0:String |
0:PropertyType |
M |
|
0:HasProperty |
Variable |
MimeType |
AASMimeDataType |
0:PropertyType |
M |
|
0:HasComponent |
Object |
File |
|
0:FileType |
O |
|
0:HasDictionaryEntry |
Object |
Admin-shell.io/aas/2/0/File |
|
AASIriConceptDescriptionType |
|
The components of the AASFileType have additional references which are defined in Table 42.
Table 42 – AASFileType Additional References
Source Path |
Reference Type |
Is Forward |
Target Path |
File |
0:HasDictionaryEntry |
True |
Admin-shell.io/aas/2/0/File/value |
MimeType |
0:HasDictionaryEntry |
True |
Admin-shell.io/aas/2/0/File/mimeType |
The additional reference to the real file of type 0:FileType is optional and not specified as such in the asset administration shell metamodel.
Figure 23 shows an overview about the AASRelationElement ObjectType.
Figure 23 – AASRelationElementType graphical overview
A relationship element is used to define a relationship between two referable elements (Table 43).
Table 43 – AASRelationshipElementType Definition
Attribute |
Value |
|||||
BrowseName |
AASRelationshipElementType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
|
Subtype of the AASSubmodelElementType defined 6.8.1, i.e. inheriting the InstanceDeclarations of that Node. |
||||||
0:HasComponent |
Object |
First |
|
AASReferenceType |
M |
|
0:HasComponent |
Object |
Second |
|
AASReferenceType |
M |
|
0:HasDictionaryEntry |
Object |
Admin-shell.io/aas/2/0/RelationshipElement |
|
AASIriConceptDescriptionType |
|
Objects which have the AASReferenceType shall reference another type. According to Table 43 these are the following references:
- the “First” node shall reference the Referable Type instance having the role of the subject
- the “Second” node shall reference the Referable Type instance having the role of the object
The components of the AASRelationshipType have additional references defined in Table 44.
Table 44 – AASRelationshipElementType Additional References
Source Path |
Reference Type |
Is Forward |
Target Path |
First |
0:HasDictionaryEntry |
True |
Admin-shell.io/aas/2/0/RelationshipElement/first |
Second |
0:HasDictionaryEntry |
True |
Admin-shell.io/aas/2/0/RelationshipElement/second |
Table 45 defines the AASAnnotatedRelationshipElement ObjectType.
Table 45 – AASAnnotatedRelationshipElementType Definition
Attribute |
Value |
|||||
BrowseName |
AASAnnotatedRelationshipElementType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
|
Subtype of the AASRelationshipElementType defined in Table 45, i.e. inheriting the InstanceDeclarations of that Node. |
||||||
0:HasComponent |
Object |
<DataElement> |
|
AASSubmodelElementType |
OP |
|
0:HasDictionaryEntry |
Object |
Admin-shell.io/aas/2/0/AnnotatedRelationshipElement |
|
AASIriConceptDescriptionType |
|
The components of the AASAnnotatedRelationshipElementType have additional references which are defined in Table 46.
Table 46 – AASAnnotatedRelationshipElementType Additional References
Source Path |
Reference Type |
Is Forward |
Target Path |
<DataElement> |
0:HasDictionaryEntry |
True |
Admin-shell.io/aas/2/0/AnnotatedRelationshipElement/annotations |
The following SubmodelElement objects are allowed for AASAnnotatedRelationshipElementType:
- AASProperty
- AASMultiLanguageProperty
- AASRangeType
- AASReferenceElementType
- AASFileType
- AASBlobType
Figure 24 shows an overview about the AASReferenceElement ObjectType.
Figure 24 – AASReferenceElementType graphical overview
An AASReferenceElement has a Reference as value (Table 47). This reference has an aggregation of keys (see Table 47) which represents a key chain. The resolved key chain points to an element.
Table 47 – AASReferenceElementType Definition
Attribute |
Value |
|||||
BrowseName |
AASReferenceElementType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
|
Subtype of the AASSubmodelElementType defined 6.8.1, i.e. inheriting the InstanceDeclarations of that Node. |
||||||
0:HasComponent |
Object |
Value |
|
AASReferenceType |
M |
|
0:HasDictionaryEntry |
Object |
Admin-shell.io/aas/2/0/ReferenceElement |
|
AASIriConceptDescriptionType |
|
The Object which has the AASReferenceType shall reference another type. According to Table 47 the “Value” can contain the allowed subtypes of AASSubmodelElementTypes as defined in chapter 6.3.
The components of the AASReferenceElementType have additional references which are defined in Table 48.
Table 48 – AASReferenceElementType Additional References
Source Path |
Reference Type |
Is Forward |
Target Path |
Value |
0:HasDictionaryEntry |
True |
Admin-shell.io/aas/2/0/ReferenceElement/value |
Figure 25 shows an overview about the AASEvent ObjectType.
Figure 25 – AASEventType graphical overview
Table 49 defines the AASEvent ObjectType.
Table 49 – AASEventType Definition
Attribute |
Value |
|||||
BrowseName |
AASEventType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
|
Subtype of the AASSubmodelElementType defined 6.8.1, i.e. inheriting the InstanceDeclarations of that Node. |
||||||
The attribute “observed” of the BasicEvent submodel element in the AAS metamodel is mapped to the OPC UA eventing mechanism using GeneratesEvent-references pointing from instances of this AASEventType to ObjectTypeNodes of type BaseEventType or its customized subclasses. |
Figure 26 shows an overview about the AASEntity ObjectType.
Figure 26 – AASEntityType graphical overview
Table 50 defines the AASEntity ObjectType.
Table 50 – AASEntityType Definition
Attribute |
Value |
|||||
BrowseName |
AASEntityType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
|
Subtype of the AASSubmodelElementType defined 6.8.1, i.e. inheriting the InstanceDeclarations of that Node. |
||||||
0:HasComponent |
Object |
<SubmodelElement> |
- |
AASSubmodelElementType |
OP |
|
0:HasProperty |
Variable |
EntityType |
AASEntityTypeDataType |
0:PropertyType |
M |
|
0:HasComponent |
Object |
Asset |
- |
AASReferenceType |
O |
|
0:HasDictionaryEntry |
Object |
Admin-shell.io/aas/2/0/Entity |
|
AASIriConceptDescriptionType |
|
The components of the AASEntityType have additional references which are defined in Table 51.
Table 51 – AASEntityType Additional References
Source Path |
Reference Type |
Is Forward |
Target Path |
<SubmodelElement> |
0:HasDictionaryEntry |
True |
Admin-shell.io/aas/2/0/Entity/statements |
EntityType |
0:HasDictionaryEntry |
True |
Admin-shell.io/aas/2/0/Entity/entityType |
Asset |
0:HasDictionaryEntry |
True |
Admin-shell.io/aas/2/0/Entity/asset |
If Min missing then negative open range infinitely, if max missing the open range infinitely.
Table 52 – AASRangeType Definition
Attribute |
Value |
||||
BrowseName |
AASRangeType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
Subtype of the AASSubmodelElementType defined 6.8.1, i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasProperty |
Variable |
ValueType |
AASValueTypeDataType |
0:PropertyType |
M |
0:HasProperty |
Variable |
Min |
0:BaseDataType |
0:PropertyType |
O |
0:HasProperty |
Variable |
Max |
0:BaseDataType |
0:PropertyType |
O |
0:HasDictionaryEntry |
Object |
Admin-shell.io/aas/2/0/Range |
|
AASIriConceptDescriptionType |
|
Only simple data type of the OPC UA specification are allowed.
The components of the AASRangeType have additional references which are defined in Table 53.
Table 53 – AASRangeType Additional References
Source Path |
Reference Type |
Is Forward |
Target Path |
ValueType |
0:HasDictionaryEntry |
True |
Admin-shell.io/aas/2/0/Range/valueType |
Min |
0:HasDictionaryEntry |
True |
Admin-shell.io/aas/2/0/Range/min |
Max |
0:HasDictionaryEntry |
True |
Admin-shell.io/aas/2/0/Range/max |