The following section details the generic MDISValveObjectTypestructure and defines the properties associated with it. This is in general a vendor and operator independent description, but all users of this MDISValveObjectTypecan add vendor specific data. The vendor specific data should be defined as part of a subtype of the MDISValveObjectTypedefined in this document. It is required that the subsea system is the Serverand host of the valve Object. The DCS based system is the Clientin the system. It is required that all interaction with the valve Objectis initiated by the Clientand is directed to the Server.

The valve Objectis a basic component of any subsea control system. Subsea and surface trees have a large variety of valve configurations and combinations of manual and / or actuated (hydraulic or pneumatic) valves. 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 15provides an overview of the MDISValveObjectTypeas defined by MDIS. The figure includes all items inherited from the MDISBaseObjectType. It illustrates that an interlock might have one or more Interlockvariables associated with it, or that they might not have an actual interlock associated.

image017.gif

Figure 15- Valve Object Overview

Table 28details the generic properties for the MDISValveObjectType. 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 MDISValveObjectType. When an MDISValveObjectType Instance is disabled the MDISBaseObjectType defaults are followed and only the OpenTimeDuration and CloseTimeDuration values will be available.

Table 28- MDISValveObjectType

Attribute

Value

BrowseName

MDISValveObjectType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

RW

Subtype of the MDISBaseObjectType

HasComponent

Variable

Position

ValvePositionEnum

BaseDataVariableType

Mandatory

R

HasComponent

Variable

CommandRejected

Boolean

BaseDataVariableType

Optional

R

HasComponent

Variable

SignatureRequestStatus

SignatureStatusEnum

BaseDataVariableType

Optional

R

HasComponent

Variable

LastCommand

CommandEnum

BaseDataVariableType

Optional

R

HasComponent

Variable

NonDefeatableOpenInterlock

Boolean

BaseDataVariableType

Optional

R

HasComponent

Variable

DefeatableOpenInterlock

Boolean

BaseDataVariableType

Optional

R

HasComponent

Variable

NonDefeatableCloseInterlock

Boolean

BaseDataVariableType

Optional

R

HasComponent

Variable

DefeatableCloseInterlock

Boolean

BaseDataVariableType

Optional

R

HasComponent

Method

Move

See 5.7.4

Mandatory

HasInterlock

Variable

<InterlockPlaceholder>

InterlockVariableType

OptionalPlaceholder

R

HasProperty

Variable

OpenTimeDuration

Duration

PropertyType

Optional

R

HasProperty

Variable

CloseTimeDuration

Duration

PropertyType

Optional

R

HasSignature

Object

<ValveSignature>

FileType

Optional

The following items describe status information from the valve:

  • SignatureRequestStatus– The collection of data required for a valve signature may take some time after the completion of a Movecommand. The SignatureRequestStatus Variableindicates the status of the current signature request (see 7.1.4for a description of the possible enumerations).
  • LastCommand– The enumeration reflects the last command sent to the equipment by the SPCS (see 7.1.5for a description of the possible enumerations).
  • Enabled– This Booleanreflects if the valve is available for control. If it is disabled (FALSE) than the valve will not act on any Movecommand and is not available from a functional point of view. The valve will still report any status information (CommandRejected). One of the cases for a disabled valve is when the valve is placed out of service.
  • Position– This enumeration provides information about the current position of the valve (see section 7.1.7for additional details).
  • CommandRejected– A flag that, if set to True, indicates that the valve has rejected the last command issued to it. The command could be rejected for a number of reasons. Possible reasons for rejecting a command include:
  • Loss of subsea communication reported by the SPCS.
  • An active interlock.
  • The valve is in the disabled state.

For any of the following Variables, if they are true, there shall be at least one instance of an InterlockVariableTypethat describes the active interlock.

The following items are related to valve control: These items allow information to flow from the DCS to the SPCS. All commands from the DCS to SPCS may require access controls to ensure that only appropriate personnel initiate them.

  • Move – This Methodcauses the valve to open or close (see 5.7.4for additional details).

