Table 31 defines the structure of an MDISAggregateObjectType. The MDISAggregateObjectType is a subtype of MDISBaseObjectType and requires that all subtypes include, as a minimum, the Fault information. All other components are Optional and only components that are required by the aggregate are needed.

Table 31 – MDISAggregateObjectType

Attribute

Value

BrowseName

MDISAggregateObjectType

IsAbstract

True

References

Node Class

BrowseName

Data Type

TypeDefinition

ModellingRule

RW

Subtype of the MDISBaseObjectType defined in section 5.1.1

HasComponent

Object

<InstrumentPlaceholder>

MDISInstrumentObjectType

Optional Placeholder

HasComponent

Object

<InstrumentOutPlaceholder>

MDISInstrumentOutObjectType

Optional Placeholder

HasComponent

Object

<DigitalInstrumentPlaceholder>

MDISDigitalInstrumentObjectType

Optional Placeholder

HasComponent

Object

<DiscreteInstrumentPlaceholder>

MDISDiscreteInstrumentObjectType

Optional Placeholder

HasComponent

Object

<DigitalOutPlaceholder>

MDISDigitalOutObjectType

Optional Placeholder

HasComponent

Object

<DiscreteOutPlaceholder>

MDISDiscreteOutObjectType

Optional Placeholder

HasComponent

Object

<ValvePlaceholder>

MDISValveObjectType

Optional Placeholder

HasComponent

Object

<ChokePlaceholder>

MDISChokeObjectType

Optional Placeholder

HasComponent

Variable

<InterlockPlaceholder>

InterlockVariableType

Optional Placeholder

The MDISAggregateObjectType is an abstract ObjectType; instances of this ObjectType cannot be created. Object instances can only be created of subtypes of this ObjectType. In OPC UA it is legal to add additional Object or Variable Reference(s) to an instance of an Object, (i.e. add Variable or Object to an instance that are not defined in the type), but in MDIS we are restricting this in that a Client is not required to process or handle any Objects or Variables that are not part of a type.

The subtypes of MDISAggregateObjectType are allowed to include other subtypes of MDISAggregateObjectType. For example, a Well that is defined as a subtype of MDISAggregateObjectType might include an MPFMAggregateObjectType which is also a subtype of MDISAggregateObjectType.

<InstrumentPlaceholder> denotes that a subtype of this ObjectType may define any number of Objects of this type as part of a subtype. Each object instance shall have a unique BrowseName and must be of MDISInstrumentObjectType.

<InstrumentOutPlaceholder> denotes that a subtype of this ObjectType may define any number of Objects of this type as part of a subtype. Each object instance shall have a unique BrowseName and must be of MDISInstrumentOutObjectType.

<DigitalInstrumentPlaceholder> denotes that a subtype of this ObjectType may define any number of Objects of this type as part of a subtype. Each object instance shall have a unique BrowseName and must be of MDISDigitalInstrumentObjectType.

<DiscreteInstrumentPlaceholder> denotes that a subtype of this ObjectType may define any number of Objects of this type as part of a subtype. Each object instance shall have a unique BrowseName and must be of MDISDiscreteInstrumentObjectType.

<DigitalOutPlaceholder> denotes that a subtype of this ObjectType may define any number of Objects of this type as part of a subtype. Each object instance shall have a unique BrowseName and must be of MDISDigitalOutObjectType.

<DiscreteOutPlaceholder> denotes that a subtype of this ObjectType may define any number of Objects of this type as part of a sub type. Each object instance shall have a unique BrowseName and must be of MDISDiscreteOutObjectType.

<ValvePlaceholder> denotes that a subtype of this ObjectType may define any number of Objects of this type as part of a subtype. Each object instance shall have a unique BrowseName and must be of MDISValveObjectType .

<ChokePlaceholder> denotes that a subtype of this ObjectType may define any number of Objects of this type as part of a subtype. Each object instance shall have a unique BrowseName and must be of MDISChokeObjectType.

<InterlockPlaceholder> denotes that a subtype of this VariableType may define any number of Variables of this type as part of a subtype. Each Variable instance shall have a unique BrowseName and must be of InterlockVariableType.