OPC UA节点说明

您正在查看最新版本(V2.2.2)的文档。如果您想查阅其他版本的文档,可以点击页面右上角“切换版本”按钮进行切换。

■ 如果您不确定当前使用的产品是哪个版本,请随时联系梅卡曼德技术支持。

本文说明OPC UA标准接口涉及的OPC UA核心概念,包括服务端、地址空间、节点、属性、引用等,并给出本接口完整的节点清单。各节点在指令中的使用方式,请参考 OPC UA指令说明。

OPC UA基础概念

服务端与客户端

  • 服务端:持有数据、对外提供访问。通信组件为OPC UA的服务端。

  • 客户端:连接服务端读写数据,如机器人、PLC、调试工具。

  • 连接地址称为端点(Endpoint),例如opc.tcp://<ip>:50010。

地址空间与节点

服务端把所有可访问的东西组织成一棵图状结构,叫地址空间;其中每个元素是一个节点。

节点之间用“引用”连接(如“包含”HasComponent、“组织”Organizes)。

每个节点有几个关键标识:

概念 含义 本接口示例

NodeId

节点全局唯一ID,由“命名空间索引 + 标识符”组成

ns=2;i=…​(asyncua自动分配)

BrowseName

浏览用的名字,带命名空间限定

2:COMMAND、2:SEND_POSE

DisplayName

显示名

COMMAND等

NodeClass

节点类别

对象/变量

命名空间

为避免不同厂商的名字冲突,节点归属于某个命名空间URI,在连接里用一个整数索引引用。

  • 注册后得到索引(通常是2,ns=0是OPC UA标准空间,ns=1是服务端本地空间)。

  • 客户端要先get_namespace_index(URI)拿到这个索引,再用ns:Name浏览。

节点类别

常见的几类:

  • 对象(Object):起“文件夹/分组”作用,本身不存值。本接口的MechMind就是一个对象。

  • 变量(Variable):存数据的节点,有值属性。本接口绝大多数节点都是变量。

  • 方法(Method,可被调用)、对象类型/变量类型(ObjectType/VariableType,类型定义)等,本接口未使用。

属性

属性是节点自带的元数据字段。一个变量节点的常用属性:

属性 含义 本接口如何设置

Value

节点当前的值(标量或数组)

服务端/客户端读写的对象

DataType

值的数据类型

由VariantType决定:Boolean/Int32/Float

ValueRank

标量还是数组(-1=标量,1=一维数组)

数组节点设为1

ArrayDimensions

数组维度大小

如SEND_POSE为[240]

AccessLevel(可写性)

客户端能否写

set_writable(True/False),输入区可写、输出区只读

一句话区分:节点是“东西”,属性是这个东西的“属性字段”,值只是其中一个属性。“读写一个节点”在协议层面就是“读写它的值”。

本接口的地址空间结构

所有变量节点都挂在MechMind对象下,结构如下:

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)
标注 说明

ns=0/ns=2

ns=0是OPC UA标准命名空间;ns=2是本接口注册的命名空间索引。

writable

输入区节点,客户端可写,节点清单见 输入区。

read-only

输出区节点,服务端写、客户端只读,节点清单见 输出区。

节点清单

输入区(客户端写、服务端读,可写)

节点名 类型 含义

CMD_TRIGGER

Boolean

触发位(电平):置1发起命令,读完结果后置0

COMMAND

Int32

命令号(cmd_type,如101=RUN_VISION)

POINT_TYPE

Int32

点位类型/请求位姿类型

POSE_COUNT_REQ

Int32

需求位姿数(0=全部)

PROJECT_NUM

Int32

Mech-Vision工程编号

MODEL_NUM

Int32

参数配方编号

ROBOT_JPS

Float[6]

机器人关节角J1~J6

ROBOT_POSE

Float[6]

机器人法兰位姿XYZ+欧拉角

BRANCH_NAME

Int32

分支名(SET_BRANCH)

BRANCH_OUTPORT

Int32

分支出口(SET_BRANCH)

INDEX_NAME

Int32

索引名(SET_INDEX)

INDEX_ORDER

Int32

索引序(SET_INDEX)

BOX_SIZE

Float[3]

外参包围盒XYZ

OUTER_POSE

Float[6]

外部位姿

ROBOT_MOVE_STATUS

Int32

标定时机器人运动状态

DO_NUM_PER_GROUP

Int32

DO每组数量

输出区(服务端写、客户端读,只读)

节点名 类型 含义

TRIGGER_ACKNOWLEDGE

Boolean

触发应答:服务端接单置1,命令完成后置0(下降沿=完成)

CUSTOM_MSG

Int32

自定义消息码

HEARTBEAT

Boolean

心跳,定时翻转

STATUS_CODE

Int32

命令状态码(成功/错误)

SEND_POSE_STATUS

Boolean

发送完成标志

SEND_POSE_COUNT

Int32

本次返回的位姿数量

VISUAL_MOVE_POSITION

Int32

视觉移动位置索引

SEND_POSE

Float[240]

位姿块:最多40点位 × 6(按SEND_POSE_COUNT切片)

SEND_LABEL

Int32[40]

每个点位的标签

SEND_TOOL_INDEX

Int32[40]

每个点位的工具号

DO_LIST

Int32[64]

DO信号列表

CUSTOM_DATA

Float[400]

自定义视觉数据:40行 × 10(指令110/210用)

PLANNING_VISUAL_MOVE_INDEX

Int32[120]

规划合并区:is_visual_move/move_type/speed各40

PLANNING_VISUAL_RESULT

Float[1600]

规划视觉结果:40行 × 40(指令210用)

该页面是否有帮助?

可以通过以下方式反馈意见:

我们重视您的隐私

我们使用 cookie 为您在我们的网站上提供最佳体验。继续使用该网站即表示您同意使用 cookie。如果您拒绝,将使用一个单独的 cookie 来确保您在访问本网站时不会被跟踪或记住。