
物联网 · 盛世宏博 · 档案一体机、RS485、Modbus RTU、状态上报、远程控制、消毒联锁

档案库房四合一恒湿净化消毒一体机,RS485 上跑的几乎都是 Modbus RTU:
[一体机]──RS485手拉手总线──>[RS485→TCP/以太网网关]──>动环/组态/IoT平台
主站轮询,从站被点名才回记住一句:RS485 Modbus RTU 是“一问一答”,不是 MQTT 那种设备主动上报。
通用寄存器骨架(以“文档号 40001 = 协议偏移 0”为例):
文档号 | 偏移 | 名称 | 类型 | 缩放 | 读写 |
|---|---|---|---|---|---|
40001 | 0 | 回风温度 | INT16 | 0.1℃ | R |
40002 | 1 | 回风湿度 | INT16 | 0.1%RH | R |
40003 | 2 | 送风温度 | INT16 | 0.1℃ | R |
40004 | 3 | 送风湿度 | INT16 | 0.1%RH | R |
40005 | 4 | 运行模式 | UINT16 | 1 | R/W |
40006 | 5 | 设定湿度 | INT16 | 0.1%RH | R/W |
40007 | 6 | 湿度死区/回差 | INT16 | 0.1%RH | R/W |
40008 | 7 | 设备状态字 | UINT16 | 位域 | R |
40009 | 8 | 故障代码 | UINT16 | — | R |
40010 | 9 | 净化/等离子使能 | UINT16 | 0/1 | R/W |
40011 | 10 | UV/臭氧消毒使能 | UINT16 | 0/1/枚举 | R/W |
40012 | 11 | 臭氧浓度 | UINT16 | 0.001ppm | R |
40013 | 12 | 滤网压差/寿命 | UINT16 | h/% | R |
40014 | 13 | 水箱/缺水/门控状态 | UINT16 | 位域 | R |
设备状态字通常按 bit 定义:
bit0 = 运行中
bit1 = 故障
bit2 = 加湿中
bit3 = 除湿中
bit4 = 净化中
bit5 = 消毒中(UV/臭氧)
bit6 = 风机运行
bit7 = 本地/远程(0本地 1远程)主站轮询策略:
功能码 | 含义 | 用在哪 |
|---|---|---|
0x01 | 读线圈 | 读 DO/开关量状态 |
0x03 | 读保持寄存器 | 读温湿度、模式、设定值 |
0x04 | 读输入寄存器 | 读只读采样值 |
0x05 | 写单个线圈 | 硬启停、紫外使能(部分机型) |
0x06 | 写单个保持寄存器 | 改设定湿度、模式 |
0x10 | 写多个保持寄存器 | 一次下发表、消毒时段、多参数 |
⚠️ 很多国产一体机只支持 0x03 + 0x10,用 0x06 会回异常码 0x86 0x01(非法功能)。网关要按型号建写策略。
(1)切到远程控制
写 40014(示例) 远程/本地 = 1
→ 设备允许平台下发(2)设定目标湿度
写 40006 = 520 (表示 52.0%RH,缩放×0.1)(3)设湿度死区,防压缩机晃
写 40007 = 30 (3.0%RH 回差)
湿度 <49% 加湿,>55% 除湿,中间不动作(4)启停/模式切换
40005 = 0 停止
= 1 自动
= 2 手动加湿
= 3 手动除湿
= 4 通风
= 5 净化
= 6 消毒(5)开 UV / 臭氧
写 40011 = 1 (UV)
写 40011 = 2 (臭氧)但——档案库房里这步不能裸写。
臭氧/UV 是红线:
所以平台下发的不是“开消毒”,而是一组带前置条件的写操作:
1. 读门禁状态(门磁/门禁系统)→ 有人=拒绝
2. 读时间段 → 非“无人消杀窗口”=拒绝
3. 写 消毒类型(UV / 臭氧 / 等离子)
4. 写 开始时间 / 结束时间(寄存器或平台侧时间表)
5. 写 消毒使能 = 1
6. 运行期:臭氧浓度寄存器超限 → 平台写“强排风机=1、消毒=0”
7. 结束 → 通风 30min → 才允许人员进库门控硬联锁:
主站读 地址=11 的回风温湿度(偏移0开始读2个寄存器):
0B 03 00 00 00 02 CRC_LO CRC_HI从站应答:
0B 03 04 00 E6 01 F4 CRC CRC主站写设定湿度 52.0%RH:
0B 06 00 05 02 08 CRC CRC异常响应:
0B 86 01 ...把 Modbus 点表映射成平台字段:
{
"device_id": "HME-A01",
"temperature": 23.0,
"humidity": 50.0,
"mode": "auto",
"set_humidity": 52.0,
"humidity_deadband": 3.0,
"purify": true,
"uv": false,
"ozone": false,
"ozone_ppm": 0.002,
"filter_life": 78,
"fault_code": 0,
"control_source": "remote",
"safety_interlock": {
"door_open": false,
"human_present": false,
"disinfection_allowed": false
}
}平台逻辑:
档案一体机 RS485 协议不难,难在“把 Modbus 点表翻译成可审计的业务动作”: 状态上传 = 主站轮询读寄存器(温湿度/状态字/故障/臭氧/滤网); 远程控制 = 主站写模式/设定值/死区/使能,但消毒类写操作必须绑门禁、时段、浓度、强排; 通得起来是 RS485,通得明白才是档案库房级接入。
关键词:档案一体机、RS485、Modbus RTU、状态上传、远程控制、保持寄存器、功能码、消毒联锁、门禁无人时段、死区防抖、数据质量
标签:#档案一体机 #RS485 #ModbusRTU #状态上传 #远程控制 #保持寄存器 #功能码 #消毒联锁 #门禁联动 #恒湿净化消毒 #动环平台 #协议对接
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。