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 36 illustrates these principles.

image039.png

Figure 36 – Configurable component pattern

In some cases the SupportedTypes folder on the instance may be different to the one on the Type and may contain only a subset. It may 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 needs nothing but configuration capability. Figure 37 illustrates the ConfigurableObjectType. It is formally defined in Table 65. Concrete examples are in Clauses 9.3 and 9.4.

image040.png

Figure 37 – ConfigurableObjectType

Table 65 – ConfigurableObjectType definition

Attribute

Value

BrowseName

ConfigurableObjectType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the BaseObjectType defined in OPC 10000-5

HasComponent

Object

SupportedTypes

FolderType

Mandatory

HasComponent

Object

<ObjectIdentifier>

BaseObjectType

OptionalPlaceholder

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 38 shows the general structure of block-oriented Devices.

image041.png

Figure 38 – 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 may be restricted by the block-oriented Device. In Figure 38 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 may be restricted by the Modular Device. Figure 39 shows the general structure of Modular Devices.

image042.png

Figure 39 – 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 might already have a set of pre-configured subdevices. Furthermore, the SupportedTypes folder might only refer to a subset of all possible subdevices for the Modular Device. In Figure 39 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 may themselves be Modular Devices.