必要环境
OPC UA 应用上线前要准备的事 — 网络 / 证书 / 时间同步 / 测试 Server / 客户端工具 / SDK 安装. 一项不对都会导致首次连接失败.
一站到位
开发期最少装两件: 一个 OPC UA Server (推荐 Darra SimulatorServer) + 一个 GUI 客户端 (Darra OPC UA Client GUI). 5 分钟就能开搞.
1. 网络
- 默认端口: TCP 4840 (opc.tcp 协议)
- HTTPS 端口: TCP 443 (opc.https 协议, 本 SDK 主用 opc.tcp)
- 防火墙双向放通 4840
- Windows 防火墙: 入站规则放通 OPC UA Server 进程
- NAT / 端口映射: 公网访问需要把 4840 映射出去, 同时确保 ApplicationUri 与证书 SAN 匹配
2. 证书生成 (生产必须)
明文 None 模式只在内网开发测试用. 生产环境必须 Sign 或 SignAndEncrypt:
- 客户端证书: PFX 格式 (含私钥), 推荐 RSA 2048 位
- 服务端证书: 由服务端管理, 客户端首次连接可走 TOFU (Trust On First Use)
- 互信: 客户端公钥 (.der/.pem) 必须导入服务端 trusted/ 目录
- subjectAltName URI: 必须包含
URI:urn:<vendor>:<product>:<instance>字段, 与 ApplicationUri 一致 - 有效期: 默认 365 天, 可配置, 过期前要轮换
详细生成步骤见 启用加密.
3. 时间同步 (NTP)
时间偏差超 ~10 分钟会被拒
OPC UA Sign / SignAndEncrypt 模式会校验时间戳, 客户端与服务端时间偏差超过几分钟会被拒绝 (BadCertificateTimeInvalid 等). 生产环境必须配置 NTP, 时间偏差控制在秒级.
4. 选择测试 Server
开发期需要一个 OPC UA Server 联调:
| Server | 优点 | 何时用 |
|---|---|---|
| Darra SimulatorServer | 开箱即用, 含温度/计数器/方法/事件 | 开发期联调 |
| Darra Software PLC 内置 Server | 接 PLC 真实 Tag, 端口 4840 | 验证 PLC 接入 |
| open62541 examples/server | 开源标准实现 | 协议合规验证 |
| Eclipse Milo ExampleServer | Java 实现 | Java 风格参考 |
| Prosys 免费 Simulation Server | 商业级稳定 | 高级特性测试 |
5. 客户端工具
调试期推荐桌面工具配合查看:
- Darra OPC UA Client GUI — 我们自家工具, 树形浏览 / 订阅 / 历史 / 事件, 字体 MiSans + 中文
- UaExpert — Unified Automation 出品
- opcua-client-gui — Python FreeOpcUa 项目
6. SDK 安装
按目标语言挑一个: NuGet (C#), pip (Python), Maven (Java), CMake (C/C++), cargo (Rust). 详见 快速开始.
检查清单
- 防火墙放通 4840
- NTP 时间同步配置 OK (差距 < 30 秒)
- 测试 Server 已启动 (GUI 客户端能 Browse 出节点树)
- (生产) 客户端 PFX 证书已生成, ApplicationUri 与 SAN.URI 一致
- (生产) 服务端已导入信任客户端公钥
- SDK 版本号能正确打印 (验证安装)
相关链接
- 快速开始 — 5 分钟跑通
- 启用加密 — PFX / SecurityMode 实操
- FAQ — 加密配置 — 常见错误排查
- FAQ — 连接故障排查 — 5 层排查