This Method shall acquire Locks required by the ControlGroup in the ListToRestrict and ListToBlock. If acquiring any Lock fails, all Locks shall be released, and the appropriate LockStatus shall be returned. If all required Locks can be acquired, the Method shall set the IsControlled flag and create the Controls Reference.

It is recommended that this Method be restricted to Client connections that have the well-known Role ConnectionAdmin as defined in Clause 5.9.

EstablishControl shall set Lock LockingClient to the LockContext Argument.

The signature of this Method is specified below; the arguments are defined in Table 62.

Signature

EstablishControl (

[in] 0:String LockContext,

[out] 0:Int32 LockStatus

);

Table 62 – EstablishControl Method Arguments

Argument

Description

LockContext

A string used to provide context information about the lock-owner. It may be the NodeId (in string representation) of a ConnectionEndpoint or the ApplicationUri of a Client connection as provided in the CreateSession Service Call (see OPC 10000-4). If this parameter is a null string, it shall default to the ApplicationUri of the Client connection initiating this command.

LockStatus

0 – OK

-1 – E_AlreadyLocked – An element is already locked; this might be an entire Lock, or it might be a single variable in one of the lists.

-2 – E_Invalid – the element cannot be locked

The possible Method result codes are formally defined in Table 63.

Table 63 – EstablishControl Method result codes

ResultCode

Description

Bad_UserAccessDenied

The caller is not allowed to establish control on the ControlGroup.

The EstablishControl Method representation in the AddressSpace is formally defined in Table 64.

Table 64 – EstablishControl Method AddressSpace definition

Attribute

Value

BrowseName

3:EstablishControl

References

Node Class

BrowseName

DataType

TypeDefinition

Other

0:HasProperty

Variable

0:InputArguments

Argument[]

0:PropertyType

Mandatory

0:HasProperty

Variable

0:OutputArguments

Argument[]

0:PropertyType

Mandatory

ConformanceUnits

UAFX IFunctionalEntity ControlGroups