课程 B4 ·构建

编写客户端与服务器

同样的十二项任务实现四遍:Python 用 asyncua,Node 用 node-opcua,C# 用 OPC Foundation 参考栈,C 用 open62541。把套路掌握一次,之后就能读懂任何 OPC UA SDK。

课时10
时间约 80 分钟
先修要求A4,以及 Python、JavaScript、C# 或 C 之一
成本免费:文字课程开放,视频和实验需要免费账号

学完你将能够做到

  • 你能够用四种语言中的至少一种写出可用的客户端。
  • 你能够写出一个最小服务器,暴露一个带类型的变量和一个方法。
  • 你能够把一个陌生的 SDK 映射到你已经掌握的十二项任务上。
  • 你能够为一个项目选定协议栈,并基于真实约束为该选择辩护。

课程大纲

  1. 1
    依据真实约束选择协议栈

    许可、语言、嵌入式目标、PubSub 支持、可认证性,以及由谁提供商业支持。而不是看哪一个的 README 最好看。

    Asset 四个协议栈的对比表,含固定版本、许可和真实的局限

    8 分钟
  2. 2
    用四种语言连接并浏览

    同一个操作做四遍,让模式从语法中分离出来。

    Asset 四个可运行程序,对同一台服务器产生相同的浏览输出

    9 分钟
  3. 3
    用四种语言读写

    各个 SDK 把类型信息放在哪里,以及各自如何呈现状态码。

    交付物 四个程序写入同一个值,以及各 SDK 在故意制造类型不匹配时给出的错误

    8 分钟
  4. 4
    用四种语言实现订阅

    回调形态、异步模型,以及各个 SDK 在哪里暴露真正重要的参数。

    Asset 四个订阅程序及其投递输出的并排对比

    9 分钟
  5. 5
    用四种语言处理证书

    每个协议栈的 PKI 目录约定和辅助 API:这是每个 SDK 中文档写得最差的部分。

    资料 四个协议栈各自的 PKI 设置代码和文件夹布局

    8 分钟
  6. 6
    正确地重连

    退避、订阅转移,以及客户端为了不丢数据地恢复所必须保存的状态。

    Asset 一个客户端挺过三次服务器重启,并附其重连日志

    8 分钟
  7. 7
    编写一个最小服务器

    暴露一个带类型的变量、一个方法和一个事件。足以用来测试客户端。

    Asset 四个协议栈各自的一个最小可用服务器,以及一个从中读取数据的客户端

    9 分钟
  8. 8
    为你的服务器添加一个类型

    注册一个 ObjectType 并实例化它,让你的服务器可浏览而不是一片扁平。

    交付物 一台暴露了带两个实例的自定义类型的服务器,并在 UaExpert 中浏览

    8 分钟
  9. 9
    做有用的埋点和日志

    在每一层应当记录什么,才能让一张支持工单里就包含答案。大多数 OPC UA 日志都没有用。

    Asset 一种日志格式,附一次失败连接和一次成功连接的真实日志行

    7 分钟
  10. 10
    没有 PLC 也能测试

    仿真服务器、容器,以及如何在 CI 中为 OPC UA 代码搭建可重复的测试台。

    资料 一套 docker-compose 环境,含一台仿真服务器和针对它运行的测试套件

    6 分钟

实验

需要免费账户

在四种语言中的两种里实现同一个订阅,让它们指向同一台服务器,并确认它们交付的数值和时间戳完全一致。

解锁实验 →
规范背景

最后核对日期 2026 年 9 月 7 日,对照 OPC UA 1.05.07。OPC UA Connect 是教育资源,与 OPC Foundation 无隶属关系。

免费下载
OPC UA 服务器验收测试包
一份 40 项检查的验收测试,在投运签收前对厂商的服务器执行。带加权评分、三个硬性门槛,以及供供应商会议使用的一页结论。
获取免费测试包 →
免费,无需课程,无需登录