Skip to content

ENV-001: 废水废气监测

优先级: 🔴 高 (17.5分) | 技术复用度: 80% | 实施周期: 2-3周

客户原话

"我们园区有30多家制造企业,有的有废水排放,有的有废气排放。环保局要求我们监测排放数据,每个月要上报。但是我们没有监测设备,只能让企业自己报数据,企业报多少就是多少,我们也不知道准不准。去年环保局来检查,发现有企业超标排放,罚了我们园区20万。我们才知道那家企业一直在偷排,但是我们没有监测手段,发现不了。现在环保局要求我们必须安装在线监测设备,数据要实时上传到环保平台。但是设备很贵,一套要十几万,30家企业都装不起。而且数据要人工抄表,每天要花2-3小时,还要整理成Excel上报,太麻烦了。"

—— 某工业园区环保主管

业务场景描述

典型场景

场景1: 排放数据采集

  • 每天早上,环保专员要去各企业抄表
  • 有监测设备的企业,看设备显示屏,手工记录数据
  • 没有设备的企业,问企业要数据,企业口头报
  • 30家企业,要花2-3小时才能抄完
  • 有的企业不在,要等企业上班才能抄
  • 数据记在本子上,回办公室再录入Excel

场景2: 超标发现

  • 环保专员抄表时,发现某企业COD值很高
  • 但是不确定是真的超标,还是设备故障
  • 打电话问企业,企业说设备没问题
  • 环保专员也不是专业人员,不知道怎么判断
  • 等环保局来检查,发现确实超标,已经持续了1个月
  • 园区被罚款,企业也被罚款

场景3: 数据上报

  • 每月5号前,要把上月数据上报环保局
  • 环保专员打开Excel,整理数据
  • 要计算每家企业的日均值、月均值、最大值
  • 要生成报表,填写到环保平台
  • 30家企业,每家10多个指标,要填几百个数据
  • 经常填错,环保局退回重填

场景4: 企业偷排

  • 有的企业晚上偷排,白天正常
  • 环保专员白天抄表,看不出异常
  • 周边居民投诉有异味,但是找不到证据
  • 环保局来突击检查,发现企业在偷排
  • 园区被罚款,企业被停产整顿

场景5: 设备故障

  • 监测设备出故障,显示数据异常
  • 企业不知道是设备坏了,还是真的超标
  • 打电话给设备厂商,厂商说要上门检查
  • 等厂商来,已经过了好几天
  • 这几天的数据都不准,无法上报

核心痛点

  1. 监测覆盖不全 - 很多企业没有监测设备,靠企业自报
  2. 数据采集慢 - 人工抄表,费时费力,数据滞后
  3. 超标发现晚 - 事后才知道超标,无法及时处理
  4. 偷排难发现 - 晚上偷排,白天抄表发现不了
  5. 数据上报难 - 手工整理,容易出错,工作量大

业务流程图

当前人工流程

问题点

  • 人工抄表,耗时长,数据滞后
  • 超标发现晚,无法及时处理
  • 数据整理费时费力,容易出错
  • 偷排难以发现

自动化流程

改进点

  • 实时采集,数据准确及时
  • 自动预警,及时发现超标
  • 自动统计,一键上报
  • 24小时监测,发现偷排

数据流与依赖

数据输入

  • 监测设备数据: COD、氨氮、pH、流量(废水),SO2、NOx、颗粒物、流量(废气)
  • 企业信息: 企业名称、行业类型、排放标准
  • 排放标准: 国家标准、地方标准、行业标准
  • 设备信息: 设备型号、安装位置、校准日期

数据输出

  • 实时监测数据: 提供给环保专员
  • 超标预警: 推送给环保专员和企业
  • 统计报表: 提供给环保局
  • 合规数据: 提供给环保合规管理(→ ENV-003 环保合规管理)

场景依赖关系

技术实现方案

核心功能模块

1. 在线监测设备对接

监测指标:

废水监测:

  • COD(化学需氧量): 反映水中有机物含量
  • 氨氮: 反映水中氮污染程度
  • pH值: 反映水的酸碱度
  • 总磷: 反映水中磷污染程度
  • 总氮: 反映水中氮污染程度
  • 流量: 排放水量

废气监测:

  • SO2(二氧化硫): 反映硫污染
  • NOx(氮氧化物): 反映氮污染
  • 颗粒物(PM10/PM2.5): 反映粉尘污染
  • VOCs(挥发性有机物): 反映有机污染
  • 流量: 排放气量

监测数据结构:

