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.
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 |
||||
WriteValue |
|||||
References |
Node Class |
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 |
|
|
|