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.

Table 17 – RelativeValueType Definition
Attribute Value
BrowseNameRelativeValueType
IsAbstractTrue
ValueRank-2 (Any)
DataTypeBaseDataType
References NodeClass BrowseName DataType TypeDefinition Other
Subtype of the BaseDataVariableType defined in OPC 10000-5
0:HasComponentVariableBase 0:NodeId0:BaseDataVariableTypeO

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.

Figure 6 – Example of RelativeValueType usage

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.

Table 18 – SpatialLocationType Definition
Attribute Value
BrowseNameSpatialLocationType
IsAbstractTrue
ValueRank-2 (Any)
DataTypeBaseDataType
References NodeClass BrowseName DataType TypeDefinition Other
Subtype of the RelativeValueType defined in 7.1
0:HasComponentVariablePosition0:BaseDataType0:BaseDataVariableTypeO
0:HasComponentVariableOrientation0:BaseDataType0:BaseDataVariableTypeO
0:HasComponentVariableBase0:NodeId0:BaseDataVariableTypeM

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.

Table 19 – CartesianFrameAngleOrientationType Definition
Attribute Value
BrowseNameCartesianFrameAngleOrientationType
IsAbstractFalse
ValueRank−1 (−1 = Scalar)
DataType3DFrame
References NodeClass BrowseName DataType TypeDefinition Other
Subtype of the SpatialLocationType defined in 7.2
0:HasComponentVariablePosition0:3DCartesianCoordinates0:3DCartesianCoordinatesTypeM
0:HasComponentVariableOrientation0: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.

Table 20 – CartesianFrameAngleOrientationType Additional Subcomponents
BrowsePath References NodeClass BrowseName DataType TypeDefinition Others
Position0:HasPropertyVariable0:LengthUnit0:EUInformationPropertyTypeM
Orientation0:HasPropertyVariable0:AngleUnit0:EUInformationPropertyTypeM

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.

Table 21 – RpyOrientationType Definition
Attribute Value
BrowseNameRpyOrientationType
IsAbstractFalse
ValueRank−1 (−1 = Scalar)
DataType3DOrientation
References NodeClass BrowseName DataType TypeDefinition Other
Subtype of the OrientationType defined in OPC 10000-5
0:HasComponentVariableA0:Double0:BaseDataVariableTypeM
0:HasComponentVariableB0:Double0:BaseDataVariableTypeM
0:HasComponentVariableC0:Double0:BaseDataVariableTypeM
ConformanceUnits
CartesianFrameAngleOrientationType