10分钟上手python-opcua:从安装到运行第一个OPC-UA服务器的简单教程
10分钟上手python-opcua:从安装到运行第一个OPC-UA服务器的简单教程
python-opcua 是一个开源的LGPL协议纯Python实现的OPC-UA客户端和服务器库,让你无需复杂配置即可快速搭建工业数据通信系统。本教程将带你在10分钟内完成从环境搭建到运行第一个OPC-UA服务器的全过程,即使是零基础也能轻松上手。
📦 一键安装:30秒完成环境配置
python-opcua支持Python 3.6+环境,通过pip即可完成安装:
pip install python-opcua
如果你需要从源码安装最新开发版,可以克隆项目仓库:
git clone https://gitcode.com/gh_mirrors/py/python-opcua
cd python-opcua
python setup.py install
安装完成后,可通过以下命令验证安装是否成功:
python -c "import opcua; print('python-opcua version:', opcua.__version__)"
🚀 3行代码启动你的第一个OPC-UA服务器
项目提供了极简的服务器示例,位于 examples/server-minimal.py,核心代码仅需3步:
- 创建服务器实例并设置端点
- 注册命名空间(类似数据模型的命名空间)
- 添加变量节点并启动服务
以下是完整代码:
from opcua import Server
server = Server()
server.set_endpoint("opc.tcp://0.0.0.0:4840/freeopcua/server/") # 服务器地址
idx = server.register_namespace("http://examples.freeopcua.github.io") # 注册命名空间
objects = server.get_objects_node()
myobj = objects.add_object(idx, "MyObject") # 添加对象节点
myvar = myobj.add_variable(idx, "MyVariable", 6.7) # 添加变量节点
myvar.set_writable() # 允许客户端写入
server.start() # 启动服务器
print("Server started at {}".format(server.endpoint))
运行脚本后,你将看到服务器成功启动的提示,此时OPC-UA服务器已在本地4840端口运行。
🔍 用客户端连接服务器:5行代码读取数据
服务器运行后,我们可以使用 examples/client-minimal.py 连接并读取数据:
from opcua import Client
client = Client("opc.tcp://localhost:4840/freeopcua/server/")
client.connect() # 连接服务器
myvar = client.get_node("ns=2;i=2") # 获取变量节点
print("Current value:", myvar.get_value()) # 读取变量值
client.disconnect() # 断开连接
运行客户端后,你将看到服务器中"MyVariable"的当前值(初始值为6.7,服务器会每秒自动递增0.1)。
📊 核心功能与应用场景
python-opcua提供了完整的OPC-UA协议支持,包括:
- 数据读写:支持多种数据类型(整数、浮点数、字符串等)
- 事件订阅:实时监控数据变化
- 历史数据:通过 opcua/server/history.py 实现数据存储与查询
- 安全加密:支持证书认证和加密通信(示例:examples/server-with-encryption.py)
典型应用场景包括:
- 工业设备数据采集与监控
- 物联网设备间通信
- 构建工业4.0数据中台
- 自动化测试与仿真系统
❓ 常见问题与解决方案
Q: 服务器启动失败提示端口被占用?
A: 修改 set_endpoint 中的端口号,例如改为 opc.tcp://0.0.0.0:4841/freeopcua/server/
Q: 客户端连接超时?
A: 检查服务器是否已启动,或尝试使用实际IP地址替换 localhost
Q: 如何添加自定义数据类型?
A: 参考 examples/server-create-custom-structures.py 示例
📚 进阶学习资源
- 官方文档:项目中的 docs/ 目录包含完整使用指南
- 示例代码:examples/ 目录提供20+实用示例,涵盖加密通信、事件处理、历史数据等高级功能
- API参考:通过
help(opcua)查看完整API文档
通过本教程,你已掌握python-opcua的基本使用方法。这个轻量级但功能强大的库,让工业数据通信变得简单而高效。现在就动手尝试修改示例代码,创建属于你的OPC-UA应用吧!
更多推荐



所有评论(0)