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.