首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >基于SNMP的以太网温湿度记录仪,工厂环境监控数据采集设计

基于SNMP的以太网温湿度记录仪,工厂环境监控数据采集设计

原创
作者头像
盛世宏博小可
发布于 2026-10-28 11:54:36
发布于 2026-10-28 11:54:36
10
举报

基于SNMP的以太网温湿度记录仪,工厂环境监控数据采集设计

物联网 · 工厂环境监控 · SNMP采集 · 盛世宏博

关键词:SNMP、以太网温湿度记录仪、MIB、工厂车间监控、Modbus、轮询调度、OID、SNMPv2c、SNMPv3、动环采集、告警Trap

一、方案背景与选型说明

在元器件车间、SMT无尘车间、电池生产车间、仓储原料库、精密加工厂房这类工厂场景,大量温湿度记录仪需要接入现有网管平台、动环监控系统、机房运维平台。很多工厂运维体系已经以SNMP网管为底座(Zabbix、Prometheus+snmp-exporter、Nagios、自研SNMP网管),不想再单独部署一套Modbus网关、私有UDP采集程序,减少异构协议栈、降低运维学习成本。

普通温湿度变送器大多只提供Modbus TCP/RTU、自定义UDP;SNMP型以太网温湿度记录仪,本质是内置SNMP Agent的采集终端:传感器采集温湿度、露点、压差,设备内部维护MIB对象,网管系统通过SNMP协议读取OID节点,异常时主动上送Trap告警。

适用边界: ✅ 适合场景:工厂已有成熟SNMP网管平台、需要统一网管运维、批量设备资产管理、跨子网远程监控、和交换机/UPS/PDU/空调统一纳入一套监控大屏; ❌ 不适合场景:毫秒级高速闭环PID控制、本地边缘快速联动(SNMP轮询延迟偏高,不推荐做实时调节);这类闭环场景继续沿用前面Modbus TCP/UDP方案。

SNMP版本选型原则(工厂项目最常用):

  1. SNMPv2c:绝大多数温湿度记录仪默认支持,配置简单、社区字认证;缺点明文传输,适合内网隔离工控VLAN;
  2. SNMPv3:生产核心无尘车间、涉密车间优先,支持用户名+鉴权加密(AuthPriv),防篡改、防窃听;
  3. 不推荐SNMPv1:只支持32位计数器,缺陷多,新设备基本不再搭载。

二、系统整体架构

整体采用【Agent(记录仪)→SNMP Manager(采集服务)→时序数据库→监控平台/大屏/告警】经典网管架构,和工厂原有网管体系无缝融合:

代码语言:javascript
复制
工厂车间隔离工控VLAN
├─ SNMP Agent:以太网温湿度记录仪(内置SNMP服务,本地采集SHT/SGP系列传感器,维护私有MIB)
├─ 二层工业交换机:支持VLAN划分、ACL,限制SNMP访问源IP,禁止外网直接访问Agent
├─ SNMP Manager采集层:
   Zabbix / Prometheus snmp_exporter / 自研边缘采集网关 / 企业网管平台
├─ 时序存储:InfluxDB / TDengine,存储温湿度、露点、设备状态
├─ 业务层:车间监控大屏、报表导出、阈值告警、对接MES系统(可选)
└─ 旁路Trap接收:记录仪越限、探头断线主动推送Trap,不需要等待轮询周期

架构关键点:SNMP是拉模式(Manager主动轮询)为主,推模式(Trap主动告警)为辅。轮询用来周期性采集常规数值;Trap用于突发事件告警,弥补轮询周期带来的告警滞后。

三、记录仪端MIB设计(私有MIB,工厂温湿度记录仪)

标准MIB(RFC1213-MIB、IF-MIB)只描述网络接口、系统信息;温湿度属于业务自定义量,厂商一般提供私有MIB文件(.mib),网管导入MIB后,直接用名称读取,不用记忆长OID。

示例私有MIB树结构(iso(1).org(3).dod(6).internet(1).private(4).enterprises(1)下自定义企业节点)

代码语言:javascript
复制
enterprises.xxxx.1        # 设备基础信息组
├─ devName(1)             # 设备名称,字符串
├─ devSn(2)               # 设备SN序列号
├─ devIp(3)               # 设备IP地址
├─ devMac(4)              # MAC地址
├─ devFirmwareVer(5)      # 固件版本
└─ devStatus(6)           # 设备运行状态:0正常 1探头断线 2电源异常

