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.

image015.gif

Figure 13 - MDISInstrumentObjectType & MDISInstrumentOutObjectType

Table 15 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 15 - MDISInstrumentObjectType

Attribute

Value

BrowseName

MDISInstrumentObjectType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

RW

Subtype of the MDISBaseObjectType (defined in 5.1.1)

HasComponent

Variable

ProcessVariable

Float

AnalogItemType (see Part 8 – Data Access)

Mandatory

R

HasComponent

Variable

HHlimit

Boolean

BaseDataVariableType

Optional

R

HasComponent

Variable

Hlimit

Boolean

BaseDataVariableType

Optional

R

HasComponent

Variable

Llimit

Boolean

BaseDataVariableType

Optional

R

HasComponent

Variable

LLlimit

Boolean

BaseDataVariableType

Optional

R

HasProperty

Variable

HHSetPoint

Float

PropertyType

Optional

RW

HasProperty

Variable

HSetPoint

Float

PropertyType

Optional

RW

HasProperty

Variable

LSetPoint

Float

PropertyType

Optional

RW

HasProperty

Variable

LLSetPoint

Float

PropertyType

Optional

RW

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 Table 16 for an illustration, for actual definition see AnalogItemType in OPC UA Part 8. Both the engineering units and engineering units’ range are required.

Table 16 AnalogItemType definition

Attribute

Value

BrowseName

AnalogItemType

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

HasProperty

Variable

InstrumentRange

Range

PropertyType

Optional

HasProperty

Variable

EURange

Range

PropertyType

Mandatory

HasProperty

Variable

EngineeringUnits

EUInformation

PropertyType

Mandatory

The EUInformation DataType is defined in Part 8 – Data Access

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.

Table 17 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 17 - MDISInstrumentOutObjectType

Attribute

Value

BrowseName

MDISInstrumentOutObjectType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

RW

Subtype of the MDISInstrumentObjectType

HasComponent

Method

WriteValue

See 5.5.5

Mandatory

WriteValue – This Method allows a Client to change the value of ProcessVariable on an instance of the 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 the MDISInstrumentOutObjectType. The Instrument WriteValue Method operation applies to the object in the subsea system. 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.

Method Declaration

WriteValue (

[in] Value Float

);

Table 18 – Instrument 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 UA Services Part 4 – Services specification). They are described in Table 94 for ease of reference.

Comments

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

Table 19 – Instrument WriteValue Method AddressSpace Definition

Attribute

Value

BrowseName

Value

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

HasProperty

Variable

InputArguments

Argument[]

PropertyType

Mandatory