首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >面向档案库房国标,恒湿消毒净化一体机 RS485 标准协议设计实践

面向档案库房国标,恒湿消毒净化一体机 RS485 标准协议设计实践

原创
作者头像
BJ盛世宏博小程
发布于 2026-10-13 11:20:23
发布于 2026-10-13 11:20:23
180
举报

面向档案库房国标,恒湿消毒净化一体机 RS485 标准协议设计实践

物联网 · 盛世宏博 · RS485协议设计


一、先对齐“国标约束”再谈协议

档案库房不是普通房间空调场景。设计 RS485 协议前,先把业务边界钉死:

  • 温湿度区间:14~24℃、45~60%RH(JGJ 25-2010 类规范口径)
  • 控制目标:防潮、防高温、防霉、防尘、防有害气体 → 恒湿 + 净化 + 消毒要能分别审计
  • 消毒安全:UV / 臭氧 / 等离子不能“平台写 1 就开”,必须和门禁、人员状态、时间段互锁
  • 数据要求:可采集、可回读、可审计、可降级自治

所以协议设计目标不是“能读温湿度”,而是:

用标准 Modbus RTU 把“环境量 / 控制量 / 状态量 / 安全联锁量 / 运维量”分成不同区,让平台既能监控,又不会误杀档案。


二、物理层先按档案库房定标准

项

推荐值

说明

介质

双绞屏蔽线,≥0.5mm²,120Ω 特性阻抗

不用普通网线/RVVP 凑数

拓扑

手拉手总线

禁止星型乱分支

终端电阻

首端+末端各 120Ω,中间不接

空闲差分电压应 >200mV

屏蔽层

单点接地(转换器/网关侧)

两端接地易地环流

波特率

9600(默认),长距离 4800,别盲目 115200

距离和误码权衡

帧格式

8N1 为主,老设备才 7E1

先读出厂参数

节点数

≤32 标准负载;>16 台加 RS485 中继

档案库房多库区常见超节点

接口板

三防漆、硅胶圈、等电位接地

高湿环境 MAX485 易微裂


三、协议分区:别把所有量塞进 40001~40020

面向档案库房,建议把一台恒湿消毒净化一体机的 Modbus 点表分成 5 个逻辑区:

1. 环境采集区(只读)

温度、湿度、PM2.5、TVOC、CO₂、压差、露点。

2. 恒湿控制区(读写)

运行模式、目标湿度、目标温度、湿控死区、加湿开度、除湿开度、再热使能。

3. 净化控制区(读写)

风机档位、初效/中效/活性炭/HEPA 状态、净化使能、滤网剩余时间。

4. 消毒安全区(强约束)

消毒模式、消毒时段起始/结束、臭氧浓度、UV 状态、门禁互锁位、有人状态、急停位。

5. 设备运维区(只读/受限写)

故障字、累计运行时间、压缩机/加湿/风机状态、通讯新鲜度时间戳、本地/远程模式、软复位。


四、推荐寄存器映射(0-based 协议地址)

文档号 = 40001 + offset;平台代码里用 offset。

文档号

offset

名称

类型

缩放

读写

说明

30001

0

回风温度

INT16

0.1℃

R

可为负

30002

1

回风湿度

UINT16

0.1%RH

R

0~1000

30003

2

露点温度

INT16

0.1℃

R

防潮判断

30004

3

PM2.5

UINT16

1 μg/m³

R

净化效果

30005

4

TVOC

UINT16

0.01 mg/m³

R

防有害气体

30006

5

送风静压/滤网压差

UINT16

1 Pa

R

堵网判断

40001

0

运行模式

UINT16

1

R/W

0停 1自动 2加湿 3除湿 4通风 5消毒 6净化

40002

1

目标湿度

UINT16

0.1%RH

R/W

450~600

40003

2

目标温度

INT16

0.1℃

R/W

140~240

40004

3

湿控死区

UINT16

0.1%RH

R/W

建议 30~50 → 3~5%RH

40005

4

加湿输出

UINT16

1%

R

0~100

40006

5

除湿输出

UINT16

1%

R

0~100

40007

6

再热使能

UINT16

1

R/W

0关 1开

40008

7

风机档位

UINT16

1

R/W

0~3

