# 景兴故障测点筛选工具 本项目包含两个主要工具,用于处理振动数据和筛选故障测点。 ## 功能模块 ### 1. 振动数据文件解析工具 (parse_file.py) 用于解析振动数据文件,支持从FDFS下载文件或从本地文件系统读取,解析数据并计算不对称性。 **主要功能:** - 解析FDFS文件路径或本地文件 - 支持JSON格式和压缩格式的数据解析 - 计算振动数据的不对称性(abs正、abs负) ### 2. 设备和通道筛选工具 (query_device_filter.py) 用于从数据库中查询和筛选符合条件的设备和通道组合,筛选出故障测点。 **筛选条件:** - task_id = 2 - 对于每个device_id和channel_no的组合,取最新的10条记录(按generate_time) - 如果这10个value值中有超过3个值大于20,则记录该(device_id, channel_no)组合 - 解析每个通道最近10条文件记录,计算不对称性 **输出结果:** - 符合条件的设备ID、设备名称 - 通道号、通道名称 - 最近10条文件记录及其不对称性数据 - 结果保存到带时间戳的文本文件中 ## 环境要求 - Python 3.8.3 或更高版本 - 支持 Windows 和 Linux (CentOS 7.9) 系统 - MySQL数据库连接 ## 安装依赖 ### Windows 环境 ```bash pip install -r requirements.txt ``` ### CentOS 7.9 环境 详细部署说明请参考 [README_CENTOS.md](README_CENTOS.md) 快速部署(使用脚本): ```bash chmod +x deploy_centos.sh ./deploy_centos.sh ``` 或手动安装: ```bash python3 -m pip install -r requirements.txt --user ``` ## 使用方法 ### 解析振动数据文件 ```bash python parse_file.py ``` **示例:** ```bash # FDFS路径 python parse_file.py group1/M00/4C/AD/wKgUZWlQzpKAcUtmAA03b1suhI44618492 # 本地文件路径 python parse_file.py /home/soft/data/fdfs/storage/data/4C/AD/wKgUZWlQzpKAcUtmAA03b1suhI44618492 ``` **输出内容:** - 解析后的数据(JSON格式) - 数据类型和基本信息 - 不对称性计算结果(abs正、abs负) ### 查询和筛选故障测点 ```bash python query_device_filter.py ``` **输出内容:** - 符合条件的设备ID和通道组合列表 - 每个组合的设备名称和通道名称 - 最近10条文件记录及其不对称性数据 - 结果会自动保存到 `query_result_YYYYMMDD_HHMMSS.txt` 文件中 ## 数据库配置 - 主机: 127.0.0.1 - 端口: 3306 - 用户名: prod - 密码: hmdmxjIvfIjIoflL - 数据库: iot ## 依赖项 - pymysql==1.0.2 - MySQL数据库连接 ## 文件说明 - `parse_file.py` - 振动数据文件解析工具 - `query_device_filter.py` - 设备和通道筛选工具 - `requirements.txt` - Python依赖包列表 - `deploy_centos.sh` - CentOS 7.9 部署脚本 - `README_CENTOS.md` - CentOS 7.9 详细部署说明 - `iot.sql` - 数据库表结构(如适用) ## 注意事项 1. **文件路径**:parse_file.py 支持FDFS路径和本地路径,本地路径需要正确配置FDFS存储路径映射 2. **数据库连接**:确保数据库服务正常运行且网络可达 3. **编码设置**:脚本会自动处理Windows和Linux环境下的编码问题 4. **结果文件**:query_device_filter.py 会在当前目录生成带时间戳的结果文件 ## 故障排查 ### 数据库连接问题 如果出现数据库连接失败: - 检查数据库服务是否运行 - 检查网络连通性:`ping 127.0.0.1` - 检查端口是否开放:`telnet 127.0.0.1 3306` 或 `nc -zv 127.0.0.1 3306` - 验证数据库用户名和密码是否正确 ### 模块未找到错误 如果提示 `ModuleNotFoundError: No module named 'pymysql'`: ```bash pip install pymysql==1.0.2 # 或 python3 -m pip install pymysql==1.0.2 --user ``` ### 文件解析错误 - 确保文件路径正确 - 检查文件是否存在 - 验证文件格式是否正确(支持JSON格式或zlib压缩格式)