连接与浏览
OPC UA 中的一切都始于端点,终于地址空间。本课程涵盖发现、安全通道与会话生命周期、八种 NodeClass、引用,以及为什么命名空间索引不是地址:这个错误会在几个月后毁掉项目。
| 课时 | 10 |
|---|---|
| 时间 | 约 78 分钟 |
| 先修要求 | A1 |
| 成本 | 免费:文字课程开放,视频和实验需要免费账号 |
学完你将能够做到
- 你能够列出一台服务器的端点,并读懂每个端点提供的安全配置。
- 你能够解释安全通道、会话和订阅之间的区别。
- 你能够在一个从未见过的地址空间中导航,并从中找到真实数据。
- 你能够写出一个在 PLC 程序下载后依然有效的 NodeId 引用。
课程大纲
-
1
先调用 GetEndpoints,再做别的8 分钟
你应该发出的第一个请求。返回的是什么、怎么读它,以及为什么先用安全模式 None 连接是一个诊断步骤而不是一项安全决策。
资料 来自三台不同服务器的完整 EndpointDescription 输出,附注释
-
2
正确读懂端点 URL7 分钟
scheme、host、port 和 path。为什么 path 重要、为什么 URL 中的主机与证书中的主机必须一致,以及服务器公布的内容与你实际拨入的内容之间的差别。
Asset 四个端点 URL,其中三个失败,并给出各自的确切原因
-
3
跟踪安全通道与会话的生命周期9 分钟
Hello、OpenSecureChannel、CreateSession、ActivateSession:按顺序讲解,每一步可能出什么错,以及哪个状态码告诉你走到了哪里。
Asset 一次完整连接握手的 Wireshark 抓包,每条消息都有标注
-
4
保持会话存活,并知道它何时已经断了7 分钟
会话超时、保活,以及连接已断与连接安静之间的区别。
交付物 一段会话超时的终端记录,附客户端的日志行
-
5
认识八种 NodeClass8 分钟
Object、Variable、Method、ObjectType、VariableType、ReferenceType、DataType、View。各自用来做什么,以及你实际会接触到哪些。
Asset 来自一台在线服务器的每种 NodeClass 各一个真实节点,并列出其属性
-
6
把地址空间当作图来读,而不是树9 分钟
引用是有类型且有方向的。HasComponent、Organizes、HasProperty 和 HasTypeDefinition 含义各不相同,把它们同等对待的客户端会迷路。
资料 同一个节点双向浏览得到的引用,并标出每一条的引用类型
-
7
拆解一个 NodeId7 分钟
命名空间索引加标识符,四种标识符形式。哪些是稳定的,哪些不是。
交付物 同一个节点的 NodeId 在真实服务器上的数值型、字符串型、GUID 型和不透明型四种形式
-
8
用正确的方式解析命名空间9 分钟
连接时读取 NamespaceArray,把 URI 映射到索引,并保存 URI。这一个习惯能避免 OPC UA 中最常见的生产故障。
Asset 来自两台服务器的 NamespaceArray,它们以不同索引暴露同一个模型
-
9
使用浏览路径,而不是浏览全部内容7 分钟
在你了解模型时使用 TranslateBrowsePathsToNodeIds,对热点路径使用 RegisterNodes,以及为什么每次启动都做递归浏览是一个扩展性缺陷。
Asset 在大型地址空间上递归浏览与浏览路径解析的计时对比
-
10
应对大型地址空间7 分钟
MaxReferencesPerNode、BrowseNext 续读点,以及按引用类型和 NodeClass 过滤,而不是把所有内容都拉下来。
Asset 对一个 40,000 节点地址空间在有无过滤两种情况下的浏览,附两次计时
实验
需要免费账户
匿名连接到 opc.tcp://milo.digitalpetri.com:62541/milo,解析它的 NamespaceArray,并为一个三层深处的数值写出浏览路径。然后重启你的客户端,确认该路径仍能解析。
解锁实验 →最后核对日期 2026 年 9 月 7 日,对照 OPC UA 1.05.07。OPC UA Connect 是教育资源,与 OPC Foundation 无隶属关系。