
物联网 · 盛世宏博 · 以太网温湿度传感器、RS485、Modbus RTU、Modbus TCP、串口服务器、协议网关、混合组网

教科书里 RS485 和以太网是两个世界,但现场从来不是:
所以问题不是"选哪种",而是怎么把不同协议、不同介质的设备统一收敛进一个平台。核心器件就两个:串口服务器(RTU 转 TCP) 和 协议网关(多协议归一)。
器件 | 解决什么 | 本质 |
|---|---|---|
串口服务器 | RS485 总线 → 以太网 | 介质转换,不碰协议 payload |
协议网关 | Modbus RTU / 私有 HTTP / SNMP → MQTT / Modbus TCP | 协议转换,解析并重封装 |
关键区别:串口服务器把"字节"透明转发,不关心 Modbus 功能码;协议网关要能解析寄存器并映射到物模型。
很多项目翻车就在这里——买了串口服务器却期望它做协议归一,或者买了协议网关却用它带 32 台 RS485 设备导致负载爆炸。
[平台层] 智慧档案/机房动环平台
│ MQTT / Modbus TCP / HTTP
▼
[协议网关 / 边缘计算网关]
├─ 北向:Modbus TCP 502 / MQTT 1883 → 平台
├─ 南向 ETH:直接接 RJ45 以太网传感器(Modbus TCP)
├─ 南向 RS485:接串口服务器 / 多口 RTU 网关
└─ 南向 HTTP:轮询私有协议设备
│
▼
[接入层]
├─ 以太网温湿度传感器 ×N ── PoE 交换机 ── 独立 VLAN
├─ RS485 温湿度变送器 ×M ── 串口服务器 ── 以太网
└─ 私有协议设备 ×K ── HTTP 轮询设计原则:
RS485 设备 ←→ 串口服务器(IP:Port 监听)←→ 平台/网关主动连接RS485 设备 ←→ 串口服务器(主动连平台 IP:Port)←→ 平台监听RS485 设备 ←→ 串口服务器(UDP 发包)←→ 平台 UDP 接收平台软件看到的还是一个 COMx 口,实际使用网络传输配置项 | 正确做法 |
|---|---|
串口参数 | 9600/8N1 或手册指定,所有 RS485 设备必须一致 |
协议格式 | RTU 模式(不是 ASCII),部分设备支持 RTU-over-TCP |
报文打包 | 按"时间触发"或"字符间隔"打包,字符间隔 ≤10ms |
缓存大小 | ≥512 字节(Modbus 帧一般几十字节,但多设备并发要留余量) |
心跳包 | 开启,平台侧可检测串口服务器在线状态 |
超时 | 串口超时 500ms,网络超时 1000ms |
重连 | 网络断开自动重连,指数退避 |
终端电阻 | 由 RS485 总线决定,与串口服务器无关(别忘) |
IP 绑定 | 静态 IP + MAC 绑定,禁用 DHCP |
端口映射 | 每个串口对应独立 TCP Port,别混用 |
报文打包是隐形坑:串口服务器靠"静默间隔"判断一帧结束。如果平台发得太快、字节间有延迟,串口服务器会把一帧切成两包,或者把两帧粘成一包。解决:平台侧整帧一次 send,字节间不留间隔。
网关核心是把不同南向协议映射到统一北向格式:
协议 | 采集方式 | 难点 |
|---|---|---|
Modbus RTU(经串口服务器) | 网关开虚拟串口或 RTU-over-TCP | 地址冲突、打包间隔、CRC |
Modbus TCP | 网关直连 502 | 连接池、Unit ID 映射 |
HTTP JSON | 网关定时 GET/POST | 字段不统一、无标准时间戳 |
SNMP | 网关 Get/GetNext | OID 树差异大 |
MQTT | 网关订阅 | QoS、遗嘱、离线消息 |
{
"device_id": "TH-A101",
"protocol": "modbus_rtu_over_tcp",
"timestamp": 1728643200,
"quality": "OK",
"payload": {
"temperature": 23.1,
"humidity": 50.2,
"dewpoint": 12.4,
"status": 0
}
}网关负责:
老档案库:
RS485 温湿度变送器 ×12(2 条总线,每条 6 台)
→ 2 口串口服务器 ×1
→ 网关 RTU-over-TCP
新建机房:
以太网温湿度传感器 ×20(PoE)
→ 网关 Modbus TCP 直连
统一北向:MQTT → 平台要点:老库 RS485 总线末端 120Ω 终端电阻别漏,新建区独立 VLAN。
A 厂家:Modbus RTU(RS485)
B 厂家:Modbus TCP(以太网)
C 厂家:HTTP JSON(私有协议)
D 厂家:SNMP(网络型)
→ 边缘网关多协议适配
→ 统一物模型 + 统一北向要点:C 厂家私有协议必须拿到 HTTP API 文档,字段名/单位/时间戳三样缺一不可。
1F 档案库:RS485 总线 → 串口服务器(TCP Client 模式)
3F 机房: 以太网传感器 → 交换机
跨楼层: 光纤上联(串口服务器侧加光电转换器)
→ 平台侧统一 TCP Server 监听,区分不同串口服务器 IP要点:TCP Client 模式下,串口服务器主动连平台,穿越 NAT 友好,但平台要能处理多 Client 并发。
现象 | 根因 | 处理 |
|---|---|---|
RTU 设备偶尔读不到 | 串口服务器打包间隔太短,帧被切 | 调大"字符间隔"参数 |
多 RTU 设备响应混乱 | 从站地址冲突 / 总线挂太多 | 查地址唯一性,每总线 ≤16 |
平台显示值 ×10 | 网关没做缩放 | 加 ×0.1 处理 |
串口服务器频繁掉线 | 心跳未开 / 网络不稳定 | 开心跳 + 自动重连 |
虚拟串口被占用 | 多进程抢 COM 口 | 改用 TCP 直连模式 |
以太网设备正常但 RTU 全无 | 串口服务器 IP 冲突 | arping 查冲突 |
数据时间戳全一样 | 网关用采集时刻而非设备时刻 | 用设备时间或从机响应时间 |
断网后数据丢失 | 网关无缓存 | 开启本地缓存 + 补传 |
混合组网的本质是分层解耦:串口服务器管介质转换(RS485→以太网),协议网关管协议归一(RTU/TCP/HTTP→统一物模型),平台只消费标准化数据。 别让串口服务器干协议的活,也别让网关去带 32 台 RS485 设备——各司其职,混合组网才不会变成"混合灾难"。
关键词:以太网温湿度传感器、RS485、Modbus RTU、Modbus TCP、串口服务器、协议网关、RTU-over-TCP、多协议兼容、混合组网、虚拟串口
标签:#以太网温湿度 #RS485 #ModbusRTU #ModbusTCP #串口服务器 #协议网关 #混合组网 #RTUoverTCP #多协议兼容 #虚拟串口 #边缘计算
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。