10分钟上手python-opcua:从安装到运行第一个OPC-UA服务器的简单教程

【免费下载链接】python-opcua LGPL Pure Python OPC-UA Client and Server 【免费下载链接】python-opcua 项目地址: https://gitcode.com/gh_mirrors/py/python-opcua

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步:

  1. 创建服务器实例并设置端点
  2. 注册命名空间(类似数据模型的命名空间)
  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应用吧!

【免费下载链接】python-opcua LGPL Pure Python OPC-UA Client and Server 【免费下载链接】python-opcua 项目地址: https://gitcode.com/gh_mirrors/py/python-opcua

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