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

The following section details the MDIS generic properties for the MDISDiscreteInstrumentObjectType. 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 11 provides an overview of the MDISDiscreteInstrumentObjectType as defined by MDIS, including some nested types. This figure includes all items that are inherited from the MDISBaseObjectType.

image015.png

Figure 11 – MDISDiscreteInstrumentObjectType & MDISDiscreteOutObjectType & MDISDiscreteArbitrationObjectType

Table 7 defines the structure of an MDISDiscreteInstrumentObjectType. 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 MDISDiscreteInstrumentObjectType.

Table 7 – MDISDiscreteInstrumentObjectType Definition

Attribute

Value

BrowseName

MDISDiscreteInstrumentObjectType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the MDISBaseObjectType (see section 6.1.1)

0:HasComponent

Variable

State

0:UInt32

0:BaseDataVariableType

M, RO

0:HasSubtype

ObjectType

MDISDiscreteOutObjectType

0:HasSubtype

ObjectType

MDISDiscreteArbitrationObjectType

ConformanceUnits

MDIS Discrete Instrument Base

State – The state of the instance of MDISDiscreteInstrumentObjectType. This state is represented as a UInt32.

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

Table 8 – MDISDiscreteInstrumentObjectType FaultCode Values

Value

Bit no.

Description

IOFault

0

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

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

Table 9 – MDISDiscreteInstrumentObjectType 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

Table 10 defines the structure of an MDISDiscreteOutObjectType. 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 MDISDiscreteOutObjectType.

Table 10 – MDISDiscreteOutObjectType Definition

Attribute

Value

BrowseName

MDISDiscreteOutObjectType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the MDISDiscreteInstrumentObjectType (see section 6.1.2)

0:HasComponent

Method

WriteValue

See 6.3.5

M

ConformanceUnits

MDIS Discrete Out Base

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

WriteValue Method (defined in Table 11) is used to change the value of the State Variable in an instance of MDISDiscreteOutObjectType. The WriteValue operation applies to the object in the subsea system. The value of the State Variable shall only be updated once the subsea system has provided a new value. For Objects that are used as a command, the value of the State Variable shall be updated directly to the value provided by the State parameter of the Method. 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 State and ensure that the operation completed. 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 WriteValue Method invocation.

Signature:

WriteValue (

[in] 0:UInt32 State);

Table 11 – WriteValue Method parameters

Argument

Description

State

UInt32 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 State Variable. The Method will report if any error occurs while writing the state of the Object. Table 12 specifies the AddressSpace representation for the WriteValue Method.

Table 12 – WriteValue Method AddressSpace Definition

Attribute

Value

BrowseName

WriteValue

References

Node Class

BrowseName

DataType

TypeDefinition

Other

0:HasProperty

Variable

InputArguments

Argument[]

0:PropertyType

M

ConformanceUnits

MDIS Discrete Out Base

Table 13 defines the structure of an MDISDiscreteArbitrationObjectType. 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 MDISDiscreteArbitrationObjectType.

Table 13 – MDISDiscreteArbitrationObjectType Definition

Attribute

Value

BrowseName

MDISDiscreteArbitrationObjectType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the MDISDiscreteInstrumentObjectType

0:HasComponent

Variable

SourceA

0:UInt32

0:BaseDataVariableType

M, RO

0:HasComponent

Variable

SourceB

0:UInt32

0:BaseDataVariableType

M, RO

0:HasComponent

Variable

ArbitrationMode

ArbitrationModeEnum

0:BaseDataVariableType

M, RO

0:HasComponent

Method

SetArbitrationMode

Defined in section 6.3.7

O

ConformanceUnits

MDIS Discrete Arbitration

The MDISDiscreteArbitrationObjectType will select which instrument is healthy and report it. The arbitration object selects between the two sources, SourceA and SourceB base on the source and the selected ArbitrationMode. The result of the arbitration is shown in the State. The result can be either a selection of one source as default or forcing of one source (see 8.1.10 for additional details).

SourceA – a Variable that represents the value of the first source of a MDISDiscreteArbitrationObjectType.

SourceB – a Variable that represents the value of the second source of a MDISDiscreteArbitrationObjectType

ArbitrationMode – This enumeration provides information about the ArbitrationMode that is currently used (see section 8.1.10). The Average enumeration value does not apply to this arbitration ObjectType.

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

Table 14 – MDISDiscreteArbitrationObjectType FaultCode Values

Value

Bit no.

Description

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

Table 15 – MDISDiscreteArbitrationObjectType WarningCode Values

Value

Bit no.

Description

SetArbitrationMode Method is used to change the arbitration strategy of the arbitration Object. If the mode cannot be changed the method shall return an error. This description applies to the following arbitration objects (MDISDigitalArbitrationObjectType, MDISDiscreteArbitrationObjectType, MDISInstrumentArbitrationObjectType).

Signature:

SetArbitrationMode (

[in] ArbitrationModeEnum ArbitrationMode);

Table 16 – SetArbitrationMode Method parameters

Argument

Description

ArbitrationMode

ArbitrationMode enumeration value Variable, that defines the new arbitration mode, see 8.1.10

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. The following specific Method result codes are defined in Table 17.

Table 17 – SetArbitrationMode Method result codes

ResultCode

Description

Bad_NotSupported

The requested arbitration mode is not supported.

Comments

The SetArbitrationMode Method will change the arbitration strategy. The Method will report if any error which occur while writing the value of the Object. Table 18 specifies the AddressSpace representation for the SetArbitrationMode Method.

Table 18 – SetArbitrationMode Method AddressSpace Definition

Attribute

Value

BrowseName

SetArbitrationMode

References

Node Class

BrowseName

DataType

TypeDefinition

Other

0:HasProperty

Variable

0:InputArguments

0:Argument[]

0:PropertyType

M

ConformanceUnits

MDIS Discrete Arbitration

MDIS Digital Arbitration

MDIS Instrument Arbitration Base