json
{
  "device_id": "WW-C001-001",
  "company_id": "C001",
  "company_name": "XX电镀厂",
  "device_type": "wastewater",
  "location": "废水排放口",
  "timestamp": "2024-03-04 10:30:00",
  "data": {
    "COD": {
      "value": 85,
      "unit": "mg/L",
      "standard": 100,
      "status": "normal"
    },
    "ammonia_nitrogen": {
      "value": 12,
      "unit": "mg/L",
      "standard": 15,
      "status": "normal"
    },
    "pH": {
      "value": 7.2,
      "unit": "",
      "standard_min": 6,
      "standard_max": 9,
      "status": "normal"
    },
    "flow": {
      "value": 15.5,
      "unit": "m³/h",
      "status": "normal"
    }
  },
  "device_status": "online"
}

数据采集频率:

  • 实时数据: 每5分钟采集一次
  • 小时均值: 每小时计算一次
  • 日均值: 每天计算一次
  • 月均值: 每月计算一次

2. 超标预警系统

预警规则:

一级预警(红色): 严重超标

  • 触发条件: 监测值 > 标准值 × 1.5
  • 处理要求: 立即停产整改
  • 通知对象: 环保专员、企业负责人、环保局

二级预警(橙色): 超标

  • 触发条件: 监测值 > 标准值 × 1.2
  • 处理要求: 24小时内整改
  • 通知对象: 环保专员、企业负责人

三级预警(黄色): 接近超标

  • 触发条件: 监测值 > 标准值 × 0.9
  • 处理要求: 加强监测,预防超标
  • 通知对象: 环保专员

预警示例:

json
{
  "alert_id": "ALT202403040001",
  "device_id": "WW-C001-001",
  "company_name": "XX电镀厂",
  "alert_time": "2024-03-04 10:30:00",
  "alert_level": "orange",
  "alert_type": "exceed_standard",
  "indicator": "COD",
  "value": 125,
  "standard": 100,
  "exceed_rate": "25%",
  "description": "COD超标25%,请立即检查处理设施",
  "status": "pending",
  "notified": ["环保专员", "企业负责人"],
  "actions": [
    "检查废水处理设施运行状态",
    "检查药剂投加是否正常",
    "必要时停产整改"
  ]
}

预警处理流程:

javascript
function checkAlert(data) {
  let alerts = []

  Object.keys(data.data).forEach(indicator => {
    let item = data.data[indicator]
    if (!item.standard) return

    let exceedRate = (item.value - item.standard) / item.standard

    // 一级预警
    if (exceedRate >= 0.5) {
      alerts.push({
        level: 'red',
        indicator: indicator,
        value: item.value,
        standard: item.standard,
        exceed_rate: (exceedRate * 100).toFixed(1) + '%',
        action: 'immediate'
      })
      sendNotification(['环保专员', '企业负责人', '环保局'], 'critical')
    }
    // 二级预警
    else if (exceedRate >= 0.2) {
      alerts.push({
        level: 'orange',
        indicator: indicator,
        value: item.value,
        standard: item.standard,
        exceed_rate: (exceedRate * 100).toFixed(1) + '%',
        action: 'urgent'
      })
      sendNotification(['环保专员', '企业负责人'], 'high')
    }
    // 三级预警
    else if (exceedRate >= -0.1) {
      alerts.push({
        level: 'yellow',
        indicator: indicator,
        value: item.value,
        standard: item.standard,
        exceed_rate: (exceedRate * 100).toFixed(1) + '%',
        action: 'monitor'
      })
      sendNotification(['环保专员'], 'normal')
    }
  })

  return alerts
}

3. 偷排识别

偷排特征:

  • 夜间排放量突然增加
  • 排放浓度夜间高于白天
  • 非工作时间有排放
  • 排放数据突然中断(关闭监测设备)

偷排识别算法:

javascript
function detectIllegalDischarge(company_id, date) {
  // 1. 获取当天24小时数据
  let hourlyData = getHourlyData(company_id, date)

  // 2. 计算白天(8:00-18:00)和夜间(18:00-次日8:00)均值
  let daytimeAvg = calculateAverage(hourlyData, 8, 18)
  let nighttimeAvg = calculateAverage(hourlyData, 18, 8)

  // 3. 夜间排放量明显高于白天
  if (nighttimeAvg.flow > daytimeAvg.flow * 1.5) {
    createAlert({
      type: 'illegal_discharge_suspected',
      reason: '夜间排放量异常增加',
      evidence: {
        daytime_flow: daytimeAvg.flow,
        nighttime_flow: nighttimeAvg.flow,
        increase_rate: ((nighttimeAvg.flow / daytimeAvg.flow - 1) * 100).toFixed(1) + '%'
      }
    })
  }

  // 4. 夜间浓度明显高于白天
  if (nighttimeAvg.COD > daytimeAvg.COD * 1.3) {
    createAlert({
      type: 'illegal_discharge_suspected',
      reason: '夜间排放浓度异常增加',
      evidence: {
        daytime_COD: daytimeAvg.COD,
        nighttime_COD: nighttimeAvg.COD,
        increase_rate: ((nighttimeAvg.COD / daytimeAvg.COD - 1) * 100).toFixed(1) + '%'
      }
    })
  }

  // 5. 检查数据中断
  let missingHours = hourlyData.filter(h => h.status === 'offline')
  if (missingHours.length > 2) {
    createAlert({
      type: 'device_offline_suspected',
      reason: '监测设备异常离线',
      evidence: {
        offline_hours: missingHours.map(h => h.hour),
        offline_duration: missingHours.length + '小时'
      }
    })
  }
}

