主题
OPC UA 接入
OPC UA(Open Platform Communications Unified Architecture,开放平台通信统一架构)是工业自动化领域广泛采用的机器间通信协议标准,由OPC基金会制定和维护。
OPC UA是传统OPC技术的升级版本,解决了传统OPC(如OPC DA)的局限性,提供了一种更安全、更灵活、跨平台的工业数据通信解决方案。
TopStack/TopLink 数采通道内置了 OPC UA 的客户端驱动,可以通过 TCP 方式与 OPC UA 服务器进行通讯。
通道设置
参数说明:
参数名 | 必填 | 说明 |
---|---|---|
主接入地址 | 是 | OPC UA 服务器 Endpoint |
副接入地址 | 否 | OPC UA 服务器 Endpoint 备用地址,当主接入地址不可用时自动切换到副接入地址 |
连接超时 | 是 | 单位:秒 |
会话超时 | 是 | 单位:分钟 |
请求超时 | 是 | 单位:秒 |
发布间隔 | 是 | 单位:毫秒 |
安全策略 | 是 | 通过【数字证书】实现安全通讯所采用的加密和签名算法。None 表示不进行加密和签名。 |
安全模式 | 是 | 可选项:无、签名、签名并加密。当安全策略不是 None 时,需要设置安全模式。 |
用户名 | 否 | |
密码 | 否 |
CAUTION
如果设置了【安全策略】,需要导出客户端证书,并将客户端证书添加到 OPC UA 服务器的【受信任客户端】列表中。
本程序内所有 OPC UA 客户端共用相同的【客户端证书】。
OPC UA 节点 ID
OPC UA 中的节点 ID(Node ID)用于唯一标识地址空间中的节点。
它有多种格式,下面介绍几种常见格式:
数字标识符(Numeric Identifier) 格式:
ns=索引; i=数值
ns
代表命名空间索引,是一个非负整数,用于区分不同的命名空间。i
表明标识符是数字类型。数值
是一个无符号整数,在特定命名空间内唯一标识节点。
示例:
ns=2; i=1234
此示例里,节点位于命名空间索引为 2 的命名空间,其数字标识符是 1234。字符串标识符(String Identifier) 格式:
ns=索引; s=字符串
ns
代表命名空间索引。s
表明标识符是字符串类型。字符串
是在特定命名空间内唯一标识节点的字符串。
示例:ns=3; s=MyNodeName
该示例中,节点处于命名空间索引为 3 的命名空间,其字符串标识符为 MyNodeName
。
GUID 标识符(GUID Identifier) 格式:
ns=索引; g=GUID
ns
代表命名空间索引。g
表明标识符是 GUID(全局唯一标识符)类型。
GUID
是一个全局唯一的标识符,通常以 8-4-4-4-12 格式呈现,像xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
。 示例:ns=1; g=123e4567-e89b-12d3-a456-426614174000
此示例中,节点在命名空间索引为 1 的命名空间,其 GUID 标识符是123e4567-e89b-12d3-a456-426614174000
。字节串标识符(ByteString Identifier) 格式:
ns=索引; b=字节串
ns
代表命名空间索引。b
表明标识符是字节串类型。字节串
是一串字节,以十六进制字符串表示。
示例:
ns=4; b=01020304
这个示例中,节点在命名空间索引为 4 的命名空间,其字节串标识符是01020304
。
点位寻址
在通讯点表中,每个点位对应 OPC UA 的一个数据节点。
点位的设备地址与点位地址拼接在一起,共同组成 OPC UA 节点 ID (Node ID)。
即:Node ID = 设备地址+点位地址。
例如,某设备下需要录入以下 3 个测点:
- ns=2;s=数据类型示例.8 位设备.R 寄存器.Byte1
- ns=2;s=数据类型示例.8 位设备.R 寄存器.Byte2
- ns=2;s=数据类型示例.8 位设备.R 寄存器.Byte3
我们可以将该设备下的 3 个测点添加到通道中,点表设置如下:
设备地址 | 点位地址 | 数值类型 |
---|---|---|
ns=2;s=数据类型示例.8 位设备. | R 寄存器.Byte1 | uint8 |
ns=2;s=数据类型示例.8 位设备. | R 寄存器.Byte1 | uint8 |
ns=2;s=数据类型示例.8 位设备. | R 寄存器.Byte1 | uint8 |
数值类型对照表
OPC UA 定义了一套完整的数据类型系统,用于在工业通信中精确描述数据。这些数据类型构成了信息建模和交换的基础。
OPC UA 数据节点的数据类型,对应通讯点表中的数值类型,对应关系如下表所示:
OPC UA 数据类型 | 数值类型 | 测点类型 |
---|---|---|
Boolean | bool | 布尔型 |
SByte | int8 | 整数型 |
Byte | uint8 | 整数型 |
Int16 | int16 | 整数型 |
Uint16 | uint16 | 整数型 |
Int32 | int32 | 整数型 |
Uint32 | uint32 | 整数型 |
int64 | int64 | 整数型 |
uint64 | uint64 | 整数型 |
Float | float32 | 浮点型 |
Double | double | 浮点型 |
String | char | 文本型 |
客户端证书
如果配置了安全策略,需要【导出客户端证书】,然后将客户端证书添加到 OPC UA 服务器的【受信任客户端证书】列表中。
KepServer 中导入客户端证书,如下图所示:
西门子 OPC UA 服务器,导入客户端证书,如下图所示:
开启 KEPServer 的 OPC UA 支持
KEPServerEX 是行业领先的连接平台,用于向您的所有应用程序提供单一来源的工业自动化数据。该平台的设计使用户能够通过一个直观的用户界面来连接、管理、监视和控制不同的自动化设备和软件应用程序。
主节主要介绍如何开启 KEPServer 的 OPC UA 支持。
右键点击 KEPServer 系统托盘按钮,选择【OPC UA 配置】打开 OPC UA 配置管理器

在 OPC UA 配置管理器中点击【添加】按钮,添加一个服务端点
为方便测试,服务器端点的安全策略可以选择“无”
打开 KEPServer 配置管理器,右键点击项目,点击【属性】菜单,打开属性编辑器
在属性编辑器中选择 OPC UA,将客户端会话中的“允许匿名登录”改为“是”