3. 开发环境搭建:工欲善其事,必先利其器
好,咱们正式开始动手了。这一章我带你搭好开发环境。说实话,很多初学者卡在第一步——环境没配好,后面全是坑。我自己带团队时,也经常看到有人因为Python版本不对、库装不上,折腾一整天。
咱们的目标很明确:装好Python、装好opcua-asyncio库、选个趁手的编辑器、再跑一个模拟的OPC UA服务器。这样你就能在本地随意测试了。
3.1 Python环境配置
Python版本怎么选?我个人习惯用Python 3.10或3.11。为什么?因为opcua-asyncio对这两个版本支持最好。我曾在Python 3.12上踩过坑,有些依赖库还没完全适配,所以建议你稳妥一点。
安装步骤很简单:
- 去 python.org 下载对应版本
- 安装时记得勾选「Add Python to PATH」
- 打开终端(CMD或PowerShell),输入
python --version验证
嗯,这里要注意:Windows用户可能会遇到「python」和「python3」的差异。我建议统一用 python 命令,如果不行,检查一下环境变量。
接下来,我强烈推荐你创建一个虚拟环境。为什么?因为不同项目可能依赖不同版本的库,混在一起会出问题。我曾经在一个项目里同时用了opcua-asyncio 0.9和1.0,结果调试了整整一下午才发现是版本冲突。
# 创建虚拟环境
python -m venv opcua_env
# 激活(Windows)
opcua_env\Scripts\activate
# 激活(macOS/Linux)
source opcua_env/bin/activate
激活后,你会看到命令行前面多了 (opcua_env) 字样。这就对了。
3.2 opcua-asyncio库安装
装库就一句话的事:
pip install opcua-asyncio
但别急着敲回车。我建议你先确认pip版本是最新的:
python -m pip install --upgrade pip
然后安装。如果遇到网络慢的问题,可以加国内镜像源:
pip install opcua-asyncio -i https://pypi.tuna.tsinghua.edu.cn/simple
装完后验证一下:
python -c "import opcua; print(opcua.__version__)"
如果没报错,恭喜你,环境搭好了。我记得第一次装这个库时,因为网络问题反复失败,后来换了清华源才搞定。所以如果你卡住了,先检查网络。
pip list 查看所有已安装的库。opcua-asyncio 会自动安装依赖,比如 asyncua、cryptography 等。
3.3 开发工具选择:VS Code vs PyCharm
这个问题经常有人问。我的回答是:看你的习惯。
| 特性 | VS Code | PyCharm |
|---|---|---|
| 启动速度 | 快 | 慢(尤其是加载大项目) |
| 插件生态 | 丰富,但需要自己配 | 开箱即用,Python功能全 |
| 调试体验 | 不错,但不如PyCharm直观 | 非常好,变量监视、断点管理一流 |
| 资源占用 | 低 | 高(8GB内存以下慎用) |
| 适合场景 | 轻量开发、多语言混用 | 纯Python项目、大型工程 |
我个人习惯用VS Code。为什么?因为OPC UA开发经常要同时看日志、抓包、调试,VS Code的终端集成和插件管理更灵活。但如果你喜欢「装好就能用」,PyCharm的社区版也完全够用。
用VS Code的话,我建议装这几个插件:
- Python(微软官方,提供智能提示和调试)
- Pylance(类型检查,写代码时能提前发现错误)
- GitLens(版本管理,方便回退)
- YAML(后面配置OPC UA节点时会用到)
3.4 模拟服务器搭建:Prosys OPC UA Simulation Server
好,环境搭好了,工具选好了,但咱们没有真实的OPC UA服务器怎么办?别急,用模拟的。
Prosys OPC UA Simulation Server 是我用过最顺手的模拟工具。它免费、稳定、而且自带一堆模拟数据节点。你想想看,没有它,你每次测试都要连现场设备,多麻烦。
下载地址:Prosys官网(免费版够用)
安装后启动,你会看到一个图形界面。默认的服务器地址是 opc.tcp://localhost:53530/OPCUA/SimulationServer。
界面里已经预置了一些节点:
- Counter:一个不断递增的计数器,适合测试订阅
- Random:随机生成的值,模拟传感器数据
- Sine:正弦波,模拟连续变化的过程量
我曾经用这个模拟器测试过一个数据采集系统,连续跑了72小时,没出任何问题。所以你可以放心用它做开发测试。
验证服务器是否正常运行:
# 用Python快速测试
import asyncio
from opcua import Client
async def test_connection():
client = Client("opc.tcp://localhost:53530/OPCUA/SimulationServer")
try:
await client.connect()
print("连接成功!")
# 读取Counter节点的值
node = client.get_node("ns=3;i=1001")
value = await node.read_value()
print(f"Counter值: {value}")
finally:
await client.disconnect()
asyncio.run(test_connection())
如果输出类似 Counter值: 42,说明一切正常。
好,到这里,你的开发环境就全部搭好了。下一章咱们开始写第一个真正的OPC UA客户端程序。到时候你会看到,前面这些准备工作有多值。
- Python 3.10/3.11 + 虚拟环境是推荐组合
- opcua-asyncio 用pip一键安装,注意网络问题
- VS Code轻量灵活,PyCharm功能全面,选你顺手的
- Prosys模拟服务器是本地测试利器,免费版够用