Skip to content

面向 IIoT 在采集点入库场景的数据治理与预处理工具集。包含基于数据字典的自动校验、多源异构表格合并及Schema字段映射清洗工具,旨在解决平台集成前的“最后一公里”数据质量问题(后续校验逻辑会迁移到平台),实现标准化交付与快速上线。

Notifications You must be signed in to change notification settings

mzr312312/data-point-check

Repository files navigation

🌞光伏采集点入库校验工具 (PV IIoT Data Point Validator)

📖 项目背景 (Introduction)

在光伏电池与组件制造的数字化项目中,采集点表(Tag List) 是连接 OT 层(设备)与 IT 层(SCADA/MES/IoT平台)的核心数据资产。

在实际交付中,我们通常面临以下痛点:

  1. 数据源混乱:设备厂商提供的点位表格式各异,表头命名不统一。
  2. 人工校验耗时:一张包含数千个点位的采集表,依靠人工检查枚举值(如“工序名称”是否符合标准)极易出错。
  3. 逻辑不一致:同一台设备的数百个点位,往往因为复制粘贴错误,导致其“车间”、“产线”等属性不一致,造成入库失败。
  4. IoT平台不具备入库校验功能且开发周期较长,为了项目进度不被耽搁,开发此工具,辅助手工校验。

本项目提供了一套基于 Python 的桌面端工具集,用于在数据入库前进行清洗、合并与自动化校验,确保交付给开发团队的数据是标准、干净的。

🛠 功能模块 (Modules)

本项目包含三个独立工具,覆盖数据处理的全流程:

1. 采集点校验器 (Data Point Validator)

文件01_字典和设备名称校验 核心校验逻辑,支持 GUI 操作,输出错误日志并生成标黄的错误文件

  • 字典枚举校验

  • 基于 采集表校验字典.md 动态加载规则。

  • 自动检查“数据类型”、“读写权限”、“单位”等字段是否在标准白名单内。

  • 特点:业务人员只需修改 Markdown 文件即可更新校验规则,无需改代码。

  • 设备属性一致性校验(亮点)

  • 针对同一 设备名称 下的所有点位,自动检查其静态属性(如:基地、车间、工段、工序、设备子类型)是否一致。

  • 场景:防止出现“同一台单晶炉,前10个点位在A车间,后10个点位被误写成B车间”的情况。

  • 空值与格式清洗:自动去除全角空格、换行符等不可见字符。

2. 表头标准化工具 (Header Standardizer)

文件02_批量修改表头 解决多厂商表头命名不规范的问题(例如厂商写“设备名”,标准库要求“设备名称”)。

  • 基于 列名字典.xlsx 定义映射关系。
  • 自动重命名:将非标列名批量替换为标准列名。
  • 自动排序:按照标准模板的列顺序重新排列 Excel 列,确保入库模板一致。

3. 表格合并工具 (Table Merger)

文件03_合并选中的表格 用于将分散在不同工段、不同负责人的多个 Excel 文件合并为一张总表。

  • 智能 Schema 对齐:支持列名不完全一致的表格合并(取并集),自动填充缺失列。
  • 数据溯源:合并后自动新增“来源文件”列,便于追踪某条脏数据出自哪个原始文件。
  • 多 Sheet 处理:自动识别并合并所有 Sheet 的数据。

🚀 使用指南 (Usage)

本工具集基于 Python 3.12 开发,使用了 tkinter 构建图形界面,方便非技术人员使用。

环境依赖

pip install pandas openpyxl numpy

1. 配置规则

  • 校验规则:编辑 01_.../采集表校验字典.md。使用二级标题 ## 定义字段名,列表项 - 定义允许的枚举值。
  • 列名映射:编辑 02_.../列名字典.xlsx。在“列名映射关系”Sheet 中定义旧名与新名。

2. 运行工具

双击对应的 .py 脚本或在命令行运行:

# 运行校验工具
python 01_字典和设备名称校验/字典和设备名称校验.py

# 运行表头清洗工具
python 02_批量修改表头/批量修改表头.py

3. 查看结果

  • 校验工具会在界面输出详细日志,指出具体哪一行、哪一列出错。
  • 若发现错误,会生成一个新的 Excel 文件,错误单元格将自动填充为黄色背景,方便快速定位修正。

📂 项目结构 (Structure)

.
├── 00_批量生成图标ICO/          # GUI图标生成辅助脚本
├── 01_字典和设备名称校验/        # [核心] 校验逻辑与规则定义
│   ├── 字典和设备名称校验.py
│   └── 采集表校验字典.md        # 校验规则配置文件(Markdown格式)
├── 02_批量修改表头/             # ETL清洗逻辑
│   ├── 批量修改表头.py
│   └── 列名字典.xlsx           # 字段映射配置文件
├── 03_合并选中的表格/            # 数据汇聚逻辑
│   ├── combine_table.py
│   └── readme.md
└── requirements.txt            # 项目依赖

📝 备注 (Notes)

  • 关于一致性算法:在进行设备分组校验时,程序采用了“众数投票”机制(Mode),即以该设备下出现次数最多的属性值为基准,标记与之不符的异常项。
  • 扩展性:虽然本项目基于光伏场景设计,但其“Markdown定义字典”+“Pandas校验核心”的架构是通用的,可轻松迁移至锂电、化工等其他离散或流程制造场景。

About

面向 IIoT 在采集点入库场景的数据治理与预处理工具集。包含基于数据字典的自动校验、多源异构表格合并及Schema字段映射清洗工具,旨在解决平台集成前的“最后一公里”数据质量问题(后续校验逻辑会迁移到平台),实现标准化交付与快速上线。

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages