Skip to content

OPC UA Server ​

OPC UA(OPC Unified Architecture)是一种平台无关、与厂商无关的工业通信标准,用于在工业自动化系统中进行可靠、安全的数据交换。OPC UA 支持数据建模、事件、历史数据访问和方法调用等丰富功能,适用于从边缘设备到云端的分布式场景。

与其他北向应用不同,OPC UA Server 不向外推送数据,而是把南向采集到的点位以 OPC UA 服务对外开放:厂内的 SCADA、HMI、MES、组态软件等作为 OPC UA 客户端主动连接进来,浏览地址空间、订阅数据变化、读取实时点位,也可以写回设备。

添加应用 ​

在数据采集 -> 北向应用,点击 添加应用,选择 OPC UA Server 类型来创建一个 OPC UA Server 节点。

应用配置 ​

创建 OPC UA Server 应用时,可配置以下字段:

字段说明
主机指定运行 OPC UA 服务器的计算机,默认 127.0.0.1。
端口号服务器绑定的端口号,默认 4840。
安全策略支持的安全策略列表,包括 None、Basic256Sha256、Basic256、Basic256Rsa15、Aes128_Sha256_RsaOaep。默认支持 None。
用户名密码认证启用用户名和密码认证,支持新增用户,密码更新以及用户删除。
服务器端证书Server 使用的证书和密钥(PEM)。
受信任的证书颁发机构证书支持上传受信任的证书颁发机构的证书(PEM)。
受信任的客户端证书支持上传客户自己生成的证书(PEM)。

WARNING

主机需要填写运行主机的实际 IP。保持默认的 127.0.0.1 时,只有本机的客户端能连上,外部客户端连接会失败。

安全与证书 ​

OPC UA 强烈推荐启用安全策略与消息加密来防止中间人攻击和窃听。配置要点:

  • 使用强加密的安全策略(如 Basic256Sha256),客户端启用 SignAndEncrypt 模式。
  • 将客户端证书加入 受信任的客户端证书 列表以启用双向 TLS。
  • 启用用户名密码认证。

EMQX Neuron 首次启动 OPC UA Server 时会生成自签名证书,外部客户端可能需要手动信任该证书(例如在 UA 客户端中将证书导入受信任列表)。

主动上传的客户端证书默认受信任;陌生客户端连接时,其证书会进入非信任列表,需要在界面手动信任后才能连接。

添加订阅 ​

只有被订阅的组,其点位才会出现在 OPC UA 地址空间中。 创建应用后必须添加订阅,否则客户端连上来看不到任何变量节点。

点击 OPC UA Server 应用卡片进入组列表页,点击 添加订阅:

  • 南向设备:选择要开放的南向设备,例如 modbus-tcp-1;
  • 组:选择该设备下的某个组,例如 group-1。

订阅的通用说明见订阅南向数据。

地址空间与命名规则 ​

EMQX Neuron 会把已订阅的点位映射为 OPC UA 的节点(Node):

  • 每个南向节点(例如 modbus-tcp-1)对应一个 OPC UA 对象节点(Object)。
  • 组(Group)作为子对象组织在南向节点下。
  • 点位(Tag)映射为变量节点(Variable),其 DataType 按下表从 EMQX Neuron 的数据类型映射到 OPC UA 类型。

所有南向节点都位于 EMQX Neuron 节点之下。NodeId 遵循 ns=1;s=[南向设备名称].[组名称].[点位名称] 规范,例如 ns=1;s=modbus-tcp-1.group-1.temperature,其中 ns=1 代表 EMQX Neuron 的命名空间。

数据类型映射 ​

EMQX NeuronOPC UA
INT8/UINT8Sbyte/Byte
INT16/UINTInt16/UInt16
INT32/UINT32Int32/UInt32
INT64/UINT64Int64/UInt64
FLOATFloat
DOUBLEDouble
BIT/BOOLBoolean
STRINGString
BYTESByteString
ARRAY_INT8Array Sbyte
ARRAY_UINT8Array Byte
ARRAY_INT16Array Int16
ARRAY_UINT16Array Uint16
ARRAY_INT32Array Int32
ARRAY_UINT32Array Uint32
ARRAY_INT64Array Int64
ARRAY_UINT64Array Uint64
ARRAY_FLOATArray Float
ARRAY_DOUBLEArray Double
ARRAY_BOOLArray Boolean
JsonString

反控设备 ​

OPC UA 客户端对变量节点执行写操作,即可把值下发到设备,不需要额外配置主题或通道。

前提是该点位在南向驱动中带 write 属性,见组与点位 · 点位属性。点位只读时,写操作会返回错误。

在 UaExpert 中的具体操作见UaExpert 连接示例。

运行与维护 ​

在应用卡片或列表中点击数据统计,可查看连接状态和收发数据情况。统计字段说明见创建北向应用。

若客户端连接异常,点击 DEBUG 日志,系统会打印该节点的 DEBUG 级别日志,约十分钟后切回默认级别。随后在管理 -> 日志 页面查看,详见管理日志。

常见连接失败原因:

  • 主机填的是 127.0.0.1,外部客户端连不上。
  • 客户端证书还在非信任列表里,服务端返回 BadCertificateUntrusted,需要在认证管理页手动信任。
  • 客户端选择的安全策略未在服务端启用。

连接示例 ​

使用 UaExpert 连接 EMQX Neuron OPC UA Server 演示了完整的连接、信任证书、订阅变量和写入值的过程。