OPC UA Nodes

You are currently viewing the documentation for the latest version (2.2.2). To access a different version, click the "Switch version" button located in the upper-right corner of the page.

■ If you are not sure which version of the product you are currently using, please feel free to contact Mech-Mind Technical Support.

This page describes the OPC UA concepts involved in the OPC UA standard interface, including the server, address space, nodes, attributes, and references, and provides the complete node list of this interface. For how the nodes are used by commands, see OPC UA Commands.

OPC UA Basic Concepts

Server and Client

  • Server: holds data and provides access to it. The Communication Component is the OPC UA server.

  • Client: connects to the server to read and write data, such as robots, PLCs, and debugging tools.

  • The connection address is called an endpoint (Endpoint), in the form of opc.tcp://<ip>:50010.

Address Space and Nodes

The server organizes everything that can be accessed into a tree-like structure called the address space; each element in it is a node.

Nodes are connected by references (for example, "contains" HasComponent and "organizes" Organizes).

Each node has several key identifiers:

Concept Meaning Example in this interface

NodeId

Globally unique ID of a node, composed of the "namespace index + identifier"

ns=2;i=…​ (automatically assigned by asyncua)

BrowseName

Name used for browsing, qualified by the namespace

2:COMMAND, 2:SEND_POSE

DisplayName

Display name

COMMAND, etc.

NodeClass

Node class

Object / Variable

Namespace

To avoid name conflicts between vendors, nodes belong to a namespace URI, which is referenced by an integer index in the connection.

  • The index is obtained after registration (usually 2; ns=0 is the OPC UA standard namespace, and ns=1 is the server-local namespace).

  • The client needs to call get_namespace_index(URI) to obtain the index, and then browse with ns:Name.

Node Class

Common classes:

  • Object: serves as a "folder / group" and stores no value itself. MechMind in this interface is an Object.

  • Variable: a node that stores data and has a Value attribute. Most nodes in this interface are Variables.

  • Method (can be called), ObjectType / VariableType (type definitions), etc. are not used in this interface.

Attributes

An attribute is a metadata field that comes with a node (note that it is not the same thing as "the value of the variable"). Common attributes of a Variable node:

Attribute Meaning How it is set in this interface

Value

The current value of the node (scalar or array)

This is what the server/client reads and writes

DataType

Data type of the value

Determined by the VariantType: Boolean / Int32 / Float

ValueRank

Scalar or array (-1 = scalar, 1 = one-dimensional array)

Array nodes are set to 1

ArrayDimensions

Size of the array dimensions

For example, SEND_POSE is [240]

AccessLevel (writability)

Whether the client can write

set_writable(True/False). Input nodes are writable and output nodes are read-only

In short: a node is a "thing", attributes are the "property fields" of that thing, and the value is only one of the attributes. "Reading/writing a node" at the protocol level means "reading/writing its Value attribute".

Address Space Structure of This Interface

All variable nodes are attached under the MechMind object, as shown below:

Objects (ns=0, standard root object)
└── MechMind (ns=2, Object)
    ├── CMD_TRIGGER                  (Variable, Boolean,    writable)
    ├── COMMAND                      (Variable, Int32,      writable)
    ├── ...
    ├── SEND_POSE                    (Variable, Float[240], read-only)
    └── ...                          (all other variable nodes under MechMind)
Label in the figure Description

ns=0 / ns=2

ns=0 is the OPC UA standard namespace; ns=2 is the namespace index registered by this interface

writable

Input nodes, writable by the client. See Input Nodes for the node list

read-only

Output nodes, written by the server and read-only to the client. See Output Nodes for the node list

Node List

Input Nodes (Written by the Client, Read by the Server, Writable)

Node name Data type Meaning

CMD_TRIGGER

Boolean

Trigger bit (level): set to 1 to issue a command, and reset to 0 after reading the results

COMMAND

Int32

Command code (cmd_type, for example 101 = RUN_VISION)

POINT_TYPE

Int32

Point type / requested pose type

POSE_COUNT_REQ

Int32

Expected number of poses (0 = all)

PROJECT_NUM

Int32

Mech-Vision project ID

MODEL_NUM

Int32

Parameter recipe ID

ROBOT_JPS

Float[6]

Robot joints J1 to J6

ROBOT_POSE

Float[6]

Robot flange pose (XYZ + Euler angles)

BRANCH_NAME

Int32

Branch name (SET_BRANCH)

BRANCH_OUTPORT

Int32

Branch exit port (SET_BRANCH)

INDEX_NAME

Int32

Index name (SET_INDEX)

INDEX_ORDER

Int32

Index order (SET_INDEX)

BOX_SIZE

Float[3]

Outer bounding box dimensions (XYZ)

OUTER_POSE

Float[6]

Outer pose

ROBOT_MOVE_STATUS

Int32

Robot motion status during calibration

DO_NUM_PER_GROUP

Int32

Number of DO signals per group

Output Nodes (Written by the Server, Read by the Client, Read-only)

Node name Data type Meaning

TRIGGER_ACKNOWLEDGE

Boolean

Trigger acknowledge: set to 1 when the server accepts the command, and reset to 0 after the command is completed (falling edge = completed)

CUSTOM_MSG

Int32

Custom message code

HEARTBEAT

Boolean

Heartbeat, toggles periodically

STATUS_CODE

Int32

Command status code (success/error)

SEND_POSE_STATUS

Boolean

Flag indicating that data has been sent

SEND_POSE_COUNT

Int32

Number of poses returned this time

VISUAL_MOVE_POSITION

Int32

Index of the vision move position

SEND_POSE

Float[240]

Pose block: up to 40 waypoints × 6 (sliced by SEND_POSE_COUNT)

SEND_LABEL

Int32[40]

Label of each waypoint

SEND_TOOL_INDEX

Int32[40]

Tool number of each waypoint

DO_LIST

Int32[64]

DO signal list

CUSTOM_DATA

Float[400]

Custom vision data: 40 rows × 10 (used by commands 110/210)

PLANNING_VISUAL_MOVE_INDEX

Int32[120]

Planning merge area: is_visual_move / move_type / speed, 40 each

PLANNING_VISUAL_RESULT

Float[1600]

Planning vision results: 40 rows × 40 (used by command 210)

Is this page helpful?

You can give a feedback in any of the following ways:

We Value Your Privacy

We use cookies to provide you with the best possible experience on our website. By continuing to use the site, you acknowledge that you agree to the use of cookies. If you decline, a single cookie will be used to ensure you're not tracked or remembered when you visit this website.