40009

8

净化使能

UINT16

1

R/W

0/1

40010

9

滤网剩余时间

UINT16

1 h

R

≤0 告警

40011

10

消毒模式

UINT16

1

R/W

0关 1UV 2臭氧 3等离子 4定时组合

40012

11

消毒开始时刻

UINT16

1 min

R/W

0~1439

40013

12

消毒结束时刻

UINT16

1 min

R/W

与门禁互锁

40014

13

臭氧浓度

UINT16

0.001 ppm

R

超阈急停

40015

14

安全联锁字

UINT16

1

R

bit0门开 bit1有人 bit2消防 bit3急停

40016

15

本地/远程模式

UINT16

1

R/W

0本地 1远程

40017

16

通讯新鲜度

UINT16

1 s

R

>30s 未刷新判通讯异常

40018

17

故障字

UINT16

1

R

bit 映射高压/低压/水位/滤网/传感器

40019

18

故障代码

UINT16

1

R

0 无故障

40020

19

累计运行时间(低16)

UINT16

1 h

R

32位跨两个寄存器

40021

20

累计运行时间(高16)

UINT16

1 h

R

注意字节序/字序

40022

21

软复位

UINT16

1

W

写 1 触发


五、状态字 / 故障字设计(平台才好用)

状态字 status_word

代码语言:javascript
复制
bit0 = running      运行中
bit1 = fault        故障
bit2 = humidifying  加湿中
bit3 = dehumidifying 除湿中
bit4 = reheating    再热中
bit5 = purifying    净化中
bit6 = disinfecting 消毒中
bit7 = local_lock   本地锁定(平台禁止写)
bit8 = comm_lost    设备内部通讯异常

安全联锁字 safety_interlock

代码语言:javascript
复制
bit0 = door_open       门开 → 禁止 UV/臭氧
bit1 = human_present   有人 → 禁止强消毒
bit2 = smoke_fire      消防/烟感 → 一体机急停
bit3 = emergency_stop  急停按钮
bit4 = water_level_err 水位异常 → 停加湿
bit5 = filter_blocked  滤网堵塞 → 降风机或告警

平台写消毒指令前必须先读 safety_interlock: human_present=1 或 door_open=1 → 拒绝启动 UV/臭氧,只允许多效净化/等离子低功率。


六、功能码与“伪标准”兼容

标准 Modbus RTU 功能码:

  • 01 读线圈
  • 02 读离散输入
  • 03 读保持寄存器
  • 04 读输入寄存器
  • 05 写单线圈
  • 06 写单寄存器
  • 16(0x10) 写多寄存器

档案库房一体机常见“伪标准”:

  • 只支持 03,不支持 04
  • 不支持 06,必须走 0x10 写多寄存器
  • 启停用线圈(05)或保持寄存器位域,不统一

协议设计做法:

代码语言:javascript
复制
device_profile:
  supported_funcs: [0x03, 0x10]
  single_write_emulated_by: 0x10
  coil_start_stop: false
  stop_via_register: true
  read_input_registers: false
  safety_write_guard: true

网关侧做“设备能力画像”,别让平台直接裸发 06。


七、写指令安全模型(这块最容易被忽略)

平台下发顺序必须是:

代码语言:javascript
复制
1. 读 local_remote_mode
   → 本地模式:拒绝写,回 "device in local mode"
2. 读 safety_interlock
   → 有人/门开/消防:拒绝消毒类写
3. 写目标值/模式(0x10)
4. 回读确认(0x03)
   → 模式!=下发值 → 标记 "write_not_effective"
5. 平台状态机更新,记审计日志

消毒时段写示例:

代码语言:javascript
复制
if interlock["human_present"] or interlock["door_open"]:
    raise SafetyBlocked("消毒被门禁/人员状态拦截")

set_disinfect_window(unit, start=1320, end=1440)   # 22:00-24:00
confirm_disinfect_mode(unit, mode=1)                # UV

八、轮询节拍(档案库房别瞎压实时性)

传感器响应 3~5s,消毒因子更慢 8~10s,100ms 轮询纯属自残。

数据类

周期

说明

温湿度

2s

主控量

净化/PM/TVOC

5s

慢变量

消毒状态/臭氧

5s

