OPC UA Specification - Amendment

OPC 10001-11

 

OPC Unified Architecture

Amendment 11: Spatial Types

 

 

Release 1.04

2019-05-01

 

 

 

 

 

 

 


 

Specification Type:

Industry Standard Specification

Comments:

Report or view errata: http://www.opcfoundation.org/errata

 

 

 

 

Document
Number

OPC 10001-11

 

 

Title:

OPC Unified Architecture

Amendment 11:
Spatial Types

Date:

2019-05-01

 

 

 

 

Version:

Release 1.04

Software:

MS-Word

 

 

Source:

OPC 10001-11 - UA Specification 1.04 Amendment 11 - Spatial Types.docx

 

 

 

 

Author:

OPC Foundation

Status:

Release

 

 

 

 


 

 

OPC Foundation

____________

 

UNIFIED ARCHITECTURE –

FOREWORD

This specification is the specification for developers of OPC UA applications. The specification is a result of an analysis and design process to develop a standard interface to facilitate the development of applications by multiple vendors that shall inter-operate seamlessly together.

Copyright © 2006-2019, OPC Foundation, Inc.

AGREEMENT OF USE

COPYRIGHT RESTRICTIONS

Any unauthorized use of this specification may violate copyright laws, trademark laws, and communications regulations and statutes. This document contains information which is protected by copyright. All Rights Reserved. No part of this work covered by copyright herein may be reproduced or used in any form or by any means--graphic, electronic, or mechanical, including photocopying, recording, taping, or information storage and retrieval systems--without permission of the copyright owner.

OPC Foundation members and non-members are prohibited from copying and redistributing this specification. All copies must be obtained on an individual basis, directly from the OPC Foundation Web site https://opcfoundation.org/.

PATENTS

The attention of adopters is directed to the possibility that compliance with or adoption of OPC specifications may require use of an invention covered by patent rights. OPC shall not be responsible for identifying patents for which a license may be required by any OPC specification, or for conducting legal inquiries into the legal validity or scope of those patents that are brought to its attention. OPC specifications are prospective and advisory only. Prospective users are responsible for protecting themselves against liability for infringement of patents.

WARRANTY AND LIABILITY DISCLAIMERS

WHILE THIS PUBLICATION IS BELIEVED TO BE ACCURATE, IT IS PROVIDED "AS IS" AND MAY CONTAIN ERRORS OR MISPRINTS. THE OPC FOUDATION MAKES NO WARRANTY OF ANY KIND, EXPRESSED OR IMPLIED, WITH REGARD TO THIS PUBLICATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF TITLE OR OWNERSHIP, IMPLIED WARRANTY OF MERCHANTABILITY OR WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE OR USE. IN NO EVENT SHALL THE OPC FOUNDATION BE LIABLE FOR ERRORS CONTAINED HEREIN OR FOR DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, RELIANCE OR COVER DAMAGES, INCLUDING LOSS OF PROFITS, REVENUE, DATA OR USE, INCURRED BY ANY USER OR ANY THIRD PARTY IN CONNECTION WITH THE FURNISHING, PERFORMANCE, OR USE OF THIS MATERIAL, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

The entire risk as to the quality and performance of software developed using this specification is borne by you.

RESTRICTED RIGHTS LEGEND

This Specification is provided with Restricted Rights. Use, duplication or disclosure by the U.S. government is subject to restrictions as set forth in (a) this Agreement pursuant to DFARs 227.7202-3(a); (b) subparagraph (c)(1)(i) of the Rights in Technical Data and Computer Software clause at DFARs 252.227-7013; or (c) the Commercial Computer Software Restricted Rights clause at FAR 52.227-19 subdivision (c)(1) and (2), as applicable. Contractor / manufacturer are the OPC Foundation,. 16101 N. 82nd Street, Suite 3B, Scottsdale, AZ, 85260-1830

COMPLIANCE

The OPC Foundation shall at all times be the sole entity that may authorize developers, suppliers and sellers of hardware and software to use certification marks, trademarks or other special designations to indicate compliance with these materials. Products developed using this specification may claim compliance or conformance with this specification if and only if the software satisfactorily meets the certification requirements set by the OPC Foundation. Products that do not meet these requirements may claim only that the product was based on this specification and must not claim compliance or conformance with this specification.

Trademarks

Most computer and software brand names have trademarks or registered trademarks. The individual trademarks have not been listed here.

GENERAL PROVISIONS

