
物联网 · 工厂环境监控 · 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版本选型原则(工厂项目最常用):
整体采用【Agent(记录仪)→SNMP Manager(采集服务)→时序数据库→监控平台/大屏/告警】经典网管架构,和工厂原有网管体系无缝融合:
工厂车间隔离工控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(RFC1213-MIB、IF-MIB)只描述网络接口、系统信息;温湿度属于业务自定义量,厂商一般提供私有MIB文件(.mib),网管导入MIB后,直接用名称读取,不用记忆长OID。
示例私有MIB树结构(iso(1).org(3).dod(6).internet(1).private(4).enterprises(1)下自定义企业节点)
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定义(主动上送事件):
SNMP不适合极短周期轮询,频繁轮询会加重Agent和交换机负担,甚至造成记录仪卡死、丢包。工厂车间推荐轮询周期按业务分级:
GETBULK(v2c/v3支持):一次性拉取sensorTable整张表格,减少报文交互,比多次GETNEXT效率高很多;使用libsnmp、pysnmp、gosnmp开发采集客户端,流程:
端口说明:SNMP轮询Manager→Agent:UDP 161;Trap Agent→Manager:UDP 162。防火墙/ACL必须放行这两个UDP端口。
很多工厂直接默认public/private社区字,存在极大风险。
authPriv:很多工厂项目是混合部署:一部分记录仪用SNMP接入网管,一部分点位继续Modbus TCP接入边缘联动,两套体系并存。
特性 | SNMP采集(本方案) | Modbus TCP采集 |
|---|---|---|
定位 | 网管监控、资产管理、告警上送、对接现有网管平台 | 本地闭环控制、边缘联动、高频读取 |
传输 | UDP为主,161端口,拉取+Trap推送告警 | TCP,502端口,一问一答 |
数据组织 | MIB树、Table表格,适合批量设备标准化管理 | 寄存器点表,灵活自定义 |
实时性 | 轮询延迟偏高,适合监控,不适合闭环调节 | 延迟可控,适合PID联动 |
标准化 | 网管领域标准,交换机、服务器通用 | 工业传感器标准 |
混合采集典型设计: 记录仪同时支持 Modbus TCP + SNMP双协议。
根因:厂商MIB依赖其他基础MIB(RFC支持文件),导入缺少依赖;或者MIB是v2格式,老网管只支持v1。 整改:拿到完整MIB包,包含所有依赖;优先使用snmpwalk命令在调试阶段验证OID,确认返回数据再上平台。 调试命令示例(Linux):
# snmpwalk v2c 测试
snmpwalk -v2c -c "mycommunity" 192.168.1.100 enterprises.xxxx.2.2根因:SNMP没有原生浮点类型,厂商全部放大存储,采集程序没有除以缩放系数。 整改:MIB文档里明确标注缩放因子,采集代码统一转换,增加值域判断(温度 -2080℃,湿度0100%RH),超范围直接标记脏数据丢弃。
根因:
根因:多线程同时对多台设备并发GETBULK,瞬间UDP报文风暴;廉价记录仪内置SNMP Agent性能弱。 整改:增加并发池,控制同时活跃请求数量;错开轮询相位,不要同一时间全量拉取。
根因:传感器读写互斥没做好,双协议同时抢占传感器总线。 整改:固件增加传感器访问锁,串行读取;上层业务错开采集窗口,不要两个协议同时高频轮询。
根因:很多工业交换机默认不转发SNMP广播;Trap是单向UDP,回程路由缺失。 整改:Trap使用单播Trap(现在主流设备支持),不使用广播Trap;保证采集网关和记录仪之间路由可达,放行UDP 161/162。
基于SNMP的以太网温湿度记录仪采集方案,核心价值是融入工厂现有网管生态,统一资产、统一监控、统一告警,不用新增一套独立协议网关。它以SNMP GET/GETBULK周期性拉取温湿度数据,搭配Trap实现异常主动告警;适合SMT车间、原料仓库、精密厂房这类已经部署网管平台的数字化工厂。 设计上要注意SNMP本身的限制:不适合闭环控制、浮点需要整数缩放、做好内网ACL隔离、优先SNMPv3加密;如果同时需要本地空调联动,可以启用设备双协议(SNMP+Modbus TCP)混合架构,兼顾上层监控和本地自动化联动。
标签:#SNMP温湿度记录仪 #工厂环境监控 #SNMP Agent #MIB设计 #snmp_exporter #Zabbix环境采集 #工控VLAN #Trap告警 #以太网记录仪 #车间温湿度采集
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。