基于西门子proneta软件的网络设备台账自动管理软件
网络设备台账自动管理软件
https://gitee.com/weloveut1/proneta_professional_manager
1. 软件简介
网络设备台账自动管理软件是一款专门用于自动收集、解析、存储和可视化工业网络设备信息的综合工具。该软件包含两个主要模块:
- 数据采集模块:通过MQTT协议接收来自网络扫描工具(如Siemens Proneta)的设备数据,自动解析XML格式的设备信息,并将其存储到SQLite数据库中。
- Web管理模块:基于Flask框架开发的Web界面,提供设备信息的增删改查、数据可视化、搜索筛选等功能,实现网络设备台账的自动化管理与便捷查看。
2. 功能特点
2.1 自动数据采集
- 通过MQTT协议实时接收网络设备扫描结果
- 支持Siemens S7-1500等工业设备数据的自动识别和处理
2.2 智能解析处理
- 自动解析XML格式的设备信息
- 提取设备名称、IP地址、MAC地址、设备类型等关键信息
- 识别设备接口和端口配置
2.3 数据库存储
- 将设备数据自动写入SQLite数据库
- 支持设备记录的新增和更新
- 记录时间戳便于追踪设备状态变化
2.4 数据备份与查看
- 将接收到的原始XML数据保存为文件
- 提供设备信息的实时打印展示
2.5 Web界面管理
- Tab选项卡功能:将设备列表和统计信息分为独立的Tab选项卡,优化界面布局和用户体验
- 设备列表展示:分页显示所有设备信息,支持设备的查看、编辑和删除,每页显示10条记录
- 数据搜索筛选:通过设备名称、IP地址、设备类型等多条件搜索设备
- 数据可视化:展示设备类型分布和制造商分布的图表
- 统计信息展示:显示设备总数、设备类型数、制造商数等统计数据
- 设备管理操作:支持添加新设备、编辑设备信息、删除设备等功能
- 西门子风格设计:采用西门子公司风格的配色方案,提升界面专业度
- 表格列自定义:隐藏了设备标识、制造商ID、设备角色和网关地址等冗余列,简化视图
3. 系统要求
3.1 硬件要求
- CPU:Intel Core i3或更高配置
- 内存:4GB或更高
- 硬盘空间:至少100MB可用空间
3.2 软件要求
- 操作系统:Windows 7/10/11
- Python 3.6或更高版本
- MQTT服务器(如Eclipse Mosquitto)- 仅数据采集模块需要
- SQLite数据库支持
- 浏览器:Chrome、Firefox、Safari或Edge(用于访问Web界面)
3.3 依赖库
- paho-mqtt:MQTT客户端库(数据采集模块)
- sqlite3:数据库操作库
- xml.etree.ElementTree:XML解析库
- dataclasses:数据类支持
- flask:Web框架(Web管理模块)
- flask-cors:跨域资源共享支持(Web管理模块)
- chart.js:数据可视化库(Web前端)
4. 项目结构
proneta_client/
├── README.md # 项目说明文档
├── backend.html # Web管理模块主页面
├── backend.py # Web管理模块后端代码(基于Flask)
├── proneta_client.py # 数据采集模块主程序
├── sample.xml # 示例XML数据文件
└── lib/ # Web前端资源文件夹├── script.js # JavaScript交互逻辑└── style.css # CSS样式文件
5. 安装说明
5.1 安装Python环境
- 从Python官网下载并安装Python 3.6或更高版本
- 确保Python和pip已添加到系统环境变量
5.2 安装依赖库
打开命令提示符,执行以下命令安装必要的依赖库:
# 安装数据采集模块依赖
pip install paho-mqtt# 安装Web管理模块依赖
pip install flask flask-cors
5.3 配置MQTT服务器(数据采集模块)
- 安装并启动MQTT服务器(如Mosquitto)
- 确保服务器配置正确,能够接收来自Proneta的消息
5.4 准备数据库环境
- 确保目标数据库路径存在(软件会自动创建所需的数据库和表结构)
- Web管理模块会自动在软件目录下创建SQLite数据库
6. 使用方法
6.1 启动数据采集模块
- 打开命令提示符,导航到软件安装目录
- 执行以下命令启动数据采集模块:
python proneta_client.py
6.2 查看数据采集模块运行状态
- 模块启动后会尝试连接到MQTT服务器
- 连接成功后会显示"连接成功,开始循环处理消息…"的提示
- 当收到设备数据时,模块会自动解析并写入数据库
6.3 检查数据存储
- 查看指定路径下的SQLite数据库文件
- 检查软件当前目录下的sample.xml文件,确认原始数据已保存
6.4 启动Web管理模块
- 确保数据库已正确创建
- 打开命令提示符,导航到软件安装目录
- 执行以下命令启动Web管理模块:
python backend.py
- 服务器启动成功后,会显示类似以下信息:
数据库初始化成功
* Serving Flask app 'backend'
* Debug mode: on
* Running on http://127.0.0.1:5000
* Running on http://192.168.0.114:5000
6.5 访问Web界面
- 打开浏览器
- 在地址栏输入以下URL之一:
- http://localhost:5000/backend.html
- http://192.168.0.114:5000/backend.html(根据实际显示的IP地址调整)
- 进入网络设备台账管理系统Web界面
6.6 Web界面功能使用
6.6.1 查看设备列表
- 进入Web界面后,系统会自动加载所有设备信息
- 设备列表以表格形式展示,包含设备ID、名称、IP地址、类型等信息
- 使用分页控件浏览多页数据
6.6.2 搜索设备
- 在搜索区域输入设备名称、IP地址或设备类型
- 点击"搜索"按钮进行搜索
- 点击"重置"按钮清除搜索条件
6.6.3 查看设备详情
- 在设备列表中找到目标设备
- 点击设备行右侧的"查看"按钮
- 在弹出的模态框中查看设备的详细信息
6.6.4 编辑设备信息
- 在设备列表中找到目标设备
- 点击设备行右侧的"编辑"按钮
- 在弹出的编辑模态框中修改设备信息
- 点击"保存"按钮提交更改
6.6.5 添加新设备
- 点击页面上方的"添加设备"按钮
- 在弹出的添加模态框中填写设备信息
- 点击"保存"按钮添加新设备
6.6.6 删除设备
- 在设备列表中找到目标设备
- 点击设备行右侧的"删除"按钮
- 在确认对话框中点击"确定"删除设备
7. 配置说明
7.1 数据采集模块配置
数据采集模块的主要配置项位于proneta_client.py文件的开头部分:
# MQTT服务器配置
HOST = "127.0.0.1" # MQTT服务器地址
PORT = 1883 # MQTT服务器端口
KEEP_ALIVE = 60 # 保活时间(秒)
TOPIC = "proneta/device/+" # 订阅的主题# 数据库路径配置(在on_message函数中)
db_path = "C:\\UnifiedArchive\\TLGDB\\HMI_RT_1-1_TLG408\\HMI_RT_1-1_TLG408_20251010_013245.db3"
7.1.1 修改MQTT连接配置
如需连接到不同的MQTT服务器,修改HOST和PORT参数即可。
7.1.2 修改数据库路径
如需更改数据存储位置,修改on_message函数中的db_path参数,并确保使用双反斜杠表示路径。
7.1.3 配置MQTT认证
如果MQTT服务器需要认证,可以取消注释并修改以下代码:
#client.username_pw_set("admin", "123456")
7.2 Web管理模块配置
Web管理模块的主要配置项位于backend.py文件中:
# 数据库路径配置
DB_PATH = "c:\\proneta_client\\devices.db"# Flask应用配置
app = Flask(__name__, static_folder='.', static_url_path='')
7.2.1 修改数据库路径
如需更改Web管理模块使用的数据库位置,修改DB_PATH参数即可,确保使用双反斜杠表示路径。
7.2.2 修改Flask服务器配置
如需更改Flask服务器的端口或其他配置,可以在backend.py文件末尾的app.run()函数中添加参数:
if __name__ == '__main__':app.run(host='0.0.0.0', port=5000, debug=True)
8. 数据库结构说明
软件会在指定路径自动创建SQLite数据库和device表,表结构如下:
字段名 | 数据类型 | 说明 |
---|---|---|
id | INTEGER | 主键,自增长 |
name_of_station | TEXT | 设备名称 |
ip_address | TEXT | IP地址 |
gateway_ip | TEXT | 网关地址 |
network_mask | TEXT | 子网掩码 |
device_id | TEXT | 设备ID |
device_type | TEXT | 设备类型 |
mac | TEXT | MAC地址 |
manufacturer_id | TEXT | 制造商ID |
manufacturer_name | TEXT | 制造商名称 |
role | TEXT | 设备角色 |
run_state | TEXT | 运行状态 |
order_id | TEXT | 订单ID |
serial_number | TEXT | 序列号 |
hardware_revision | TEXT | 硬件版本 |
software_revision | TEXT | 软件版本 |
timestamp | DATETIME | 记录时间戳 |
9. 常见问题与解决方案
9.1 MQTT连接失败
- 问题现象:显示"连接超时"或"连接被拒绝"错误
- 解决方案:确认MQTT服务器是否已启动,检查HOST和PORT参数是否正确
9.2 数据库写入错误
- 问题现象:显示"数据库操作错误"或"写入数据库时发生错误"
- 解决方案:确认数据库路径是否存在,检查用户是否有写入权限,确保路径中的反斜杠已正确转义(使用双反斜杠)
9.3 消息解析失败
- 问题现象:显示"XML解析错误"或"处理消息时发生错误"
- 解决方案:检查收到的XML数据格式是否正确,查看sample.xml文件确认原始数据
9.4 Web页面无法访问
- 问题现象:浏览器显示"无法访问此网站"或"连接被拒绝"
- 解决方案:确认Flask服务器是否已启动,检查访问的IP地址和端口是否正确
9.5 图表无法显示
- 问题现象:统计图表区域为空白或显示错误
- 解决方案:确认Chart.js库是否已正确加载,检查浏览器控制台是否有相关错误信息
10. 技术支持
如遇无法解决的问题,请联系技术支持:私信我就行
11. 更新日志
版本 1.2 (2025-10-14)
- 新增Tab选项卡功能:将设备列表和统计信息分为独立的Tab选项卡
- 优化表格样式:移除了表格的垂直滚动条,采用更直观的页面布局
- 调整分页设置:每页默认显示10条设备记录
- 应用西门子风格设计:采用西门子公司风格的配色方案(主色调#003057,辅助色#7AC142和#F47B20)
- 优化表格显示:隐藏了设备标识、制造商ID、设备角色和网关地址列
- 提升用户体验:优化了界面交互和视觉设计
版本 1.1 (2023-10-11)
- 添加了Web管理模块
- 实现了基于Flask的设备管理API
- 开发了响应式设备管理Web界面
- 增加了数据可视化功能(设备类型分布、制造商分布图表)
- 实现了设备搜索、分页、增删改查等功能
版本 1.0 (2023-10-10)
- 初始版本发布
- 支持MQTT消息接收和解析
- 实现设备数据写入SQLite数据库
- 提供设备信息打印和XML文件保存功能