Should any provision of this Agreement be held to be void, invalid, unenforceable or illegal by a court, the validity and enforceability of the other provisions shall not be affected thereby.

This Agreement shall be governed by and construed under the laws of the State of Minnesota, excluding its choice or law rules.

This Agreement embodies the entire understanding between the parties with respect to, and supersedes any prior understanding or agreement (oral or written) relating to, this specification.

ISSUE REPORTING

The OPC Foundation strives to maintain the highest quality standards for its published specifications, hence they undergo constant review and refinement. Readers are encouraged to report any issues and view any existing errata here: HTUhttp://www.opcfoundation.org/errataUTH

 

 


OPC Unified Architecture Specification

AMENDMENT 11: Spatial Types

 

OPC 10000-5, OPC Unified Architecture - Part 5: Information Model

 

Add the following VariableTypes to Clause 7 “Standard VariableTypes”.

 

7.20     RationalNumberType

This complex VariableType is used for information which needs to be provided as a fraction number. It reflects the semantic of its DataType, defined in 12.23 and is formally defined in Table 78.

Table 78 – RationalNumberType Definition

Attribute

Value

BrowseName

RationalNumberType

IsAbstract

False

ValueRank

Scalar

DataType

RationalNumber

References

NodeClass

BrowseName

DataType

TypeDefinition

Modelling
Rule

Subtype of the BaseDataVariableType defined in 7.4

HasComponent

Variable

Numerator

Int32

BaseDataVariableType

Mandatory

HasComponent

Variable

Denominator

UInt32

BaseDataVariableType

Mandatory

 

Numerator and Denominator reflect the DataType RationalNumber.

7.21     VectorType

This abstract VariableType is used as base to define multi-dimensional vectors. Subtypes need to define the concrete number of dimensions. It reflects the semantic of its DataType, defined in 12.24. Subtypes shall expose the structure of their structured DataTypes as Variables. Additionally, it can define a unit for each dimension of the vector (Property VectorUnit). The VariableType is formally defined in Table 79.

Table 79 – VectorType Definition

Attribute

Value

BrowseName

VectorType

IsAbstract

True

ValueRank

Scalar

DataType

Vector

References

NodeClass

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of the BaseDataVariableType defined in 7.4

HasProperty

Variable

VectorUnit

EUInformation

PropertyType

Optional

 

VectorUnit defines the unit of each dimension of the vector. The DataType EUInformation is defined in OPC 10000-8. Note that the Property EngineeringUnits is intentionally not used, as it would have to define the engineering unit of the full vector, not its individual dimensions.

7.22     3DVectorType

This complex VariableType is used to represent a vector in 3D space. It reflects the semantic of its DataType, defined in 12.25. The VariableType is formally defined in Table 80.

Table 80 – 3DVectorType Definition

Attribute

Value

BrowseName

3DVectorType

IsAbstract

False

ValueRank

Scalar

DataType

3DVector

References

NodeClass

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of the VectorType defined in 7.21

HasComponent

Variable

X

Double

BaseDataVariableType

Mandatory

HasComponent

Variable

Y

Double

BaseDataVariableType

Mandatory

HasComponent

Variable

Z

Double

BaseDataVariableType

Mandatory

 

X, Y and Z reflect the DataType 3DVector.

7.23     CartesianCoordinatesType

This abstract VariableType is used as base to define multi-dimensional coordinates. Subtypes need to define the concrete number of dimensions. It reflects the semantic of its DataType, defined in 12.26. Subtypes shall expose the structure of their structured DataTypes as Variables. Additionally, it can define a unit for the coordinates (Property LengthUnit). The VariableType is formally defined in Table 81.

Table 81 – CartesianCoordinatesType Definition

Attribute

Value

BrowseName

CartesianCoordinatesType

IsAbstract

True

ValueRank

Scalar

DataType

CartesianCoordinates

References

NodeClass

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of the BaseDataVariableType defined in 7.4

HasProperty

Variable

LengthUnit

EUInformation

PropertyType

Optional

 

LengthUnit defines the unit of each dimension of the cartesian coordinates. The DataType EUInformation is defined in OPC 10000-8. Note that the Property EngineeringUnits is intentionally not used, as it would have to define the engineering unit of the full cartesian coordinates, not its individual dimensions.

7.24     3DCartesianCoordinatesType

This complex VariableType is used for information about positions in 3D space. It reflects the semantic of its DataType, defined in 12.27. The VariableType is formally defined in Table 82.

Table 82 –3DCartesianCoordinatesType Definition

Attribute

Value

