7 OPC UA VariableTypes
7.1 RelativeValueType
The RelativeValueType is a subtype of the BaseDataVariableType. It is used to inform how values, which are represented by this type, behave, or reference to another value representation.
It is formally defined in Table 17.
| Attribute | Value | |||||
| BrowseName | RelativeValueType | |||||
| IsAbstract | True | |||||
| ValueRank | -2 (Any) | |||||
| DataType | BaseDataType | |||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Other | |
|---|---|---|---|---|---|---|
| Subtype of the BaseDataVariableType defined in OPC 10000-5 | ||||||
| 0:HasComponent | Variable | Base | 0:NodeId | 0:BaseDataVariableType | O | |
To express if the Value is constant and does not change, the Constant bit of the Attribute AccessLevelEx of the RelativeValueType Variable shall be set to True.
To express if the base (on which the value is based) is constant, the Constant bit of the Attribute AccessLevelEx of the Variable Base shall be set to True.
Figure 6 shows an example usage to the RelativeValueType and the Variable Base.

7.2 SpatialLocationType
The SpatialLocationType is a subtype of the RelativeValueType. It is used for information about position or orientation. A concrete subtype of this abstract type shall be defined for use with the Relative Spatial Location AddIns, e.g., the CartesianFrameAngleOrientationType described in 7.3.
It is formally defined in Table 18.
| Attribute | Value | |||||
| BrowseName | SpatialLocationType | |||||
| IsAbstract | True | |||||
| ValueRank | -2 (Any) | |||||
| DataType | BaseDataType | |||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Other | |
|---|---|---|---|---|---|---|
| Subtype of the RelativeValueType defined in 7.1 | ||||||
| 0:HasComponent | Variable | Position | 0:BaseDataType | 0:BaseDataVariableType | O | |
| 0:HasComponent | Variable | Orientation | 0:BaseDataType | 0:BaseDataVariableType | O | |
| 0:HasComponent | Variable | Base | 0:NodeId | 0:BaseDataVariableType | M | |
The Variable Position informs about a position. Note that the TypeDefinition is not defined in detail, so it is assumed to define, while subtyping from SpatialLocationType, specific type definitions to provide information about a position e.g., for cartesian, spherical or cylindrical positions.
The Variable Orientation informs about an orientation typically with respect to a position. In mathethamics, orientation defines a geometric notion. For example, in two dimensions it allows to say when a cycle goes clockwise or counterclockwise, or in three dimensions when a figure is left-handed or right-handed. Note that the TypeDefinition is not defined in detail, so it is assumed to define, while subtyping from SpatialLocationType, specific type definitions to provide information about orientation.
The mandatory Variable Base is used to point via NodeId to the location, where the described location is based on.
7.3 CartesianFrameAngleOrientationType
The CartesianFrameAngleOrientationType is a subtype of the SpatialLocationType. It is used for information about frames in 3D space using position representation by cartesian coordinates and orientation representation by Euler angles defined in Annex B.
The CartesianFrameAngleOrientationType is similar as the 3DFrameType, introduced with Amendment 11 and uses the same DataType definition for the position.
For a unique mathematic definition of the orientation calculation the RpyOrientationType is provided.
It is recommended to use this type, instead of 3DFrameType, because of the generic approach of RelativeValueType and SpatialLocationType.
It is formally defined in Table 19.
| Attribute | Value | |||||
| BrowseName | CartesianFrameAngleOrientationType | |||||
| IsAbstract | False | |||||
| ValueRank | −1 (−1 = Scalar) | |||||
| DataType | 3DFrame | |||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Other | |
|---|---|---|---|---|---|---|
| Subtype of the SpatialLocationType defined in 7.2 | ||||||
| 0:HasComponent | Variable | Position | 0:3DCartesianCoordinates | 0:3DCartesianCoordinatesType | M | |
| 0:HasComponent | Variable | Orientation | 0:3DOrientation | RpyOrientationType | M | |
| ConformanceUnits | ||||||
|---|---|---|---|---|---|---|
| CartesianFrameAngleOrientationType |
The Variable Position is defined as 3DCartesianCoordinatesType, which includes the lengths X, Y and Z, to represent a three-dimensional cartesian position. It shall apply to the right-handed coordinate system definition defined in Annex B.
The Variable Orientation is defined as RpyOrientationType, defined in 7.4, which includes the angles A, B and C to represent the rotations about the axes of the cartesian coordinate system. It shall apply to the mathematic definition described in Annex B.
The components of the CartesianFrameAngleOrientationType have additional subcomponents which are defined in Table 20.
| BrowsePath | References | NodeClass | BrowseName | DataType | TypeDefinition | Others |
| Position | 0:HasProperty | Variable | 0:LengthUnit | 0:EUInformation | PropertyType | M |
| Orientation | 0:HasProperty | Variable | 0:AngleUnit | 0:EUInformation | PropertyType | M |
7.4 RpyOrientationType
The RpyOrientationType is a subtype of the 0:OrientationType. It is used for information about the orientation of coordinate systems in three-dimensional space using Euler angles uniquely defined in Annex B by the roll-pitch-yaw definition (intrinsic rotations z-y′-x″).
It is formally defined in Table 21.
| Attribute | Value | |||||
| BrowseName | RpyOrientationType | |||||
| IsAbstract | False | |||||
| ValueRank | −1 (−1 = Scalar) | |||||
| DataType | 3DOrientation | |||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Other | |
|---|---|---|---|---|---|---|
| Subtype of the OrientationType defined in OPC 10000-5 | ||||||
| 0:HasComponent | Variable | A | 0:Double | 0:BaseDataVariableType | M | |
| 0:HasComponent | Variable | B | 0:Double | 0:BaseDataVariableType | M | |
| 0:HasComponent | Variable | C | 0:Double | 0:BaseDataVariableType | M | |
| ConformanceUnits | ||||||
|---|---|---|---|---|---|---|
| CartesianFrameAngleOrientationType |