This section defines specialized types that are commonly used for Field Devices. It makes use of the ConfigurableObjectType as a way to add functionality using composition.
Subclause 9.2 defines a generic pattern to expose and configure components. It defines the following principles:
- A configurable Object shall contain a folder called SupportedTypes that references the list of Types available for configuring components using Organizes References. Sub-folders can be used for further structuring of the set. The names of these sub-folders are vendor specific.
- The configured instances shall be components of the configurable Object.
Figure 56 illustrates these principles.
Figure 56 – Configurable component pattern
In some cases the SupportedTypes folder on the instance can be different to the one on the Type and can contain only a subset. It can be for example that only one instance of each Type can be configured. In this case the list of supported Types will shrink with each configured component.
This ObjectType implements the configurable component pattern and is used when an Object or an instance declaration requires nothing but configuration capability. Figure 57 illustrates the ConfigurableObjectType. It is formally defined in Table 142. Concrete examples are in clauses 9.3 and 9.4.
Figure 57 – ConfigurableObjectType
Table 142 – ConfigurableObjectType definition
|
Attribute |
Value |
||||
|
BrowseName |
1:ConfigurableObjectType |
||||
|
IsAbstract |
False |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Other |
|
Subtype of the 0:BaseObjectType defined in OPC 10000-5 |
|||||
|
|
|
|
|
||
|
0:HasComponent |
Object |
1:SupportedTypes |
|
0:FolderType |
M |
|
0:HasComponent |
Object |
1:<ObjectIdentifier> |
|
0:BaseObjectType |
OP |
|
Conformance Units |
|||||
|
DI Information Model |
|||||
The SupportedTypes folder is used to maintain the set of (subtypes of) BaseObjectTypes that can be instantiated in this configurable Object (the course of action to instantiate components is outside the scope of this specification).
The configured instances shall be components of the ConfigurableObject.
A Block-oriented Device can be composed using the modelling elements defined in this specification. A Block-oriented Device includes a configurable set of Blocks. Figure 58 shows the general structure of Block-oriented Devices.
Figure 58 – Block-oriented Device structure example
An Object called Blocks is used as a container for the actual BlockType instances. It is of the ConfigurableObjectType which includes the SupportedTypes folder. The SupportedTypes folder for Blocks is used to maintain the set of (subtypes of) BlockTypes that can be instantiated. The supported Blocks can be restricted by the Block-oriented Device. In Figure 58 the BlockTypes B and E have already been instantiated. In this example, only one instance of these types is allowed and the SupportedTypes folder therefore does not reference these types anymore. See 9.2.1 for the complete definition of the ConfigurableObjectType.
A Modular Device is represented by a (subtype of) ComponentType that is composed of a top-Device and a set of subdevices (modules). The top-Device often is the head module with the program logic but a large part of the functionality depends on the used subdevices. The supported subdevices can be restricted by the Modular Device. Figure 59 shows the general structure of Modular Devices.
Figure 59 – Modular Device structure example
The modules (subdevices) of Modular Devices are aggregated in the SubDevices Object. It is of the ConfigurableObjectType, which includes the SupportedTypes folder. The SupportedTypes folder for SubDevices is used to maintain the set modules that can be added to the Modular Device. Modules are not in the DeviceSet Object.
Depending on the actual configuration, Modular Device instances can already have a set of pre-configured subdevices. Furthermore, the SupportedTypes folder possibly only refers to a subset of all possible subdevices for the Modular Device. In Figure 59 the modules C and D have already been instantiated. In this example, only one instance of these types is allowed and the SupportedTypes folder therefore does not reference these types anymore. See clause 9.2.1 for the complete definition of the ConfigurableObjectType.
Subdevices can themselves be Modular Devices.