BrowseName

3DCartesianCoordinatesType

IsAbstract

False

ValueRank

Scalar

DataType

3DCartesianCoordinates

References

NodeClass

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of the CartesianCoordinatesType defined in 7.23

HasComponent

Variable

X

Double

BaseDataVariableType

Mandatory

HasComponent

Variable

Y

Double

BaseDataVariableType

Mandatory

HasComponent

Variable

Z

Double

BaseDataVariableType

Mandatory

 

X, Y and Z reflect the DataType CartesianCoordinates.

7.25     OrientationType

This abstract VariableType is used as base to define multi-dimensional orientations. Subtypes need to define the concrete number of dimensions. It reflects the semantic of its DataType, defined in 12.28. Subtypes shall expose the structure of their structured DataTypes as Variables. Additionally, it can define a unit for the orientation angles (Property AngleUnit). The VariableType is formally defined in Table 83.

Table 83 – OrientationType Definition

Attribute

Value

BrowseName

OrientationType

IsAbstract

True

ValueRank

Scalar

DataType

Orientation

References

NodeClass

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of the BaseDataVariableType defined in 7.4.

HasProperty

Variable

AngleUnit

EUInformation

PropertyType

Optional

 

AngleUnit defines the unit of each dimension of the orientation. The DataType EUInformation is defined in OPC 10000-8. Note that the Property EngineeringUnits is intentionally not used, as it would have to define the engineering unit of the full cartesian coordinates, not its individual dimensions

7.26     3DOrientationType

This complex VariableType is used for information about orientation in 3D space. Its Variables reflect its DataType having the same semantic defined in 12.29. The VariableType is formally defined in Table 84.

Table 84 – 3DOrientationType Definition

Attribute

Value

BrowseName

3DOrientationType

IsAbstract

False

ValueRank

Scalar

DataType

3DOrientation

References

NodeClass

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of the OrientationType defined in 7.25.

HasComponent

Variable

A

Double

BaseDataVariableType

Mandatory

HasComponent

Variable

B

Double

BaseDataVariableType

Mandatory

HasComponent

Variable

C

Double

BaseDataVariableType

Mandatory

 

A, B and C reflect the DataType 3DOrientation.

7.27     FrameType

This abstract VariableType is used for information about multi-dimensional frames. It reflects the semantic of its DataType, defined in 12.30. Additionally, it provides information about the dynamic behaviour of the frame. The VariableType is formally defined in Table 85.

Table 85 – FrameType Definition

Attribute

Value

BrowseName

FrameType

IsAbstract

True

ValueRank

Scalar

DataType

Frame

References

NodeClass

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of the BaseDataVariableType defined in 7.4.

HasComponent

Variable

CartesianCoordinates

CartesianCoordinates

CartesianCoordinatesType

Mandatory

HasComponent

Variable

Orientation

Orientation

OrientationType

Mandatory

HasProperty

Variable

Constant

Boolean

PropertyType

Optional

HasComponent

Variable

BaseFrame

NodeId

BaseDataVariableType

Optional

HasProperty

Variable

FixedBase

Boolean

PropertyType

Optional

 

CartesianCoordinates and Orientation reflect the DataType Frame. Note that the abstract DataType Frame does not define the fields itself, but subtypes shall create those fields.

Constant is True when the Value of the frame never changes. If the Value may change it is False.

BaseFrame is the NodeId of the frame’s base frame.

FixedBase is True when this frame is always based on the same base frame, i.e. BaseFrame never changes.

 

7.28     3DFrameType

This complex VariableType is used for information about frames in 3D space. It reflects the semantic of its DataType, defined in 12.31. It refines the DataTypes and VariableTypes of the CartesianCoordinates and Orientation to the corresponding 3D types. The VariableType is formally defined in Table 86.

Table 86 – 3DFrameType Definition

Attribute

Value

BrowseName

3DFrameType

IsAbstract

False

ValueRank

Scalar

DataType

3DFrame

References

NodeClass

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of the FrameType defined in 7.27.

HasComponent

Variable

CartesianCoordinates

3DCartesianCoordinates

3DCartesianCoordinatesType

Mandatory

HasComponent

Variable

Orientation

3DOrientation

3DOrientationType

Mandatory

 

 

Add the following rows to Table 117 “Structure Definition” in Clause 12.2 “DataTypes defined in OPC 10000-3”.

 

References

NodeClass

BrowseName

IsAbstract

HasSubtype

DataType

RationalNumber

FALSE

HasSubtype

