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.

image060.png

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.

image061.png

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.

image062.png

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.

image063.png

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.