编写客户端与服务器
同样的十二项任务实现四遍:Python 用 asyncua,Node 用 node-opcua,C# 用 OPC Foundation 参考栈,C 用 open62541。把套路掌握一次,之后就能读懂任何 OPC UA SDK。
| 课时 | 10 |
|---|---|
| 时间 | 约 80 分钟 |
| 先修要求 | A4,以及 Python、JavaScript、C# 或 C 之一 |
| 成本 | 免费:文字课程开放,视频和实验需要免费账号 |
学完你将能够做到
- 你能够用四种语言中的至少一种写出可用的客户端。
- 你能够写出一个最小服务器,暴露一个带类型的变量和一个方法。
- 你能够把一个陌生的 SDK 映射到你已经掌握的十二项任务上。
- 你能够为一个项目选定协议栈,并基于真实约束为该选择辩护。
课程大纲
-
1
依据真实约束选择协议栈8 分钟
许可、语言、嵌入式目标、PubSub 支持、可认证性,以及由谁提供商业支持。而不是看哪一个的 README 最好看。
Asset 四个协议栈的对比表,含固定版本、许可和真实的局限
-
2
用四种语言连接并浏览9 分钟
同一个操作做四遍,让模式从语法中分离出来。
Asset 四个可运行程序,对同一台服务器产生相同的浏览输出
-
3
用四种语言读写8 分钟
各个 SDK 把类型信息放在哪里,以及各自如何呈现状态码。
交付物 四个程序写入同一个值,以及各 SDK 在故意制造类型不匹配时给出的错误
-
4
用四种语言实现订阅9 分钟
回调形态、异步模型,以及各个 SDK 在哪里暴露真正重要的参数。
Asset 四个订阅程序及其投递输出的并排对比
-
5
用四种语言处理证书8 分钟
每个协议栈的 PKI 目录约定和辅助 API:这是每个 SDK 中文档写得最差的部分。
资料 四个协议栈各自的 PKI 设置代码和文件夹布局
-
6
正确地重连8 分钟
退避、订阅转移,以及客户端为了不丢数据地恢复所必须保存的状态。
Asset 一个客户端挺过三次服务器重启,并附其重连日志
-
7
编写一个最小服务器9 分钟
暴露一个带类型的变量、一个方法和一个事件。足以用来测试客户端。
Asset 四个协议栈各自的一个最小可用服务器,以及一个从中读取数据的客户端
-
8
为你的服务器添加一个类型8 分钟
注册一个 ObjectType 并实例化它,让你的服务器可浏览而不是一片扁平。
交付物 一台暴露了带两个实例的自定义类型的服务器,并在 UaExpert 中浏览
-
9
做有用的埋点和日志7 分钟
在每一层应当记录什么,才能让一张支持工单里就包含答案。大多数 OPC UA 日志都没有用。
Asset 一种日志格式,附一次失败连接和一次成功连接的真实日志行
-
10
没有 PLC 也能测试6 分钟
仿真服务器、容器,以及如何在 CI 中为 OPC UA 代码搭建可重复的测试台。
资料 一套 docker-compose 环境,含一台仿真服务器和针对它运行的测试套件
实验
最后核对日期 2026 年 9 月 7 日,对照 OPC UA 1.05.07。OPC UA Connect 是教育资源,与 OPC Foundation 无隶属关系。