DataType

Vector

TRUE

HasSubtype

DataType

CartesianCoordinates

TRUE

HasSubtype

DataType

Frame

TRUE

 

 

Add the following DataTypes to Clause 12 “Standard DataTypes”.

 

12.23   RationalNumber

This Structured DataType defines a rational number as a fraction of two integral numbers. Its elements are described in Table 167.

Table 167RationalNumber Structure

Name

Type

Description

RationalNumber

Structure

 

    Numerator

Int32

Numerator of the rational number. The sign of the rational number is reflected in this value

    Denominator

UInt32

Denominator of the rational number

 

Its representation in the AddressSpace is defined in Table 168.

Table 168 – RationalNumber Definition

Attributes

Value

BrowseName

RationalNumber

 

12.24   Vector

This abstract Structured DataType is the base to define multi-dimensional vectors. There are no specific elements defined as shown in Table 169.

Table 169 – Vector Structure

Name

Type

Description

Vector

Structure

 

 

Its representation in the AddressSpace is defined in Table 170.

Table 170 – Vector Definition

Attributes

Value

BrowseName

Vector

IsAbstract

TRUE

References

NodeClass

BrowseName

IsAbstract

HasSubtype

DataType

3DVector

FALSE

 

 

12.25   3DVector

This Structured DataType defines a vector in 3D space, providing the length for each direction (X, Y, and Z). Its elements are described in Table 171.

Table 171 – 3DVector Structure

Name

Type

Description

3DVector

Structure

 

    X

Double

Length of X direction

    Y

Double

Length of Y direction

    Z

Double

Length of Z direction

 

Its representation in the AddressSpace is defined in Table 172.

Table 172 – 3DVector Definition

Attributes

Value

BrowseName

3DVector

 

12.26   CartesianCoordinates

This abstract Structured DataType is the base to define multi-dimensional cartesian coordinates. CartesianCoordinates describe a position in a cartesian coordinate system. A cartesian coordinate system is a coordinate system that specifies each point uniquely in a multi-dimensional space by a set of numerical coordinates, which are the signed distances to the point from fixed perpendicular oriented lines, measured in the same unit of length. There are no specific elements defined as shown in Table 173.

Table 173 – CartesianCoordinates Structure

Name

Type

Description

CartesianCoordinates

Structure

 

 

Its representation in the AddressSpace is defined in Table 174.

Table 174 – CartesianCoordinates Definition

Attributes

Value

BrowseName

CartesianCoordinates

IsAbstract

TRUE

References

NodeClass

BrowseName

IsAbstract

HasSubtype

DataType

3DCartesianCoordinates

FALSE

 

12.27   3DCartesianCoordinates

This Structured DataType defines a position in 3D space, providing the coordinate of each dimension (X, Y, and Z). Its elements are described in Table 175.

Table 175 – 3DCartesianCoordinates Structure

Name

Type

Description

3DCartesianCoordinates

Structure

 

    X

Double

X coordinate

    Y

Double

Y coordinate

    Z

Double

Z coordinate

 

Its representation in the AddressSpace is defined in Table 176.

Table 176 – 3DCartesianCoordinates Definition

Attributes

Value

BrowseName

3DCartesianCoordinates

 

12.28   Orientation

This abstract Structured DataType is the base to define multi-dimensional orientations. The orientation is given by the rotation of each dimension. There are no specific elements defined as shown in Table 177.

Table 177 – Orientation Structure

Name

Type

Description

Orientation

Structure

 

 

Its representation in the AddressSpace is defined Table 178.

Table 178 – Orientation Definition

Attributes

Value

BrowseName

Orientation

IsAbstract

TRUE

References

NodeClass

BrowseName

IsAbstract

HasSubtype

DataType

3DOrientation

FALSE

 

12.29   3DOrientation

This Structured DataType defines the orientation in 3D space, providing the rotation about each dimension (X, Y, and Z). Its elements are described in Table 179.

Table 179 – 3DOrientation Structure

Name

Type

Description

3DOrientation

Structure

 

    A

Double

Rotation around X (roll)

    B

Double

Rotation around Y (pitch)

    C

Double

Rotation around Z (yaw)

 

Its representation in the AddressSpace is defined Table 180.

Table 180 – 3DOrientation Definition

Attributes

Value

BrowseName

3DOrientation

 

12.30   Frame