安全相关但变化慢

故障字/联锁字

1s

安全量

累计时长/滤网

30~60s

运维量

软复位/写操作

事件触发

不轮询

网关要做:

  • 超时重试 3 次,指数退避
  • CRC 错误帧统计
  • 某从站 3 次无响应 → 标记 offline,不阻塞整条总线
  • 平台断网 → 一体机按本地设定继续跑

九、数据质量戳(国标审计关键)

每条点不能只存“值”,要存:

代码语言:javascript
复制
{
  "point": "room_rh",
  "raw": 523,
  "value": 52.3,
  "scale": 0.1,
  "quality": "GOOD",
  "freshness_ms": 800,
  "slave": 3,
  "func": 3,
  "ts": "2026-10-13T11:16:00+08:00"
}

quality 枚举:

  • GOOD
  • STALE(新鲜度超 30s)
  • OUT_OF_RANGE(温湿度越界)
  • COMM_LOST
  • WRITE_NOT_EFFECTIVE

没有质量戳,后期“档案发霉是谁的责任”说不清。


十、协议文档交付清单(采购文件里要写死)

买一体机必须让厂家交:

  1. Modbus RTU 点表:文档号 / offset / 功能码 / 类型 / 缩放 / 字节序 / 字序
  2. 异常码说明:0x01~0x04 对应什么
  3. 写权限表:哪些点可写、哪些点需 remote_enable 先置 1
  4. 消毒互锁逻辑说明
  5. 地址修改方式(拨码/寄存器)
  6. 波特率/校验位修改方式
  7. 32 位值字节序示例(附十六进制)
  8. 故障字 bit 映射表
  9. 通讯新鲜度机制说明
  10. 断网/本地模式行为说明

厂家只给“支持 Modbus RTU”五个字 = 后期集成地雷。


十一、落到一个最小可用协议规范

代码语言:javascript
复制
物理层:RS485,9600/8N1,手拉手,首尾 120Ω,屏蔽单点接地
链路层:Modbus RTU,CRC16
数据模型:
  - 环境量:输入/保持寄存器只读
  - 控制量:保持寄存器,写前校验 local/remote
  - 安全量:联锁字只读,写消毒前必读
  - 运维量:故障/累计/滤网,平台只读
控制原则:
  - 湿控带死区
  - 消毒带门禁/人员/时段互锁
  - 平台断网 → 设备本地自治
  - 写后必回读
审计原则:
  - 原始值/缩放值/质量戳/时间戳全留

十二、一句话收口

面向档案库房国标的 RS485 协议设计,核心不是“把 Modbus 跑通”,而是:

用标准 Modbus 把“恒湿、净化、消毒、安全、运维”分层;让平台能看、能管、能审计,但绝不能在有人、门开、消防、本地锁定时乱开消毒。


关键词:档案库房,恒湿消毒净化一体机,RS485,Modbus RTU,寄存器分区,安全联锁,消毒互锁,数据质量戳,本地自治,国标合规

标签:#档案库房 #恒湿消毒净化一体机 #RS485 #ModbusRTU #寄存器设计 #消毒互锁 #安全联锁 #数据质量戳 #本地自治 #动环平台

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

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

目录
  • 面向档案库房国标,恒湿消毒净化一体机 RS485 标准协议设计实践
    • 一、先对齐“国标约束”再谈协议
    • 二、物理层先按档案库房定标准
    • 三、协议分区:别把所有量塞进 40001~40020
      • 1. 环境采集区(只读)
      • 2. 恒湿控制区(读写)
      • 3. 净化控制区(读写)
      • 4. 消毒安全区(强约束)
      • 5. 设备运维区(只读/受限写)
    • 四、推荐寄存器映射(0-based 协议地址)
    • 五、状态字 / 故障字设计(平台才好用)
      • 状态字 status_word
      • 安全联锁字 safety_interlock
    • 六、功能码与“伪标准”兼容
    • 七、写指令安全模型(这块最容易被忽略)
    • 八、轮询节拍(档案库房别瞎压实时性)
    • 九、数据质量戳(国标审计关键)
    • 十、协议文档交付清单(采购文件里要写死)
    • 十一、落到一个最小可用协议规范
    • 十二、一句话收口
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档