The following section details the generic MDISInstrumentObjectType structure and defines the properties associated with it. Additional sections define a subtype MDISInstrumentOutObjectType that allows updates to the instrument value. This is in general a vendor and operator independent description, but all users of the MDISInstrumentObjectType or MDISInstrumentOutObjectType can add vendor specific data. The vendor specific data should be defined as part of a subtype of the MDISInstrumentObjectType defined in this document. It is assumed that the subsea system is the Server and host of the instance of the MDISInstrumentObjectType or MDISInstrumentOutObjectType. The DCS based system is the Client in the system. It is assumed that all interactions with the MDISInstrumentObjectType are initiated by the Client and are directed to the Server.

The following section details the MDIS generic properties for the MDISInstrumentObjectType. Implementation shall ensure adherence to Mandatory [M] aspects in order to comply with the MDIS interface standardisation. Optional [O] may or may not be implemented within a project. Figure 13 provides an overview of the MDISInstrumentObjectType as defined by MDIS, including some nested types. Figure 13 includes all of the items that are inherited from the MDISBaseObjectType.

image017.png

Figure 13 – MDISInstrumentObjectType & MDISInstrumentOutObjectType & MDISInstrumentArbitrationObjectType

Table 28 defines the structure of an MDISInstrumentObjectType. Any vendor specified properties that have been implemented within a project should be documented within a similar format and supplied to the DCS vendor. The addition of vendor specific properties will result in a subtype of the MDISInstrumentObjectType. If a MDISInstrumentObjectType instance is disabled, the MDISBaseObjectType defaults are followed and only the HHSetPoint, HSetPoint, LSetPoint and LLSetPoint object values will be available

Table 28 – MDISInstrumentObjectType Definition

Attribute

Value

BrowseName

MDISInstrumentObjectType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the MDISBaseObjectType (defined in 6.1.1)

0:HasComponent

Variable

ProcessVariable

0:Float

0:AnalogItemType

M, RO

0:HasComponent

Variable

HHlimit

0:Boolean

0:BaseDataVariableType

O, RO

0:HasComponent

Variable

Hlimit

0:Boolean

0:BaseDataVariableType

O, RO

0:HasComponent

Variable

Llimit

0:Boolean

0:BaseDataVariableType

O, RO

0:HasComponent

Variable

LLlimit

0:Boolean

0:BaseDataVariableType

O, RO

0:HasProperty

Variable

HHSetPoint

0:Float

0:PropertyType

O, RW

0:HasProperty

Variable

HSetPoint

0:Float

0:PropertyType

O, RW

0:HasProperty

Variable

LSetPoint

0:Float

0:PropertyType

O, RW

0:HasProperty

Variable

LLSetPoint

0:Float

0:PropertyType

O, RW

0:HasSubtype

ObjectType

MDISInstrumentOutObjectType

0:HasSubtype

ObjectType

MDISInstrumentArbitrationObjectType

ConformanceUnits

MDIS Instrument Base

ProcessVariable – a Variable in engineering units that represents the value of the instance of an MDISInstrumentObjectType. It includes properties that represent the engineering units; the engineering units range and optionally the instrument range, see OPC 10000-8. The components of the MDISInstrumentObjectType Type have additional subcomponents which are defined inTable 29.

Table 29 – MDISInstrumentObjectType Type Additional Subcomponents

BrowsePath

References

NodeClass

BrowseName

DataType

TypeDefinition

Other

ProcessVariable

0:HasProperty

Variable

0:InstrumentRange

0:Range

0:PropertyType

O

ProcessVariable

0:HasProperty

Variable

0:EURange

0:Range

0:PropertyType

M

ProcessVariable

0:HasProperty

Variable

0:EngineeringUnits

0:EUInformation

0:PropertyType

M

 

The EUInformation DataType is defined in OPC 10000-8.

HHlimit – The instrument HH state is active

Hlimit – The instrument H state is active

Llimit – The instrument L state is active

LLlimit – The instrument LL state is active