4. 数据统计与上报

统计指标:

javascript
{
  "company_id": "C001",
  "company_name": "XX电镀厂",
  "period": "2024-03",
  "wastewater": {
    "total_discharge": 10500,
    "unit": "m³",
    "indicators": {
      "COD": {
        "daily_avg": 82,
        "monthly_avg": 85,
        "max_value": 95,
        "min_value": 75,
        "standard": 100,
        "compliance_rate": "100%",
        "exceed_days": 0
      },
      "ammonia_nitrogen": {
        "daily_avg": 11,
        "monthly_avg": 12,
        "max_value": 14,
        "min_value": 9,
        "standard": 15,
        "compliance_rate": "100%",
        "exceed_days": 0
      }
    }
  },
  "alerts": {
    "total": 3,
    "red": 0,
    "orange": 1,
    "yellow": 2
  },
  "compliance_status": "compliant"
}

自动上报环保平台:

javascript
function autoReportToEPB(period) {
  // 1. 获取所有企业的监测数据
  let companies = getAllCompanies()

  companies.forEach(company => {
    // 2. 计算统计值
    let stats = calculateStatistics(company.id, period)

    // 3. 生成报表
    let report = generateReport(stats)

    // 4. 上报环保平台
    let result = uploadToEPBPlatform(report)

    if (result.success) {
      recordReportLog(company.id, period, 'success')
    } else {
      recordReportLog(company.id, period, 'failed', result.error)
      sendNotification('环保专员', `${company.name}数据上报失败: ${result.error}`)
    }
  })
}

5. 设备健康管理

设备状态监控:

  • 在线状态: 设备是否正常通信
  • 数据质量: 数据是否异常(如长时间不变、突变)
  • 校准状态: 是否到期需要校准
  • 故障预警: 根据历史数据预测故障

设备健康评分:

javascript
function calculateDeviceHealth(device_id) {
  let score = 100

  // 1. 在线率(权重40%)
  let onlineRate = getOnlineRate(device_id, 30) // 最近30天
  score -= (1 - onlineRate) * 40

  // 2. 数据质量(权重30%)
  let dataQuality = getDataQuality(device_id, 30)
  score -= (1 - dataQuality) * 30

  // 3. 校准及时性(权重20%)
  let lastCalibration = getLastCalibrationDate(device_id)
  let daysSinceCalibration = (new Date() - lastCalibration) / (1000 * 60 * 60 * 24)
  if (daysSinceCalibration > 90) {
    score -= 20
  } else if (daysSinceCalibration > 60) {
    score -= 10
  }

  // 4. 故障频率(权重10%)
  let faultCount = getFaultCount(device_id, 30)
  score -= Math.min(faultCount * 2, 10)

  return {
    score: Math.max(score, 0),
    level: score >= 90 ? 'excellent' : score >= 70 ? 'good' : score >= 50 ? 'fair' : 'poor',
    online_rate: (onlineRate * 100).toFixed(1) + '%',
    data_quality: (dataQuality * 100).toFixed(1) + '%',
    days_since_calibration: daysSinceCalibration,
    fault_count: faultCount
  }
}

技术复用度分析

可复用的技术能力(80%):

技术能力复用场景说明
IoT数据采集ENERGY-001 水电气计量采集相同的设备对接和数据采集
时序数据存储ENERGY-001 水电气计量采集相同的时序数据库
异常检测ENERGY-001 水电气计量采集相同的阈值预警逻辑
数据统计ENERGY-004 能耗分析与优化相同的统计分析能力

需要新开发的能力(20%):

  • 环保平台对接(各地环保平台接口不同)
  • 偷排识别算法
  • 多指标综合预警

实施方案

实施步骤

第1周: 设备选型与安装

  • 梳理需要监测的企业和排放口
  • 选择监测设备(国产或进口)
  • 安装监测设备和数据采集器
  • 配置设备参数和通信

第2周: 系统开发与对接

  • 开发监测数据管理平台
  • 开发预警和统计功能
  • 对接环保平台接口
  • 选择2-3家企业试点测试

第3周: 全面上线与培训

  • 全量企业设备上线
  • 培训环保专员使用系统
  • 培训企业查看监测数据
  • 制定应急预案