enterprises.xxxx.2        # 传感器数据组(核心业务数据)
├─ sensorCount(1)          # 探头数量
├─ sensorTable(2)          # 传感器表(多探头表格,SNMP Table)
   ├─ sensorEntry(1)
      ├─ sensorIndex(1)    # 探头索引 1,2,3...
      ├─ sensorType(2)     # 传感器类型 温湿度/露点/压差
      ├─ tempValue(3)      # 温度,放大整数存储(例如 ×100,25.12℃存2512)
      ├─ humiValue(4)      # 湿度,×100
      ├─ dewValue(5)       # 露点,×100
      ├─ tempHighTh(6)     # 温度上限阈值
      ├─ tempLowTh(7)      # 温度下限阈值
      ├─ humiHighTh(8)     # 湿度上限阈值
      ├─ humiLowTh(9)      # 湿度下限阈值
      └─ sensorState(10)   # 探头状态 0正常 1断线 2超上限 3超下限

enterprises.xxxx.3        # Trap告警配置组
├─ trapEnable(1)           # Trap开关 0关闭 1开启
├─ trapManagerIp(2)        # 告警接收端IP
└─ trapCommunity(3)        # Trap社区字(v2c)

SNMP数值存储惯例:浮点不直接支持,普遍放大为整数传输。读到tempValue=2536,除以100得到25.36℃;采集程序里必须写缩放转换逻辑,这是SNMP采集最常见踩坑点。

配套Trap OID定义(主动上送事件):

  • trapTempOver:温度越上限
  • trapTempUnder:温度越下限
  • trapHumiOver:湿度越上限
  • trapHumiUnder:湿度越下限
  • trapSensorLost:传感器断线
  • trapPowerFail:电源掉电告警

四、采集策略设计(轮询调度、周期规划)

SNMP不适合极短周期轮询,频繁轮询会加重Agent和交换机负担,甚至造成记录仪卡死、丢包。工厂车间推荐轮询周期按业务分级:

  1. 普通原料仓库:轮询周期 60s
  2. 普通组装车间:轮询周期 30s
  3. SMT无尘车间、精密实验室:轮询周期 15~20s 不建议小于10s高频轮询;快速告警依靠Trap,而不是缩短轮询。

轮询调度算法要点

  1. 分组轮询:同网段几十台记录仪,错开轮询相位,避免同一时刻大量GET请求并发,冲击Agent和交换机,和UDP上报错开思路类似;
  2. 超时与重试:单台设备GET请求超时默认2s,最多重试1次;连续3次读取失败标记设备离线,停止高频轮询,退到低频保活探测;
  3. 批量获取优先使用 GETBULK(v2c/v3支持):一次性拉取sensorTable整张表格,减少报文交互,比多次GETNEXT效率高很多;
  4. 只读隔离:业务数据OID配置为只读;阈值、设备名称等可写OID单独权限管控,生产环境不开放随意修改。

两种采集实现方案

方案A:成熟开源网管采集(项目快速落地首选)
  • Zabbix:导入厂商MIB,创建SNMP模板,自动发现车间记录仪,配置触发器(越限告警);
  • Prometheus + snmp_exporter:根据MIB生成yaml模块,exporter定时拉取,指标送入Prometheus,Grafana绘图;适合现在数字化工厂、MES对接场景。
方案B:自研边缘网关SNMP采集(需要深度对接工厂私有MES)

使用libsnmp、pysnmp、gosnmp开发采集客户端,流程:

  1. 读取系统基础OID做设备心跳、资产管理;
  2. GETBULK读取sensorTable,解析索引、温湿度放大值;
  3. 数值缩放、值域校验、脏数据过滤;
  4. 写入本地时序库,再推送给MES平台;
  5. 开启Trap监听端口UDP 162,异步接收告警事件。

端口说明:SNMP轮询Manager→Agent:UDP 161;Trap Agent→Manager:UDP 162。防火墙/ACL必须放行这两个UDP端口。

五、安全配置(工厂工控内网重点)

很多工厂直接默认public/private社区字,存在极大风险。

  1. SNMPv2c加固措施
    • 修改默认社区字,不要用 public / private;
    • 交换机ACL限制:Agent 161端口只允许采集网关固定IP访问,拒绝其他IP;
    • 工控VLAN和办公网隔离,SNMP报文不跨VLAN泛洪。
  2. SNMPv3加密方案(高等级车间) 推荐安全级别 authPriv:
    • 认证算法:SHA-256
    • 加密算法:AES-256 只授权采集只读权限,区分读写用户;禁止使用noAuthNoPriv无安全模式。
  3. Trap安全:Trap也配置独立社区字,Trap接收端校验来源IP+社区字,丢弃非法告警包,防止伪造告警。

六、和Modbus体系对比、混合采集设计

很多工厂项目是混合部署:一部分记录仪用SNMP接入网管,一部分点位继续Modbus TCP接入边缘联动,两套体系并存。

特性

SNMP采集(本方案)

Modbus TCP采集

定位

网管监控、资产管理、告警上送、对接现有网管平台

本地闭环控制、边缘联动、高频读取

传输

UDP为主,161端口,拉取+Trap推送告警

TCP,502端口,一问一答

数据组织

MIB树、Table表格,适合批量设备标准化管理

寄存器点表,灵活自定义

实时性

轮询延迟偏高,适合监控,不适合闭环调节

