The following is an example for creating an aggregated model of a simple CIMV Object. A generic model of a CIMV could have the following items:
- Valve Position Target (32 bit, float) – Read / Write
- Valve Flow Target (32 bit, float) – Read / Write
- Valve Status (8 bit, word) – Read Only
- Valve Device State (8 bit, word) – Read Only
The following figure illustrates the resulting TypeDefinition with example Object instances. It includes two instances of MDISDiscreteInstrumentObjectType Objects that represent the Valve Status and the Valve Device State, two instances of MDISInstrumentOutObjectType Objects that provide the ability to set the Position and Flow target values and two instances of MDISInstrumentObjectType Objects that provide feedback on the set Position and Flow target. As can be seen in the example figure, a common type definition allows for multiple identical Object instances to be created.
Figure 21 - Aggregated Object Type Definition
A vendor does not have to generate aggregate Objects; it can just provide a list of the base MDIS Objects that are being exposed. For example, a Well might not be configured as a subtype of MDISAggregateObjectType it might be a folder that contains the MDIS Objects that comprise the Well. If a structure is to be repeated, generating a subtype of the MDISAggregateObjectType for the structure can simplify testing and Client configuration work.