<InterlockPlaceholder> –The number of interlock Variableswill change based on the project and even valve instance. The Variablesshall be of InterlockVariableTypeor a subtype of it. The interlock contains an InterlockFor Referenceto one of the previously described flags. Clientscan use this information to categorise the interlocks appropriately. Figure 16provides an example of how this interlock Variableis used and could be deployed.

image018.gif

Figure 16- Interlock example

Note: in OPC UA it is allowed to have a Nodewhich is the target of multiple HasComponent References, this allows a single interlock to be shared between multiple Objects; such as a low pressure interlock that maybe shared by all of the valves and chokes in a system.

The following items describe configuration related items:

  • OpenTimeDuration– Estimated max time to travel to open position, used for DCS systems to indicate a move fail condition if time is exceeded. Time is provided in milliseconds. The OpenTimeDurationcan be used for any kind of valve (hydraulic, electric, etc.). [Note: this time is an estimate and Clientsmay need to allow for additional delays in transmitting and receiving any move commands].
  • CloseTimeDuration- Estimated max time to travel to close position, used for DCS systems to indicate a move fail condition if time is exceeded. Time is provided in milliseconds. The CloseTimeDurationcan be used for any kind of valve (hydraulic, electric, etc.) [Note: this time is an estimate and Clientsmay need to allow for additional delays in transmitting and receiving any Move commands].
  • <ValveSignature> - The reference shall point to an instance of FileType, where the file contains valve signature information. The name of this object is project or vendor specific, but it should be related to the name of the instance of the ValveObjectType.The name shall include a timestamp. The FileType ObjectType (defined in Part 5 – Information Model) includes two properties (illustrated below), for all MDIS instances both of these properties shall have the value False. For additional detail see 5.10.3.

HasProperty

Variable

Writable

Boolean

PropertyType

Mandatory

HasProperty

Variable

UserWritable

Boolean

PropertyType

Mandatory

Vendor specific subtypes of this object type are allowed. They may add additional vendor specific information or may change some Optionalitems to Mandatory.

Move Method isused to open or close a valve.

Method Declaration:

Move(

[in] Direction CommandEnum,

[in] OverrideInterlocks Boolean,

[in] SEM SEMEnum,

[in] Signature Boolean,

[in] ShutdownRequest Boolean

);

Table 29- Move Arguments

Argument

Description

Direction

The enumeration indicates whether the command is to open the valve or to close the valve

OverrideInterlocks

Boolean indicating if the open or close command should override any defeatable interlocks

SEM

The enumeration indicates which SEM to send the command to.

Signature

Boolean indicating if a profile /signature should be generated by this move command request. If the optional Variable SignatureRequestStatusis not provided on the Object, this parameter is ignored by the Server.

ShutdownRequest

Boolean indicates that this command is part of a shutdown sequence.

Methodresult codes are defined as part of the Call Service(see OPC UA Services Part 4 – Services specification). They are described in Table 94for ease of reference.

Comments:

The Move Methodinitiates a move operation. Parameters include opening or closing of the valve, overriding of any interlocks, the SEM selection to use for the command, if a profile / signature is being requested for this move operation or if a shutdown is being requested. The Methodwill complete when the command has been accepted. If the command has not been accepted by the Server, then the Methodreturns an error indicating the operation could not be performed. In the case when the Movecommand is accepted by the Server, the move operation may or may not be complete at the time the Methodreturns to the Client.Therefore,the Clientmust monitor the Positionof the valve to determine when the Movecommand actually finishes.

The OverrideInterlocks, SEM, Signatureand Shutdownare optional parameters, but OPC UA Methodsdo not allow for optional parameters. These parameters must always be provided. On a Serverbasis the parameter may be configured to not be utilised. If a Serveris configured to not utilise a parameter, this is because the functionality is not required.

Table 30specifies the AddressSpacerepresentation for the Move Method.

Table 30- Move Method AddressSpace Definition

Attribute

Value

BrowseName

Move

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

HasProperty

Variable

InputArguments

Argument[]

PropertyType

Mandatory