This abstract Structured DataType is the base to define multi-dimensional frames. There are no specific elements defined as shown in Table 181. Subtypes shall add a field called CartesianCoordinates representing the cartesian coordinates of the frame using as DataType a subtype of CartesianCoordinates, and a field called Orientation, representing the orientation of the frame using as DataType a subtype of Orientation. The concrete DataTypes need to be defined by the subtype. Both fields shall have the same number of dimensions.

Table 181 – Frame Structure

Name

Type

Description

Frame

Structure

 

 

Its representation in the AddressSpace is defined Table 182.

Table 182 – Frame Definition

Attributes

Value

BrowseName

Frame

IsAbstract

TRUE

References

NodeClass

BrowseName

IsAbstract

HasSubtype

DataType

3DFrame

FALSE

 

12.31   3DFrame

This Structured DataType defines a frame in 3D space. Annex G provides examples on how to use the 3DFrame DataType. It is a sub-type of the Frame DataType and refines the DataTypes of its elements, as described in Table 183.

Table 183 – 3DFrame Structure

Name

Type

Description

3DFrame

Structure

 

    CartesianCoordinates

3DCartesianCoordinates

Cartesian coordinates of the frame in 3D space.

    Orientation

3DOrientation

Orientation of the frame in 3D space.

 

Its representation in the AddressSpace is defined Table 184.

Table 184 – 3DFrame Definition

Attributes

Value

BrowseName

3DFrame

 

Add the following to OPC 10000-5 as Annex G.

                                                                      Annex G (informative)

Geometrical references

This informative annex gives a description of the usage of the 3DFrame DataType and the 3DFrameType VariableType. The geometrical setup of a system can be very diverse. It is not possible to specify all possible setups in this specification. Instead, the specification provides the framework and gives examples for how to use.

 

Frames

A frame describes the translation and rotation of an object relative to another frame (the base frame). Figure G.1 shows a simple frame chain to clarify the notation. The frame D is the base of frames E and F. The frames E and F are based on frame D. Frame F is the base of frames G and H. The frames G and H are based on frame F.

Figure G.1Simple frame chain

 

As shown in Figure G.1 an arrow points from a frame to its base frame to visualize the frame chains. This arrow can be read as “The coordinates of frame E are specified in (or relative to) frame D”. In addition to the coordinates of frame E you also need to know its base frame D.

The coordinates of a frame are represented by the three values P = (X, Y, Z) for the position and the three values O = (A, B, C) for the orientation.

P is the translation relative to the base frame. When the translation of a frame is 0 then the origins of the frame and its base frame coincide.

O is the orientation of the frame in yaw, pitch and roll notation (see also ISO 9787:2013 “Robots and robotic devices — Coordinate systems and motion nomenclatures” or Wikipedia article about euler angles).

 

We use the notation of pre-multiplying rotation-matrices and column vectors.

Figure G.2 shows the three elementary rotations A, B and C as specified in ISO 9787:2013.

Figure G.2Rotations

 

The elementary rotations correspond to the following rotation matrices:

A = roll = rotation about X axis

Figure G.3Roll Formula

 

B = pitch = rotation about Y axis

Figure G.4Pitch Formula

 

C = yaw = rotation about Z axis

 

Figure G.5Yaw Formula

ISO 9787:2013 does not define the order of the rotations or whether to use intrinsic or extrinsic rotations. Thus, we refer to the Wikipedia article here. It says that the intrinsic rotations z-y’-x″ are known as yaw, pitch and roll, giving the transformation matrix

 

Figure G.3 shows the three consecutive rotations:

1)      Rotation about the Z axis (blue rotation; blue frame -> green frame)

2)      Rotation about the new Y axis (green rotation; green frame -> red frame)

3)      Rotation about the new X axis (red rotation; red frame -> black frame)

Figure G.3 – Rotations of a frame

The extrinsic rotations x-y-z about the axis of the original fixed coordinate system result in the same transformation matrix. This is

1)      Rotation about the X axis

2)      Rotation about the original Y axis

3)      Rotation about the original Z axis

 

For the explanations in the next paragraph a superscript prefix indicates the frame in which the vector or rotation matrix is defined. A subscript for a rotation matrix indicates the frame it defines.

The column vectors in the rotation matrices are the unit vectors of the frame in the coordinates of its base frame. Thus transforming a vector  that is given in frame G to the base frame F (compare Figure G.1) is done by

 

Figure G.6Transformation Formula

with

 

Figure G.7A Base Frame Vector

and the rotation angles A, B and C of the frame G.

 

Frames can be constant (e.g. the robot base) or dynamically changing (e.g. the robot flange).

______________