DataLens
June 7, 2026 · View on GitHub
🌐 工业控制性能分析工具 · 单文件 · 离线可用 · 零依赖
这是什么?
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 |
快速上手
- 下载
index.html,用 Chrome / Edge / Firefox 打开 - 内置了排放控制示例数据(241 条分钟级数据),开箱即体验
- 点击预设场景按钮(保守 / 默认 / 激进),看图表和 KPI 的变化
- 要分析自己的数据: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 卡片、图表标签、说明文字)自动跟随 pollutant 和 regulatorShort 字段变化——
换个场景,改几个 JSON 字段就行,一行代码都不用碰。
三步移植到新场景
以空分装置为例:
- 整理 CSV 数据(4 列:时间、氧纯度、导叶开度、整点标记)
- 修改 JSON 配置 —
pollutant改成"氧纯度",regulatorShort改成"导叶开度",regulatoryLimit改成99.5 - 打开
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 函数中的 60 和 59 两个常量即可。
License
MIT — 随意使用、修改、分发。