延迟可控,适合PID联动

标准化

网管领域标准,交换机、服务器通用

工业传感器标准

混合采集典型设计: 记录仪同时支持 Modbus TCP + SNMP双协议。

  • SNMP:给上层网管、MES做周期性监控、资产台账、超限告警;
  • Modbus TCP:本地边缘网关读取,用于车间新风、空调联动调节; 两套协议独立工作,互不抢占传感器读取资源,固件里做互锁,避免同时高频读取传感器造成冲突。

七、工程落地踩坑记录

坑1:MIB导入失败、OID读不到数据

根因:厂商MIB依赖其他基础MIB(RFC支持文件),导入缺少依赖;或者MIB是v2格式,老网管只支持v1。 整改:拿到完整MIB包,包含所有依赖;优先使用snmpwalk命令在调试阶段验证OID,确认返回数据再上平台。 调试命令示例(Linux):

代码语言:javascript
复制
# snmpwalk v2c 测试
snmpwalk -v2c -c "mycommunity" 192.168.1.100 enterprises.xxxx.2.2

坑2:读到整数,忘记缩放,直接展示2512℃

根因:SNMP没有原生浮点类型,厂商全部放大存储,采集程序没有除以缩放系数。 整改:MIB文档里明确标注缩放因子,采集代码统一转换,增加值域判断(温度 -2080℃,湿度0100%RH),超范围直接标记脏数据丢弃。

坑3:Trap收不到,告警丢失

根因:

  1. 防火墙拦截UDP 162;
  2. Trap目标IP填错;
  3. 记录仪Trap社区字和接收端配置不一致;
  4. 很多设备Trap默认关闭,需要通过SNMP可写OID或者网页先开启Trap。

坑4:大批量设备并发轮询,记录仪无响应、丢请求

根因:多线程同时对多台设备并发GETBULK,瞬间UDP报文风暴;廉价记录仪内置SNMP Agent性能弱。 整改:增加并发池,控制同时活跃请求数量;错开轮询相位,不要同一时间全量拉取。

坑5:SNMP和Modbus同时访问传感器,读数卡死、跳变

根因:传感器读写互斥没做好,双协议同时抢占传感器总线。 整改:固件增加传感器访问锁,串行读取;上层业务错开采集窗口,不要两个协议同时高频轮询。

坑6:跨子网SNMP不通

根因:很多工业交换机默认不转发SNMP广播;Trap是单向UDP,回程路由缺失。 整改:Trap使用单播Trap(现在主流设备支持),不使用广播Trap;保证采集网关和记录仪之间路由可达,放行UDP 161/162。

八、配套验收指标

  1. 单台记录仪SNMP轮询读取成功率≥99.5%;
  2. Trap告警触发到接收端时延<3s;
  3. 连续72h运行,无Agent死机、无断连;
  4. 资产信息(SN、固件版本、IP)可通过SNMP统一自动发现,不用手工录入台账;
  5. 权限验收:只读账号不能修改阈值,v3加密抓包无法解析业务数据。

九、总结

基于SNMP的以太网温湿度记录仪采集方案,核心价值是融入工厂现有网管生态,统一资产、统一监控、统一告警,不用新增一套独立协议网关。它以SNMP GET/GETBULK周期性拉取温湿度数据,搭配Trap实现异常主动告警;适合SMT车间、原料仓库、精密厂房这类已经部署网管平台的数字化工厂。 设计上要注意SNMP本身的限制:不适合闭环控制、浮点需要整数缩放、做好内网ACL隔离、优先SNMPv3加密;如果同时需要本地空调联动,可以启用设备双协议(SNMP+Modbus TCP)混合架构,兼顾上层监控和本地自动化联动。

标签:#SNMP温湿度记录仪 #工厂环境监控 #SNMP Agent #MIB设计 #snmp_exporter #Zabbix环境采集 #工控VLAN #Trap告警 #以太网记录仪 #车间温湿度采集

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 基于SNMP的以太网温湿度记录仪,工厂环境监控数据采集设计
    • 一、方案背景与选型说明
    • 二、系统整体架构
    • 三、记录仪端MIB设计(私有MIB,工厂温湿度记录仪)
    • 四、采集策略设计(轮询调度、周期规划)
      • 轮询调度算法要点
      • 两种采集实现方案
    • 五、安全配置(工厂工控内网重点)
    • 六、和Modbus体系对比、混合采集设计
    • 七、工程落地踩坑记录
      • 坑1:MIB导入失败、OID读不到数据
      • 坑2:读到整数,忘记缩放,直接展示2512℃
      • 坑3:Trap收不到,告警丢失
      • 坑4:大批量设备并发轮询,记录仪无响应、丢请求
      • 坑5:SNMP和Modbus同时访问传感器,读数卡死、跳变
      • 坑6:跨子网SNMP不通
    • 八、配套验收指标
    • 九、总结
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档