HHSetPoint – Configuration of HHSetPoint which will set HHlimit be TRUE when the ProcessVariable value is greater than “set point value”. If this limit Variable exists on an object, but has not been configured, the HHSetPoint shall have a status code of Bad_ConfigurationError and Clients shall ignore the value. When the HHSetPoint has a Status of Bad_ConfigurationError, if the HHlimit exists, it shall have a status code of Bad_ConfigurationError and the value is ignored.

HSetPoint – Configuration of HSetPoint which will set Hlimit be TRUE when the ProcessVariable value is greater than “set point value”. If this limit Variable exists on an object, but has not been configured, the HSetPoint shall have a status code of Bad_ConfigurationError and Clients shall ignore the value. When the HSetPoint is ignored, if the Hlimit exists, it shall have a status code of Bad_ConfigurationError and the value is ignored.

LSetPoint – Configuration of LSetPoint which will set Llimit be TRUE when the ProcessVariable value is less than “set point value”. If this limit Variable exists on an object, but has not been configured, the LSetPoint shall have a status code of Bad_ConfigurationError and Clients shall ignore the value. When the LSetPoint is ignored, if the Llimit exists, it shall have a status code of Bad_ConfigurationError and the value is ignored.

LLSetPoint – Configuration of LLSetPoint which will set LLlimit be TRUE when the ProcessVariable value is less than “set point value”. If this limit Variable exists on an object, but has not been configured, the LLSetPoint shall have a status code of Bad_ConfigurationError and Clients shall ignore the value. When the LLSetPoint is ignored, if the LLlimit exists, it shall have a status code of Bad_ConfigurationError and the value is ignored.

The MDISInstrumentObjectType is a subtype of MDISBaseObjectType and inherit the FaultCode Variable. The MDISInstrumentObjectType defines the standard FaultCodes (for bits 0-15 as defined in 6.2.2) in Table 8. All subtypes of this the MDISInstrumentObjectType will inherit all FaultCodes defined in this table. Subtypes may define additional FaultCodes in their own table.

Table 30 – MDISInstrumentObjectType FaultCode Values

Value

Bit no.

Description

IOFault

0

Instrument has no usable value, there is an I/O fault.

The MDISDigitalInstrumentObjectType defines the standard WarningCodes (for bits 0-15 as defined in 6.2.2) in Table 9. All subtypes of this the MDISDigitalInstrumentObjectType will inherit all WarningCodes defined in this table. Subtypes may define additional WarningCodes in their own table.

Table 31 – MDISInstrumentObjectType WarningCode Values

Value

Bit No.

Description

SideAProblem

0

There is an issue with the A side of this instrument [note this only applies to instrument that are arbitrated]

SideBProblem

1

There is an issue with the B side of this instrument [note this only applies to instrument that are arbitrated]

Discrepancy

2

The values differ by more than is acceptable

OutOfRange

3

The value of the instrument is Out of range

Table 32 defines the structure of an MDISInstrumentOutObjectType. Any vendor specified properties that have been implemented within a project should be documented within a similar format and supplied to the DCS vendor. The addition of vendor specific properties will result in a subtype of the MDISInstrumentOutObjectType.

Table 32 – MDISInstrumentOutObjectType Definition

Attribute

Value

BrowseName

MDISInstrumentOutObjectType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the MDISInstrumentObjectType

0:HasComponent

Method

WriteValue

See 6.5.5

M

ConformanceUnits

MDIS Instrument Out Base

WriteValue – This Method allows a Client to change the value of ProcessVariable on an instance of MDISInstrumentOutObjectType. The Method will return any errors that occurred on setting the value. If the Instrument is disabled, an error Bad_InvalidState shall be returned. The Client shall verify that the ProcessVariable actually changed to confirm the update.

Instrument WriteValue Method is used to change the value of the ProcessVariable in an instance of MDISInstrumentOutObjectType. The Instrument WriteValue Method operation applies to the object in the subsea system. The value of the ProcessVariable value will only update once the subsea system has provided a new value. Some systems will be able to report any errors immediately others will only be able to report that the operation was not refused. Clients are expected to monitor the ProcessVariable and ensure that the operation completed successfully. If an error occurs after the Method has returned, a Fault flag shall be set and an appropriate FaultCode will be returned. The Fault (and FaultCode) will reset on the next successful Instrument WriteValue Method invocation.

