Table 38 defines the structure of an MDISChokeObjectType. 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 MDISChokeObjectType. When an MDISChokeObjectType Instance is disabled the MDISBaseObjectType defaults are followed and only the StepDurationOpen, StepDurationClose and TotalSteps values will be available.

Table 38 – MDISChokeObjectType Definition

Attribute

Value

BrowseName

MDISChokeObjectType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the MDISBaseObjectType

0:HasComponent

Variable

CalculatedPosition

0:Float

0:BaseDataVariableType

M, RO

0:HasComponent

Variable

SetCalculatedPositionStatus

SetCalculatedPositionEnum

0:BaseDataVariableType

O, RO

0:HasComponent

Variable

PositionInSteps

0:Int16

0:BaseDataVariableType

O, RO

0:HasComponent

Variable

Moving

ChokeMoveEnum

0:BaseDataVariableType

M, RO

0:HasComponent

Variable

CommandRejected

0:Boolean

0:BaseDataVariableType

O, RO

0:HasComponent

Method

Move

See 6.6.4

M

0:HasComponent

Method

Step

See 6.6.5

O

0:HasComponent

Method

Abort

See 6.6.6

M

0:HasComponent

Method

SetCalculatedPosition

See 6.6.7

M

0:HasComponent

Variable

NonDefeatableOpenInterlock

0:Boolean

0:BaseDataVariableType

O, RO

0:HasComponent

Variable

DefeatableOpenInterlock

0:Boolean

0:BaseDataVariableType

O, RO

0:HasComponent

Variable

NonDefeatableCloseInterlock

0:Boolean

0:BaseDataVariableType

O, RO

0:HasComponent

Variable

DefeatableCloseInterlock

0:Boolean

0:BaseDataVariableType

O, RO

0:HasProperty

Variable

StepDurationOpen

0:Duration

0:PropertyType

O, RO

0:HasProperty

Variable

StepDurationClose

0:Duration

0:PropertyType

O, RO

0:HasProperty

Variable

TotalSteps

0:UInt16

0:PropertyType

O, RO

HasInterlock

Variable

<InterlockPlaceholder>

0:Boolean

InterlockVariableType

OP

ConformanceUnits

MDIS Choke Base

CalculatedPosition – A floating point number that represents the estimated percent open of the choke. This value can be updated using the SetCalculatedPosition Method.

SetCalculatedPositionStatus – an enumeration that reflect the status of a SetCalculatedPosition Command. This variable is present if the SetCalculatedPosition command can return asynchronously.

PositionInSteps – An Int16 that represents position in steps for the choke.

CommandRejected –– A flag that, if set to True, indicates that the choke 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 choke is in the disabled state

Enabled – This Boolean reflects if the choke is available for control. The behaviour follows the MDISBaseObjectType.

Moving – An enumeration indicating the confirmed operation of the choke, (confirmed by SPCS Vendor). Possible status for a choke is moving and stopped.

Move – This Method allows an operator to increase or decrease the size of the opening in the choke. This command moves the choke to the percent value provided as part of the command.

Step – This Method allows an operator to increase or decrease the size of the opening in the choke. This command moves the choke the number of steps provided as part of the command.

Abort – This Method allows an operator to cancel any currently active move or step command.

SetCalculatedPosition – This Method is used to calibrate the CalculatedPosition. It can only be called when the choke is not moving.

EnableDisable – The choke, when disabled, places a non-defeatable interlock set on Move and Step functionality, in addition to the functionality described in the MDISBaseObjectType.

StepDurationOpen – SPCS open step duration period. This is the time in milliseconds for the choke to open one step.

StepDurationClose – SPCS close step duration period. This is the time in milliseconds for the choke to close one step.

TotalSteps – Total number of steps is the max steps of a choke.

<InterlockPlaceholder > – The number of interlock Variables will change based on the project and even choke instance. The Variables shall be of InterlockVariableType or a subtype of it. They will be referenced by a HasInterlock Reference and will contain an InterlockFor Reference. Clients can use this information to categorise the interlocks appropriately.

The following Variables indicate that an interlock is set (TRUE) or is not set (FALSE). The Variable shall be the target of an InterlockFor Reference from an instance of an InterlockVariableType that describes the actual interlock.

NonDefeatableOpenInterlock – The open choke command is interlocked and cannot be overridden.

DefeatableOpenInterlock – The open choke command is interlocked and can be overridden.

NonDefeatableCloseInterlock – The close choke command is interlocked and cannot be overridden.

DefeatableCloseInterlock – The close choke command is interlocked and can be overridden.

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

Table 39 – MDISChokeObjectType FaultCode Values

Value

Bit no.

Description

FailedToMove

0

The Choke failed to move in response to a command.

CommunicationFault

1

Not possible to operate the choke.

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

Table 40 – MDISChokeObjectType WarningCode Values

Value

Bit no.

Description

SideAProblem

0

There is an issue with the A side of the choke.

SideBProblem

1

There is an issue with the B side of the choke.

Discrepancy

2

There is a discrepancy between the calculated position and the measured position.

UncommandedChange

3

The choke position changed without a command.