中间件与驱动
opcua-asyncio (AsyncUA)
厂商/来源:
GitHub Community
核心功能:
工业 4.0 的“翻译官”。当甲方要求必须对接 OPC UA Server (如 Kepware, 西门子 S7-1500, 倍福),而你不想买昂贵的商业驱动时。
| 适用场景 | 编写脚本快速读取 PLC 数据、搭建轻量级 OPC UA Server 模拟器、自动化测试 |
| 架构支持 | Python 3.7+ (跨平台) |
| 性能指标 | 高并发。基于 asyncio 异步模型,单线程即可通过 Subscription 模式监控数千个点位的变化,比老旧的同步库 (python-opcua) 快 10 倍。 |
| 核心价值 | 免费且强大:商业的 OPC UA Client (如 Kepware) 授权费数万元。AsyncUA 是免费的,且代码极其简洁。 |
| 避坑指南 | [加密与证书] 1. 安全策略拒绝:现在的 OPC UA Server 默认开启 Basic256Sha256 加密和 Sign & Encrypt 模式。如果你的 Python 脚本不加载证书直接连,会被服务端直接踢掉。对策:生成 .pem 证书,并在代码中配置 client.set_security_string()。 2. 命名空间 (Namespace) 索引变动:PLC 重启或重新编程后,节点的 ns=2;i=1001 中的 ns 索引可能会变。对策:不要写死 ns 索引,使用 get_namespace_index("UriString") 动态获取,或者直接使用 NodeID 字符串(如果固定)。 |
| 推荐搭配 | [Kepware] [Ignition] [Python Docker 容器] |