从 OPC UA 服务器采集数据并存储到 MySQL 数据库的 Python 工具。
- 自动连接 OPC UA 服务器并读取节点数据
- 多线程并发读取,提高采集效率
- 节点缓存机制,减少重复扫描
- 按日期自动创建 MySQL 表
- 支持从 CSV 文件加载测点单位信息
- 定时循环采集(默认每分钟)
- Python 3.6+
- OPC UA 服务器
- MySQL 数据库
pip install opcua pymysql pytz- 复制配置示例文件:
cp config.example.py config.py- 编辑
config.py,填入实际配置:
OPC_URL = "opc.tcp://your-server:4841"
OPC_USER = "username"
OPC_PASS = "password"
DB_HOST = "mysql-host"
DB_USER = "db_user"
DB_PASS = "db_password"
DB_NAME = "database_name"- 准备 CSV 文件(可选):
- 文件名:
measurement_point_data.csv - 必需列:
TagName,Unit
- 文件名:
python opcua_to_mysql.py程序将持续运行,每分钟采集一次数据。
每天自动创建新表,格式:device_parameters_YYYY-MM-DD
| 字段 | 类型 | 说明 |
|---|---|---|
| tagname | VARCHAR(255) | 标签名(主键) |
| description | VARCHAR(500) | 描述 |
| unit | VARCHAR(50) | 单位 |
| data_type | VARCHAR(50) | 数据类型 |
| value | TEXT | 时间序列值 |
- 确保 OPC UA 服务器可访问
- 确保 MySQL 数据库已创建
- 缓存文件默认每 0.5 小时刷新一次
- 程序需要读取
rytongTags文件夹下的节点
MIT