The presented additional terms for the WoT Thing Description of this Companion Specification is identified by the following URI:
http://opcfoundation.org/UA/WoT-Binding/
In this specification, the prefix uav is used and associated to this namespace.
|
|
|
|
|
||||
|
Vocabulary term |
Description |
Assignment |
Type |
||||
|
uav:id |
NodeId value as defined in OPC 10000-6: UA Part 6: Mappings (5.1.12 QualifiedName, NodeId and ExpandedNodeId String Encoding). |
required |
string |
||||
The OPC UA binding does not need mandatory UA specific forms terms, the default forms terms from WoT Thing Description can be reused. Associated NodeId information for an interaction affordance (properties or actions) are reflected by the corresponding href as specified in 6.2..
The UA services are expressed by the TD op term and its corresponding values. In the following, the op values will correspond the following OPC UA Services:
|
readproperty |
UA Service Read |
|
writeproperty |
UA Service Write |
|
observeproperty |
UA Service Monitor |
|
invokeaction |
UA Service Call |
If the default serialization of the OPC UA server is used, the contentType should be assigned with the value "application/octet-stream".
Optional, following term can be used within the WoT TD forms container:
|
Vocabulary term |
Description |
Assignment |
Type |
|
uav:browsePath |
Provides information about the path of a UA node as string, following the guideline of OPC UA Part 4 (v104) in Chapter A.2, starting from the root node of an OPC UA address space. E.g., "/Root/Object/1:Machine/1:Pressure" |
optional |
String |
The following table gives an overview of the additional terms that can be used within a WoT Thing Description.
|
Vocabulary term |
Description |
Assignment |
Type |
|
uav:object |
Semantic annotation for @type of the TD root level to express that this TD instance represent a UA Object from the top level. |
optional |
- |
|
uav:objectType |
Semantic annotation for @type at root level to express that this instance represent a UA ObjectType (in TD context, this is called Thing Model (TM))Note: This annotation is only applicable in a Thing Model definition. |
optional |
- |
|
uav:variable |
Semantic annotation for @type of a TD property to associate a UA Variable. |
optional |
- |
|
uav:variableType |
Semantic annotation for @type of a Thing Model property to associate a UA Variable Type.Note: This annotation is only applicable in a Thing Model definition. |
optional |
- |
|
uav:method |
Semantic annotation for @type of a TD action to associate a UA Method. |
optional |
- |
|
uav:hasComponent |
Term to express there is one or more has-child relationship. The value entry is a nodeId of the child node. Note: uav:hasComponent is equivalent to <Reference ReferenceType="HasComponent" IsForward="true"> |
optional |
Array of String |
|
uav:componentOf |
Term to express there is one or more is-child-of relationship. The value entry is a nodeId of the parent node. Note: uav:componentOf is equivalent to <Reference ReferenceType="HasComponent" IsForward="false"> |
optional |
Array of String |
|
uav:browseName |
Provides the origin browse name of the UA node. The uav:browseName can be used at the top level to provide the browse name of the UA Object or UA ObjectType, and within the property or action level to give the browse name of the UA variable or UA method respectively. |
optional |
String |
|
uav:mapToNodeId |
This term can be used within a property definition to express that the associated runtime datapoint can be mapped to a (external) target OPC UA node (e.g. UA variable) with the corresponding NodeId.This term can be not used at the forms level. See Section 8.2 for example usage. |
optional |
string |
|
uav:mapToType |
This term can be used within a property definition to express that the associated runtime datapoint can be mapped to a (external) target OPC UA type with the corresponding NodeId.This term can be not used at the forms level. See Section 8.2 for example usage. |
optional |
string |
|
uav:mapByFieldPath |
This term can be only used with the uav:mapToType term. In the case that the target type of uav:mapToType is complex (e.g. based on BaseType 0:Structure), a specific field name can be addressed within this complex type definition to which the runtime data can be mapped to. See Section 8.2 for example usage. |
optional |
string |
Typically, OPC UA server uses namespaces from the OCP UA core, Companion Specifications and application specific namespaces. If it should be evident in the TD that different namepaces are used (e.g., visible by the uav:browseName or uav:browsePath terms), then these should be specified in the @context of the TD. The associated namespace index id should be associated as prefix value in the TD.
Example:
Lets assume there are namespaces used in a OPC UA server as described in the following nodeset:
If the Thing Description (TD) utilizes definitions from these namespaces, they should be specified within the TD @context with the corresponding namespace index as a prefix, as illustrated here: