必要环境
OPC UA 应用上线前要准备的事 — 网络 / 证书 / 时间同步 / Server / 客户端工具 / SDK 安装. 一项不对都会导致首次连接失败.
一站到位
开发期最少装两件: 一个对端 OPC UA Server (推荐 Darra Software PLC 内置 OPC UA Server, 端口 4840) + 一个 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. 对端 OPC UA Server
本 SDK 是 Client only, 联调需要一个对端 Server. 典型来源:
- Darra Software PLC 内置 OPC UA Server — 端口
4840, 跟着 PLC Service 一起跑, 直接暴露 PLC 真实 Tag (DB / I / Q / M) 适用: 验证客户端代码读写 / 订阅 / 方法调用 PLC 数据 - 客户现有 OPC UA Server — 客户已部署的 SCADA / DCS / 第三方控制器, 端点形如
opc.tcp://<ip>:<port>适用: 用本 SDK 把客户现有系统接入自家应用
注意: 不要把任何"调试用模拟 Server"假设为可下载产品 — 内部联调工具不对外发布。
5. 客户端工具
调试期推荐 Darra OPC UA Client GUI 桌面工具配合查看 — 我们自家工具, 树形浏览 / 订阅 / 历史 / 事件, 字体 MiSans + 中文。
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 层排查