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.
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 |
||||
SetArbitrationMode |
|||||
References |
Node Class |
DataType |
TypeDefinition |
Other |
|
0:HasProperty |
Variable |
0:InputArguments |
0:Argument[] |
0:PropertyType |
M |
ConformanceUnits |
|||||
MDIS Discrete Arbitration |
|||||
MDIS Digital Arbitration |
|||||
MDIS Instrument Arbitration Base |