To provide links to digital records, the ObjectType DocumentationLinksType is introduced, which is deployed as AddIn on Objects representing assets. The AddIn serves as entry point to Variables linking to digital records managed outside the Server. The Variable contains a URI, which is typically a URL. Vendors might add additional Properties defining meta data of the linked document, e.g. type of file or size. In addition, it optionally provides the capabilities to add and remove editable links to user-defined documents like operator’s handbooks.

In Figure 6, an example of using the DocumentationLinks AddIn is given.

image009.png

Figure 6 – Example of the DocumentationLinks AddIn

Instead of providing the optional Methods to add and remove links, a server not capable of the dynamics in its AddressSpace might also just provide some writable Variables that the user can edit and thus manage its links.

The DocumentationLinksType is an AddIn and should be applied to Objects or ObjectTypes representing Assets. It is formally defined in Table 29.

Table 29 – DocumentationLinksType Definition

Attribute

Value

BrowseName

DocumentationLinksType

IsAbstract

False

Description

AddIn to link documentation provided by the manufacturer and / or end-user.

References

NodeClass

BrowseName

DataType

TypeDefinition

Other

Subtype of the 0:BaseObjectType Type defined in OPC 10000-5

0:HasProperty

Variable

0:DefaultInstanceBrowseName

0:QualifiedName

PropertyType

0:HasComponent

Variable

<Link>

0:UriString

BaseDataVariableType

OP

0:HasComponent

Method

AddLink

O

0:HasComponent

Method

RemoveLink

O

Conformance Units

AMB DocumentationLinks Base

The Property 0:DefaultInstanceBrowseName defines the default BrowseName of instances of this ObjectType.

The <Link> Variable represents links provided by instances of this type.

The components of the DocumentationLinksType have additional Attributes defined in Table 30.

Table 30 – DocumentationLinksType Attribute values for child Nodes

BrowsePath

Value Attribute

Description Attribute

0:DefaultInstanceBrowseName

DocumentationLinks

<Link>

Represents links to externally managed documentation, typically URLs.

AddLink

Method to add an end-user specific link that is stored persistently in the server.

RemoveLink

Method to remove an end-user specific link that is managed in the server.

This Method provides the capability to persistently add a link to an externally managed resource by adding a Variable according to the input arguments with a HasComponent Reference to the Object the Method is called on. The server shall manage the added link persistently, i.e., if the Method was executed successful, the Variable representing the link shall be persistent and available after restart of the Server. It might disappear after resetting or reconfiguring the Server or after calling the RemoveLink Method. The Value Attribute of the created Node should be writable, so the end-user can change the URI. In addition, the BrowseName, DisplayName, and Description might be writable. Servers might restrict the execution of this Method as well as writing the Attributes to specific users / roles.

The signature of this Method is specified below. Table 31 and Table 32 specify the Arguments and AddressSpace representation, respectively.

Signature

AddLink (

[in] 0:UriString LinkToExternalSource,

[in] 0:QualifiedName BrowseName,

[in] 0:LocalizedText DisplayName,

[in] 0:LocalizedText Description,

[out] 0:NodeId LinkVariable);

Table 31 – AddLink Method Arguments

Argument

Description

LinkToExternalSource

Link to an external source. The server might or might not check if a correct URI is provided, or if the URI is available/reachable.

BrowseName

The BrowseName of the new created Node. Method fails if a Variable with the same BrowseName already exists.

DisplayName

The DisplayName of the new created Node. If the server supports multiple locales, and the Client wants to provide more than one locale, the Write operation on the Variable shall be used.

Description

The Description of the new created Node. If the server supports multiple locales, and the Client wants to provide more than one locale, the Write operation on the Variable shall be used.

LinkVariable

The NodeId of the newly created Variable.

Method Result Codes (defined in Call Service)

Result Code

Description

Bad_UserAccessDenied

See OPC 10000-4 for a general description.

Bad_InvalidArgument

See OPC 10000-4 for a general description.

Table 32 – AddLink Method AddressSpace definition

Attribute

Value

BrowseName

AddLink

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

0:InputArguments

0:Argument[]

0:PropertyType

0:Mandatory

0:HasProperty

Variable

0:OutputArguments

0:Argument[]

0:PropertyType

0:Mandatory

Conformance Units

AMB DocumentationLinks Base

This Method provides the capability to remove a Variable representing a link. The Method shall only succeed when the Variable to be deleted is referenced from the Object the Method is called on. Servers might restrict the execution of this Method to specific users / roles. Servers will typically reject the deletion of Nodes not added with the AddLink Method.

The signature of this Method is specified below. Table 33 and Table 34 specify the Arguments and AddressSpace representation, respectively.

Signature

RemoveLink (

[in] 0:NodeId VariableToBeDeleted

);

Table 33 – RemoveLink Method Arguments

Argument

Description

VariableToBeDeleted

NodeId of the Variable containing a link, that should be deleted. Variable shall be referenced from the Object with a HasComponent Reference where the Method is called on.

Method Result Codes (defined in Call Service)

Result Code

Description

Bad_UserAccessDenied

See OPC 10000-4 for a general description.

Bad_InvalidArgument

See OPC 10000-4 for a general description.

Table 34 – RemoveLink Method AddressSpace definition

Attribute

Value

BrowseName

RemoveLink

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

0:InputArguments

0:Argument[]

0:PropertyType

0:Mandatory

Conformance Units

AMB DocumentationLinks Base