Signature:

WriteValue (

[in] 0:Float Value);

Table 33 – WriteValue Method parameters

Argument

Description

Value

Float value Variable, that indicates the target state of the Variable

Method result codes are defined as part of the Call Service (see OPC 10000-4). They are described in Table 124 for ease of reference.

Comments

The WriteValue Method will result in a change the value of the ProcessVariable Variable. The Method will report if any error occurs while writing the value of the Object. Table 34 specifies the AddressSpace representation for the WriteValue

Table 34 – WriteValue Method AddressSpace Definition

Attribute

Value

BrowseName

WriteValue

References

Node Class

BrowseName

DataType

TypeDefinition

Other

0:HasProperty

Variable

0:InputArguments

0:Argument[]

0:PropertyType

M

ConformanceUnits

MDIS Instrument Out Base

Table 35 defines the structure of an MDISInstrumentArbitrationObjectType. Any vendor specified properties that have been implemented within a project should be documented within a similar format and supplied to the DCS vendor. The addition of vendor specific properties will result in a subtype of the MDISInstrumentArbitrationObjectType.

Table 35 – MDISInstrumentArbitrationObjectType Definition

Attribute

Value

BrowseName

MDISInstrumentArbitrationObjectType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the MDISInstrumentObjectType

0:HasComponent

Variable

SourceA

0:Float

0:BaseDataVariableType

M, RO

0:HasComponent

Variable

SourceB

0:Float

0:BaseDataVariableType

M, RO

0:HasComponent

Variable

ArbitrationMode

ArbitrationModeEnum

0:BaseDataVariableType

M, RO

0:HasProperty

Variable

DiscrepancySetPoint

0:Float

0:PropertyType

O, RW

0:HasComponent

Method

SetArbitrationMode

Defined in 6.3.7

O

ConformanceUnits

MDIS Instrument Arbitration Base

The MDISInstrumentArbitrationObjectType provides for the selection between two analog sources, SourceA and SourceB. The result of the arbitration is shown in the ProcessVariable. The result can be either an average, a selection of one source as default or forcing of one source. See the ArbitrationModeEnum for a complete list of possible modes.

SourceA – a Variable in engineering units that represents the value of the first source of a MDISInstrumentArbitrationObjectType. The EngineeringUnits and Range of the ProcessVariable apply to this value.

SourceB – a Variable in engineering units that represents the value of the first source of a MDISInstrumentArbitrationObjectType. The EngineeringUnits and Range of the ProcessVariable apply to this value.

ArbitrationMode – this enumeration identifies the current arbitration mode. For the complete list of arbitration modes, see section 8.1.10. [note: the selected mode might be different than the current mode reflected in this parameter, for example in the case of a failure the current mode might indicate SourceA even if Average was selected, due to a SourceB failure]

DiscrepancySetPoint – the value represents the maximum allow difference between the SourceA and SourceB values expressed as a percentage based on the full range of the instrument. This value can only be between 0 and 100. For example, if SourceA was 10.0 and SourceB was 20.0 and the instrument range was 0 to 200, the percentage would be 5%.

The MDISInstrumentArbitrationObjectType is a subtype of MDISInstrumentObjectType and inherits the FaultCode Variable. The MDISInstrumentArbitrationObjectType defines the standard FaultCodes (for bits 0-15 as defined in 6.2.2) in Table 36 (currently empty, no additional fault codes defined). All subtypes of this the MDISInstrumentArbitrationObjectType will inherit all FaultCodes defined in this table. Subtypes may define additional FaultCodes in their own table.

Table 36 – MDISInstrumentArbitrationObjectType FaultCode Values

Value

Bit no.

Description

The MDISInstrumentArbitrationObjectType defines the standard WarningCodes (for bits 0-15 as defined in 6.2.2) in Table 37 (currently empty, no additional warning codes defined). All subtypes of this the MDISInstrumentArbitrationObjectType will inherits all WarningCodes defined in this table. Subtypes may define additional WarningCodes in their own table.

Table 37 – MDISInstrumentArbitrationObjectType WarningCode Values

Value

Bit no.

Description