The following sections define the basic OPC UA Objects defined by MDIS. This includes Method definition as needed. The use cases / object interactions for each Object are defined in a separate section.

The MDISBaseObjectType (see 6.2) is a base object that all other MDIS objects are constructed from. It is an abstract ObjectType and instances of it shall not exist. This Object will be used to create subtypes.

The MDISDiscreteInstrumentObjectType (see 6.3) is a base type and can be subtyped or instances of it can be directly created. The Object can be used with multi-state type of data (stopped, moving, faulted). It could also be used for instruments that report integer values. For a limit switch or on / off switch the MDISDigitalInstrumentObjectType should be used.

The MDISDiscreteOutObjectType (see 6.3.4) is a subtype of MDISDiscreteInstrumentObjectType and can be subtyped or instance of it can be directly created. The Object can be used for Tristate or Multistate switches.

The MDISDiscreteArbitrationObjectType (see 6.3.6) is a subtype of MDISDiscreteInstrumentObjectType and can be subtyped or instance of it can be directly created. It adds inputs that can be selected according to the arbitration mode.

The MDISDigitalInstrumentObjectType (see 6.4) is a base type and can be subtyped or instance of it can be directly created. The Object can be used to represent on / off type of functions.

The MDISDigitalOutObjectType (see 6.4.4) is a subtype of MDISDigitalInstrumentObjectType and can be subtyped or instance of it can be directly created. The Object can be used for switching on / off types.

The MDISDigitalArbitrationObjectType (see 6.4.6) is a subtype of MDISDigitalInstrumentObjectType and can be subtyped or instance of it can be directly created. It adds inputs that can be selected according to the arbitration mode.

The MDISInstrumentObjectType (see 6.5.3) is a base type and can be subtyped or instances of it can be directly created. The Object can be used for various types of analogues, e.g. pressure, temperatures, tank levels etc.

The MDISInstrumentOutObjectType (see 6.5.4) is a subtype of MDISInstrumentObjectType and can be subtyped or instance of it can be directly created. The Object can be used for writing floating point values.

The MDISInstrument ArbitrationObjectType (see 6.5.6) is a subtype of MDISInstrumentObjectType and can be subtyped or instance of it can be directly created. It adds inputs that can be selected according to the arbitration mode.

The MDISChokeObjectType (see 6.6.3) is a base type and can be subtyped or an instance of it can be directly created. A choke is a device that restricts the flow of a fluid (gases, liquids, fluidised solids, or slurries).

The MDISElectricChokeObjectType (see 6.7.3) is a base type and can be subtyped or an instance of it can be directly created. An electric choke is a device that restricts the flow of a fluid (gases, liquids, fluidised solids, or slurries) and can be positioned more precisely than a standard Choke.

The MDISValveObjectType (see 6.8.3) is a base type and can be subtyped or an instance of it can be directly created. A valve is a device that directs or controls the flow of a fluid (gases, liquids, fluidised solids, or slurries). The MDISValveObjectType represents a two-state valve type.

The MDISCIMVObjectType (see 6.9.3) is a base type and can be subtyped or an instance of it can be directly created. The CIMV (Chemical Injection Metering Valve) is used to regulate the flow of chemicals to a well. It can report optional housekeeping data.

The MDISMotorObjectType (see 6.11.3) is a base type and can be subtyped or an instance of it can be directly created. A motor is a device that is used to power pump

The MDISAggregateObjectType (see 6.12.2) is an abstract type that all aggregate ObjectTypes shall be derived from. This ObjectType allows Clients to easily identify aggregate Objects. For more information about aggregation see 10.5

The MDISCounterObjectType (see 6.10.3) is a base type, it is not envisioned that this object will be subtyped, but rather that this object is used as part of other aggregate objects. It provides the capability of resetting counters to some initial value.

The MDISTimeSyncObjectType (see 6.13.3) is a base ObjectType. An instance of this ObjectType shall be exposed as part of the MDISInformationObjectType, if the MDISTimeSyncObjectType is supported.

The MDISInformationObjectType (see 6.14) is a base ObjectType. An instance of this ObjectType shall be exposed under the Objects folder. It provides information about the MDIS Information model that is supported by the Server. It can also expose additional information related to MDIS.