成本估算

软件成本:

  • 平台开发: 约8-10万元(可复用现有平台,成本降低60%)
  • 环保平台对接: 约2-3万元
  • 短信推送: 0.05元/条 × 约200条/月 × 12月 = 120元/年

硬件成本:

  • 废水监测设备: 8-12万元/套 × 15套 = 120-180万元
  • 废气监测设备: 10-15万元/套 × 10套 = 100-150万元
  • 数据采集器: 3000元/台 × 25台 = 7.5万元
  • 硬件总成本: 约227.5-337.5万元

: 硬件成本较高,可以考虑:

  • 优先安装重点企业(高污染行业)
  • 采用租赁模式,降低一次性投入
  • 申请政府环保专项资金补贴

人力成本节省:

  • 抄表时间减少100%: 约3万元/年
  • 数据整理时间减少90%: 约2万元/年
  • 年节省成本: 约5万元

其他收益:

  • 避免环保罚款: 约10-50万元/年
  • 及时发现超标,减少环境损失: 难以量化
  • 提升园区环保形象,吸引优质企业: 难以量化
  • 总收益: 约15-55万元/年

投资回收期: 约4-6年(不含硬件) 或 约15-22年(含硬件)

: 由于硬件投入大,建议:

  • 将监测设备成本转嫁给企业(租金包含或单独收费)
  • 申请政府补贴,降低投入
  • 采用分期建设,优先重点企业

预期收益

效率提升:

  • 数据采集时间: 从2-3小时 → 实时自动
  • 数据上报时间: 从2小时 → 5分钟(自动)
  • 超标发现时间: 从1个月 → 实时

合规性提升:

  • 监测覆盖率: 从30% → 100%
  • 数据准确率: 从70% → 99%
  • 超标发现率: 从50% → 95%
  • 偷排发现率: 从10% → 80%

环保效益:

  • 减少超标排放,保护环境
  • 及时发现偷排,震慑违法行为
  • 提升园区环保管理水平

风险与应对

技术风险

风险1: 设备故障率高

  • 表现: 监测设备在恶劣环境下容易损坏
  • 应对:
    • 选择可靠品牌的设备
    • 定期维护保养
    • 购买设备保修服务
    • 关键企业配备备用设备

风险2: 数据传输不稳定

  • 表现: 网络信号差,数据传输中断
  • 应对:
    • 设备支持本地存储,网络恢复后补传
    • 使用4G/5G通信,提高稳定性
    • 设置数据中断预警

风险3: 环保平台接口变更

  • 表现: 环保局更新平台,接口不兼容
  • 应对:
    • 与环保局保持沟通
    • 系统设计灵活,易于调整
    • 保留手工上报功能作为备用

业务风险

风险1: 企业抵触安装设备

  • 表现: 企业担心被监管,不愿意安装
  • 应对:
    • 强调环保合规的重要性
    • 说明设备可以帮助企业及时发现问题
    • 政策要求,必须安装

风险2: 设备投入成本高

  • 表现: 硬件成本高,园区投入压力大
  • 应对:
    • 优先安装重点企业
    • 采用租赁模式
    • 申请政府补贴
    • 将成本转嫁给企业

风险3: 数据真实性质疑

  • 表现: 企业质疑监测数据不准确
  • 应对:
    • 设备定期校准,保证准确性
    • 第三方检测机构比对验证
    • 数据公开透明,可追溯

实施检查清单

上线前检查

  • [ ] 所有企业排放口已确认
  • [ ] 监测设备已安装并校准
  • [ ] 数据采集器已安装并测试
  • [ ] 监测平台已开发并测试
  • [ ] 环保平台接口已对接并测试
  • [ ] 预警规则已配置
  • [ ] 环保专员已培训
  • [ ] 企业已通知
  • [ ] 应急预案已制定

上线后监控

  • [ ] 每日检查设备在线率
  • [ ] 每日检查数据采集情况
  • [ ] 每日检查预警处理情况
  • [ ] 每周检查设备健康状况
  • [ ] 每月核对上报数据
  • [ ] 每季度设备校准

成功案例参考

某制造业园区(30家企业,25个排放口)

实施前:

  • 监测覆盖率: 约30%(只有9家企业有设备)
  • 数据采集时间: 每天2-3小时
  • 超标发现时间: 平均1个月
  • 年环保罚款: 约20-30万元

实施后(1年):

  • 监测覆盖率: 100%(25个排放口全覆盖)
  • 数据采集: 实时自动(节省100%人工)
  • 超标发现: 实时预警(提升100%)
  • 偷排发现: 3起,及时制止
  • 年环保罚款: 0元(节省20-30万元)
  • 环保局检查: 连续2次优秀

相关资源

基于 AI 辅助开发,快速、灵活、可靠