DataLens

June 7, 2026 · View on GitHub

🌐 工业控制性能分析工具 · 单文件 · 离线可用 · 零依赖

License 中文文档 English Docs


这是什么?

DataLens 是一个单文件、纯前端的工业控制性能分析工具。

不需要安装、不需要联网、不需要服务器——双击 index.html 就能用。

它回答一个核心问题:"当生产指标已经很安全的时候,我们是不是还在过量控制?"

通过可视化"监控指标"和"控制手段"之间的动态关系,DataLens 帮你找到控制成本的可优化空间,直接折算成经济效益。


适用场景

任何"监控指标 + 控制手段 + 法规红线"的工业场景都能用:

行业监控指标控制手段红线
环保 / 电力NOx 浓度 (mg/m³)喷氨量 / 脱硝剂用量50
空分氧纯度 (%)空压机导叶开度 / 功率99.5
锅炉排烟温度 (°C)给煤量 / 送风量150
化工反应温度 (°C)冷却水阀门开度200
水处理出水 COD (mg/L)加药泵频率 / 流量30
钢铁烧结SO₂ 浓度 (mg/m³)脱硫剂用量35
水泥窑颗粒物排放 (mg/m³)收尘器功率10

快速上手

  1. 下载 index.html,用 Chrome / Edge / Firefox 打开
  2. 内置了排放控制示例数据(241 条分钟级数据),开箱即体验
  3. 点击预设场景按钮(保守 / 默认 / 激进),看图表和 KPI 的变化
  4. 要分析自己的数据:Excel 整理好 → 另存为 CSV → 点 📊 导入数据

数据格式(CSV)

在 Excel 里整理好数据,另存为 CSV,导入即可:

时间,指标值,控制量,整点标记
2025-07-11 10:00:00,21.67,0.0,1
2025-07-11 10:01:00,22.34,0.16,0
2025-07-11 10:02:00,23.85,0.30,0
含义格式说明
第 1 列时间戳YYYY-MM-DD HH:MM:SS分钟级或小时级均可
第 2 列监控指标值数字如 NOx 浓度、氧纯度、温度
第 3 列控制量数字如喷氨量、阀门开度、加药量
第 4 列整点标记1 / 0,或 / 空标记每个小时窗口的起点

首行可以是中文/英文表头 — 程序自动识别并跳过。


配置格式(JSON)

配置文件只管理界面显示文字和滑块默认值,不含数据

{
  "siteName": "某燃气电厂",
  "section": "脱硝控制性能分析",
  "pollutant": "NOx",
  "pollutantUnit": "mg/m³",
  "regulator": "脱硝剂",
  "regulatorShort": "喷氨量",
  "regulatorUnit": "kg/h",
  "regulatoryLimit": 50,
  "sliders": {
    "trigger":  { "label": "NOx 触发线",  "val": 40, "min": 35, "max": 50, "unit": "mg/m³" },
    "spray":    { "label": "喷氨识别阈值", "val": 2,  "min": 0.5, "max": 20 },
    "discount": { "label": "节药折扣系数", "val": 15, "min": 5, "max": 30, "unit": "%" }
  }
}

所有页面文字(KPI 卡片、图表标签、说明文字)自动跟随 pollutantregulatorShort 字段变化——

换个场景,改几个 JSON 字段就行,一行代码都不用碰。


三步移植到新场景

以空分装置为例:

  1. 整理 CSV 数据(4 列:时间、氧纯度、导叶开度、整点标记)
  2. 修改 JSON 配置pollutant 改成 "氧纯度"regulatorShort 改成 "导叶开度"regulatoryLimit 改成 99.5
  3. 打开 index.html → 📊 导入 CSV → 📋 加载 JSON → 完成

参考 examples/air-separation/examples/emission-control/ 下的示例文件。


核心概念

概念图表表现含义
触发线橙色虚线低于此线视为"安全区"。安全区还在控制 → 有优化空间
法规上限红色点线硬天花板。小时均值不能超过
预算线灰色虚线物理约束——当前小时还剩多少"余额"可以用
期望控制目标红色实线基于触发线 + 预算动态计算的核心参考曲线
节药空间绿色竖条指标已低于触发线但仍施加控制的区域,打折后是可实现节约量

功能一览

  • 零依赖 — 单个 HTML 文件,Plotly.js v3.3.1 内嵌,无需任何外部资源
  • 100% 离线 — 数据不上传、不联网,全部在浏览器本地处理
  • CSV 导入 — 纯 JavaScript 解析,无第三方库依赖,自动识别表头
  • 数据/配置分离 — 换数据不动配置,换配置不动数据
  • 3 个预设场景 — 保守 / 默认 / 激进,一键切换全部参数
  • 6 个可调参数 — 常用参数高亮,高级参数默认折叠
  • 4 个实时 KPI — 每次拖滑块自动重算,瞬间刷新
  • 双层互动图表 — Plotly 驱动,支持缩放、悬停、导出
  • 操作指引面板 — 可折叠,新用户三步上手

仓库结构

DataLens/
├── index.html                    # 主程序(单文件,即开即用)
├── README.md                     # 英文文档
├── README_zh.md                  # 中文文档(本文件)
├── LICENSE                       # MIT 开源协议
├── .gitignore
└── examples/
    ├── emission-control/         # 排放控制场景(NOx 脱硝示例)
    │   ├── data.csv              #   241 条分钟级数据(10:00–14:00)
    │   └── config.json           #   显示配置
    └── air-separation/           # 空分装置场景(氧纯度控制示例)
        ├── data.csv              #   11 条模拟数据
        └── config.json           #   显示配置

浏览器兼容

Chrome 90+ · Edge 90+ · Firefox 90+ · Safari 15+


常见问题

Q: 为什么用 CSV 而不是直接读 Excel? A: 为了保持零依赖。CSV 是通用交换格式,Excel、WPS、Numbers 都能直接另存为 CSV。纯 JS 解析 CSV 只需二十行代码,解析 .xlsx 需要引入 500KB+ 的第三方库。

Q: 数据安全吗? A: 完全安全。所有数据在浏览器本地处理,不会上传到任何服务器。你可以断网使用,数据不会离开你的电脑。

Q: 图表能导出吗? A: Plotly 工具栏自带截图按钮(相机图标),点击即可导出 PNG 图片。

Q: 可以自定义小时窗口大小吗? A: 当前版本默认按 60 分钟滚动窗口计算。如果要改成其他窗口(如 30 分钟、24 小时),修改 computeWindow 函数中的 6059 两个常量即可。


License

MIT — 随意使用、修改、分发。