- 1. 一、产品概述
- 2. 二、核心Function体系总览(从协议推算)
- 3. 三、支持的传感器Type详解
- 4. 3.1 传感器TypeCoding总表
- 5. 3.2 各传感器data format详细说明
- 6. 四、Communication parameters与帧format规范
- 7. 4.1 基础Communication parameters
- 8. 4.2 Baud rate配置对照表(0004H register)
- 9. 4.3 支持的function code
- 10. 五、完整Register Mapping表
- 11. 5.1 system控制register区(0001H ~ 000FH)
- 12. 5.2 传感器dataregister区(0010H 起)
- 13. 六、工作模式详解
- 14. 6.1 双data上报模式
- 15. 6.2 绑定配对流程
- 16. 七、完整Operation案例(10 个实例含逐byteParse)
- 17. 7.1 systemregisterOperation(6 例)
- 18. 7.2 传感器dataregisterOperation(4 例)
- 19. 八、异常处理与Error码
- 20. 8.1 Modbus Exception Responseformat
- 21. 8.2 绑定Function返回码(0006H register)
- 22. 8.3 Fault Diagnosis速查表
- 23. 九、Precautions与最佳实践
- 24. 9.1 关键Precautions
- 25. 9.2 推荐Operation流程
- 26. 十、CRC16 算法实现
- 27. 十一、Download Materials与Technical Support
- 28. 版本迭代历史
- 29. 十二、典型应用Scene
- 30. Scene一:Agriculture — 大棚环境监控system
- 31. Scene二:智慧畜牧 — 牲畜健康管理
- 32. Scene三:消防安全 — 仓库/机房烟火监测
- 33. Scene四:智能建筑 — 人体existence感知与照明联动
- 34. Scene五:安防报警 — 入侵检测与无线遥控
一、产品概述
本产品是一款支持标准 Modbus RTU 协议的智能无线传感器网关设备,具备多节点传感器Data Acquisition、Communication parameters配置和设备管理Function。通过 RS485 接口与上位机(PLC、触摸屏、SCADAsystem等)通信,支持完整的register读写Operation,可广泛应用于Automation、Environmental Monitoring、Agriculture、畜牧养殖、楼宇安防等领域。
该网关作为无线传感器网络的核心枢纽,能够同时管理多达 64 个无线传感器节点,将各传感器的data统一转换为标准的 Modbus RTU 协议format,方便上位机system集成。
二、核心Function体系总览(从协议推算)
基于本协议Document的register定义、Operation案例及data结构,可完整推算出产品的以下Function模块:
| Serial number | Function模块 | Function描述 | 对应register/依据 |
|---|---|---|---|
| 1 | Modbus RTU 从站通信 | 标准 Modbus RTU 从站模式,RS485 物理接口,支持function code 03/06/10 | 第2章、第3章 |
| 2 | 多节点传感器管理 | 最多支持 64 个无线传感器节点同时在线,每个节点独立寻址 | 0002H register(范围 0~63)、传感器data area分配Rules |
| 3 | 7 种传感器Type支持 | 温湿度、耳标(畜牧)、烟感、雷达、红外、遥控器、通用 1527 设备 | Index register低 8 位TypeCoding定义 |
| 4 | 双data上报模式 | 主动上报模式(传感器自动推送)+ 查询上报模式(主机轮询读取) | 0005H register |
| 5 | 传感器绑定配对system | 软件指令绑定 + 硬件按键绑定(长按 5 秒),LED 指示灯状态反馈 | 0006H register、第6章绑定管理说明 |
| 6 | 全参数register配置 | slave address(1~247)、Baud rate(5 档)、上报模式均可通过register修改 | 0003H~0005H register |
| 7 | 传感器生命周期管理 | 添加节点、读取data、Delete单个节点、一键ClearAll绑定 | 写多个register(0x10) Operation + 0007H register |
| 8 | 多维度Data Acquisition | temperature/湿度/震动/烟雾浓度/人体existence检测/电量/子设备Type等多类data | Data1/Data2/Battery field定义 |
| 9 | 电池电量监控 | 每个无线传感器节点的实时电池容量监测(0%~100%) | Battery register(+5 偏移) |
| 10 | 固件版本查询 | 读取设备固件版本号,便于版本管理和维护Confirm | 0001H 只读register |
| 11 | 广播address支持 | 支持 Modbus 广播address 0xFF(255),可对所有从站下发命令 | address范围说明 |
| 12 | CRC16 校验机制 | 采用 CRC-16/MODBUS 多项式 0xA001 校验,保证data传输完整性 | 第2章校验方式 + 附录 C 语言算法 |
三、支持的传感器Type详解
根据协议中 Index register的低 8 位(传感器Typefield)Coding定义,网关支持以下 7 种传感器Type,并可扩展More:
3.1 传感器TypeCoding总表
| TypeCoding | 传感器名称 | 主要datafield | Data1 含义 | Data2 含义 | 典型应用Scene |
|---|---|---|---|---|---|
| 00H | 通用 1527 Coding设备 | 子设备Type + 状态data | 空闲 | 子设备TypeCoding | 通用无线遥控/门磁/门窗传感器 |
| 01H | 温湿度传感器 | temperature + 湿度 + 电量 | temperature值(0.1°C) | 湿度值(0.1%) | 温室大棚、仓库、机房、实验室 |
| 02H | 耳标传感器(畜牧专用) | temperature + 震动计数 + 电量 | temperature值(0.1°C) | 震动次数(次) | 牲畜体温监测、发情/健康预警 |
| 03H | 烟感/烟雾传感器 | 烟雾浓度 + 电量 | 空闲 | 烟雾浓度(ppm) | 仓库防火、厨房安防、工厂消防 |
| 04H | 雷达人体existence传感器 | existence状态 + 电量 | 空闲 | existence状态(0=无人/1=有人) | 智能照明、会议室、卫生间联动 |
| 05H | 红外 PIR 传感器 | existence状态 + 电量 | 空闲 | existence状态(0=无人/1=有人) | 入侵报警、走廊感应、安防监控 |
| 06H | 无线遥控器 | 按键状态 + 子设备Type | 空闲 | 按键状态data | Remote control、灯光控制、设备switch |
| 07H+ | 预留扩展 | 待定义(XXXX) | 待定义 | 待定义 | 未来新传感器Type的扩展位 |
3.2 各传感器data format详细说明
① 温湿度传感器(Type=01H)
| byte位置 | field名 | data type | 单位 | 取值范围 | 示例 |
|---|---|---|---|---|---|
| +0~+1 (Byte0~1) | Index | UINT16 | – | 高8位=编号(0~63),低8位=Type(0x01) | 0x0001 表示 1 号温湿度传感器 |
| +2~+5 (Byte2~5) | Device address Addr | UINT32 | – | 32 位唯一标识 | 0x12345678 |
| +6~+7 (Byte6~7) | temperature Data1 | INT16 | 0.1°C | -3276.8 ~ 3276.7°C | 0x00FB = 25.1°C;0xFFEC = -2.0°C |
| +8~+9 (Byte8~9) | 湿度 Data2 | UINT16 | 0.1% | 0 ~ 100% | 0x028B = 65.1%;0x01F4 = 50.0% |
| +10~+11 (Byte10~11) | 电池 Battery | UINT16 | 1% | 0% ~ 100% | 0x0064 = 100%;0x0032 = 50% |
② 耳标传感器 — 畜牧养殖专用(Type=02H)
专为牛羊猪等牲畜设计的无线耳标式传感器,是本产品的一大特色Function:
| byte位置 | field名 | data type | 单位 | 取值范围 | 业务含义 |
|---|---|---|---|---|---|
| +0~+1 | Index | UINT16 | – | 低8位=0x02 | 标识为耳标Type |
| +2~+5 | Device address Addr | UINT32 | – | 唯一标识 | 每头牲畜的唯一 ID |
| +6~+7 | temperature Data1 | INT16 | 0.1°C | 体温范围 | 牲畜体温(如 38.5°C = 正常牛体温) |
| +8~+9 | 震动 Data2 | UINT16 | 次 | 0 ~ 65535 | 活动量/震动次数,用于判断牲畜活跃度或异常行为 |
| +10~+11 | 电池 Battery | UINT16 | 1% | 0% ~ 100% | 耳标电池剩余电量 |
③ 烟雾/烟感传感器(Type=03H)
| byte位置 | field名 | data type | 单位 | 取值范围 | 备注 |
|---|---|---|---|---|---|
| +6~+7 | Data1 | — | — | 空闲 | 保留未用 |
| +8~+9 | 烟雾浓度 Data2 | UINT16 | ppm | 0 ~ 5000 ppm | 0x1388 = 5000 ppm(高浓度报警阈值) |
| +10~+11 | 电池 Battery | UINT16 | 1% | 0% ~ 100% | 传感器电池电量 |
④ 雷达人体existence传感器(Type=04H)& 红外 PIR 传感器(Type=05H)
两种传感器均用于人体existence检测,但技术原理不同:
| 对比项 | 雷达传感器(Type=04H) | 红外 PIR 传感器(Type=05H) |
|---|---|---|
| 检测原理 | 毫米波雷达多普勒效应 | 热释电红外线检测 |
| Data2 取值 | 0x0000 = 无人;0x0001 = 有人 | 0x0000 = 无人;0x0001 = 有人 |
| 优点 | 可穿透塑料/玻璃,不受temperature影响,可检测微小动作(如呼吸),适合”人在即亮” | 成本低,功耗极低,适合移动检测 |
| 缺点 | 成本较高 | 无法检测静止人体,受环境temperature影响 |
| 适用Scene | 智能办公室/会议室/卫生间(精准existence检测) | 走廊/过道/入口(移动侦测) |
⑤ 无线遥控器(Type=06H)& 通用 1527 Coding设备(Type=00H)
| field | 无线遥控器(06H) | 通用 1527 设备(00H) |
|---|---|---|
| Data1 | 空闲 | 空闲 |
| Data2 | 按键状态data(具体Coding取决于遥控器型号) | 子设备TypeCoding(绑定后由主机更新设置) |
| 备注 | 用于receive 433MHz 遥控器按键信号 | 兼容市面上大多数 EV1527 Coding的无线发射设备(门磁、水浸、振动等) |
四、Communication parameters与帧format规范
4.1 基础Communication parameters
| 参数项 | 默认值 | 可选值/范围 | 配置方式 |
|---|---|---|---|
| 通信协议 | Modbus RTU | — | 固定 |
| 物理接口 | RS485 | — | 固定 |
| data format | 8N1(8 data bit,无校验,1 stop bit) | 可配置 | 默认 8N1 |
| slave address | 1 | 1 ~ 247 | 写入 0003H register |
| 广播address | 255(0xFF) | 仅 255 | 向所有从站send command |
| Baud rate | 9600 bps | 9600 / 19200 / 38400 / 57600 / 115200 | 写入 0004H register |
| 校验方式 | CRC16 | 多项式 0xA001(MODBUS 标准) | 固定 |
| 最大传感器quantity | — | 64 个 | 硬件限制 |
| 帧间隔time | ≥ 3.5 字符time | @9600bps ≈ 3.6ms;@115200bps ≈ 0.3ms | RTU 协议要求 |
4.2 Baud rate配置对照表(0004H register)
| 写入值 | 实际Baud rate | 单字符time | 3.5 字符间隔 | 适用Scene |
|---|---|---|---|---|
| 0 | 9600 bps | ≈ 1.04 ms | ≈ 3.6 ms | 默认推荐,稳定可靠 |
| 1 | 19200 bps | ≈ 0.52 ms | ≈ 1.8 ms | 中等速度需求 |
| 2 | 38400 bps | ≈ 0.26 ms | ≈ 0.9 ms | 较快速度 |
| 3 | 57600 bps | ≈ 0.17 ms | ≈ 0.6 ms | 高速传输 |
| 4 | 115200 bps | ≈ 0.087 ms | ≈ 0.3 ms | 最高速,需确保线路质量 |
4.3 支持的function code
| function code | 名称 | 方向 | 用途 |
|---|---|---|---|
| 0x03 | 读保持register | 主站→从站 | 读取版本号、节点数、传感器data等 |
| 0x06 | 写单个register | 主站→从站 | 设置address、Baud rate、模式、启动绑定等 |
| 0x10 | 写多个register | 主站→从站 | 添加传感器、Delete节点、批量写入data等 |
五、完整Register Mapping表
5.1 system控制register区(0001H ~ 000FH)
| register address | register名称 | 读写权限 | data format | 取值范围/说明 |
|---|---|---|---|---|
| 0001H | 版本号 | 只读 | UINT16 | 设备固件版本号,如 0x0102 表示 V1.2 |
| 0002H | 当前在线节点数目 | 只读 | UINT16 | 当前Registered绑定的传感器节点quantity(0 ~ 63) |
| 0003H | RS485 address | 读写 | UINT16 | Modbus slave address,默认 1,范围 1 ~ 247 |
| 0004H | 串口Baud rate | 读写 | UINT16 | 0=9600, 1=19200, 2=38400, 3=57600, 4=115200 |
| 0005H | 主动上报模式设置 | 读写 | UINT16 | 0=主动上报使能(默认);1=查询上报使能 |
| 0006H | 启动绑定配对Function | 只写 | UINT16 | 写入 1 启动绑定(指示灯闪烁,20 秒超时自动退出) |
| 0007H | Clear所有绑定data | 只写 | UINT16 | Clear所有已绑定的传感器data,需重新绑定 |
| 0008H ~ 000FH | 保留 | — | — | 预留未来扩展使用 |
5.2 传感器dataregister区(0010H 起)
每个传感器占用 6 个连续register(12 bytes),最多支持 64 个传感器:
| 传感器编号 | register address范围 | +0 Index | +1 Addr_H | +2 Addr_L | +3 Data1 | +4 Data2 | +5 Battery |
|---|---|---|---|---|---|---|---|
| 传感器 1 | 0010H ~ 0015H | 编号+Type | address高 16 位 | address低 16 位 | data 1 | data 2 | 电池电量 |
| 传感器 2 | 0016H ~ 001BH | 同上 | 同上 | 同上 | 同上 | 同上 | 同上 |
| 传感器 3 | 001CH ~ 0021H | 同上 | 同上 | 同上 | 同上 | 同上 | 同上 |
| 传感器 4 | 0022H ~ 0027H | 同上 | 同上 | 同上 | 同上 | 同上 | 同上 |
| … | 按 +6 递增 | … | … | … | … | … | … |
| 传感器 N | 0010H+(N-1)*6 ~ 0015H+(N-1)*6 | 同上 | 同上 | 同上 | 同上 | 同上 | 同上 |
| 传感器 64 | 012AH ~ 012FH | 同上 | 同上 | 同上 | 同上 | 同上 | 同上 |
六、工作模式详解
6.1 双data上报模式
网关支持两种data上报模式,通过 0005H registerSwitch:
模式 0:主动上报模式(默认)
- 无线传感器检测到data变化后,自动将data上传至网关
- 网关收到后立即更新内部register缓存
- 上位机可通过 0x03 function code随时轮询读取最新data
- Advantages:实时性好,传感器端主动推送,data更新及时
- 适用Scene:需要real-time monitoring的Scene(如temperature超限告警、人员闯入检测等)
模式 1:查询上报模式
- 无线传感器仅在收到网关查询命令时才返回data
- 上位机发起读取Request → 网关向传感器查询 → 返回data
- Advantages:省电,传感器大部分time处于休眠状态
- 适用Scene:电池供电传感器、低功耗优先的Scene(如农业远程监测)
6.2 绑定配对流程
新增无线传感器到网关前,必须先Complete绑定配对Operation。支持两种触发方式:
方式一:软件指令绑定(通过 Modbus 写入 0006H)
- 上位机向 0006H register写入numerical value 1:send 01 06 00 06 00 01 A8 0B
- 网关进入绑定模式,指示灯开始闪烁
- 让目标无线传感器send一次data(或触发其发射信号)
- 网关receive并识别传感器信号,自动分配一个空闲存储槽,记录传感器address
- 绑定成功:指示灯停止闪烁,网关返回Response 01 06 00 06 00 01 A8 0B(成功代码 1)
- 若 20 秒内未收到任何传感器信号,返回超时Response 01 06 00 06 00 02 E8 0A(超时代码 2),退出绑定模式
方式二:硬件按键绑定
- 长按网关面板上的配对按键 5 秒
- 进入绑定模式(与软件指令效果完全相同)
- 后续步骤与方式一相同
七、完整Operation案例(10 个实例含逐byteParse)
以下提供覆盖AllFunction的完整Operation示例,包含hexadecimalRequest/Response帧及逐fieldParse。
7.1 systemregisterOperation(6 例)
案例 1:读取设备固件版本号(读取 0001H)
| 项目 | 内容 |
|---|---|
| OperationType | 读保持register(function code 0x03) |
| Request帧(hexadecimal) | 01 03 00 01 00 01 D5 CA |
| RequestParse | [address=01] [function code=03] [starting address=0001H] [register数=1] [CRC=D5CA] |
| Response帧(hexadecimal) | 01 03 02 01 02 B8 44 |
| ResponseParse | [address=01] [function code=03] [byte count=2] [data=0102] → V1.2 版本 [CRC=B844] |
案例 2:读取当前在线传感器节点数(读取 0002H)
| 项目 | 内容 |
|---|---|
| Request帧 | 01 03 00 02 00 01 25 CA |
| Response帧 | 01 03 02 00 08 B9 82 |
| 结果解读 | 当前有 8 个传感器节点在线 |
案例 3:修改设备 RS485 slave address(写入 0003H → 新address = 2)
| 项目 | 内容 |
|---|---|
| OperationType | 写单个register(function code 0x06) |
| Request帧 | 01 06 00 03 00 02 F8 0B |
| RequestParse | [address=01] [function code=06] [register=0003H] [data=0002 → address改为 2] [CRC=F80B] |
| Response帧 | 01 06 00 03 00 02 F8 0B(回显Request帧,表示写入成功) |
| 注意 | 修改后需使用新address(0x02)进行后续通信 |
案例 4:修改串口Baud rate为 19200(写入 0004H → 值 = 1)
| 项目 | 内容 |
|---|---|
| Request帧 | 01 06 00 04 00 01 09 CB |
| RequestParse | [address=01] [function code=06] [register=0004H] [data=0001 → Baud rate选项 1] [CRC=09CB] |
| Response帧 | 01 06 00 04 00 01 09 CB(成功) |
| 注意 | 修改后需Switch上位机串口的Baud rate为 19200 才能继续通信 |
案例 5:Switch为查询上报模式(写入 0005H → 值 = 1)
| 项目 | 内容 |
|---|---|
| Request帧 | 01 06 00 05 00 01 58 0B |
| RequestParse | [address=01] [function code=06] [register=0005H] [data=0001 → query mode] [CRC=580B] |
| Response帧 | 01 06 00 05 00 01 58 0B(成功Switch为查询上报模式) |
案例 6:启动传感器绑定配对(写入 0006H → 值 = 1)
| 项目 | 内容 |
|---|---|
| Request帧 | 01 06 00 06 00 01 A8 0B |
| RequestParse | [address=01] [function code=06] [register=0006H] [data=0001 → 启动绑定] [CRC=A80B] |
| Response帧(成功) | 01 06 00 06 00 01 A8 0B(代码 1 = 命令执行成功,等待传感器入网) |
| Response帧(超时) | 01 06 00 06 00 02 E8 0A(代码 2 = 20 秒内无传感器入网,超时退出) |
7.2 传感器dataregisterOperation(4 例)
案例 7:手动添加传感器 1 到system(写入address 0x12345678)
当已知传感器设备的 32 位address时,可直接通过register写入将其添加到system:
| 项目 | 内容 |
|---|---|
| OperationType | 写多个register(function code 0x10) |
| 目标address | 传感器 1 data area的starting address 0010H,连续写入 3 个register(Index + Addr_H + Addr_L) |
| Request帧 | 01 10 00 10 00 03 06 00 01 12 34 56 78 A1 E1 |
| 逐byteParse | [01=address] [10=function code] [00 10=starting address0010H] [00 03=写3个register] [06=共6byte count据] [00 01=1号+温湿度Type] [12 34=address高16位] [56 78=address低16位] [A1 E1=CRC] |
| Response帧 | 01 10 00 10 00 03 81 CD(Confirm从 0010H 开始写入 3 个register) |
案例 8:读取传感器 1 的Alldata(6 个register = 12 bytes)
| 项目 | 内容 |
|---|---|
| Request帧 | 01 03 00 10 00 06 C4 0D |
| RequestParse | [01=address] [03=function code] [00 10=starting address0010H] [00 06=读6个register] [CRC=C40D] |
| Response帧 | 01 03 0C 00 01 12 34 56 78 00 FA 01 F4 00 64 B5 F2 |
| 逐byteParse | [01=address] [03=function code] [0C=12byte count据] [00 01 → 1号传感器 + 温湿度Type(01H)] [12 34 56 78 → 32位Device address 0x12345678] [00 FA → temperature 25.0°C(250×0.1)] [01 F4 → 湿度 50.0%(500×0.1)] [00 64 → 电池 100%] [B5 F2 = CRC] |
案例 9:Delete传感器 1(清零addressregister)
Delete传感器的方法是将对应的addressregisterAll清零:
| 项目 | 内容 |
|---|---|
| Request帧 | 01 10 00 10 00 03 06 00 00 00 00 00 00 E7 15 |
| RequestParse | [01=address] [10=function code] [00 10=starting address] [00 03=3个register] [06=6byte count据] [00 00 00 00 00 00 = All清零] [E7 15=CRC] |
| Response帧 | 01 10 00 10 00 03 81 CD(Delete成功) |
| 效果 | 传感器 1 的address被清零,system不再receive该传感器的data,存储槽释放 |
案例 10:直接写入传感器 1 的temperature和湿度data
| 项目 | 内容 |
|---|---|
| Request帧 | 01 10 00 13 00 02 04 01 2C 02 58 72 19 |
| RequestParse | [01=address] [10=function code] [00 13=starting address0013H(Data1)] [00 02=写2个register] [04=4byte count据] [01 2C → temperature 30.0°C(300×0.1)] [02 58 → 湿度 60.0%(600×0.1)] [72 19=CRC] |
| Response帧 | 01 10 00 13 00 02 B0 0D(写入成功) |
八、异常处理与Error码
8.1 Modbus Exception Responseformat
当从站检测到非法Operation时,返回Exception Response:
- 正常function code最高位变为 1(如 0x03 → 0x83,0x06 → 0x86,0x10 → 0x90)
- 后面跟随 1 byte的Exception Code
| Exception Code | 含义 | 常见原因 | 解决方法 |
|---|---|---|---|
| 01 | Illegal function码 | 使用了不支持的function code | 仅使用 0x03/0x06/0x10 |
| 02 | Illegal data address | register address超出effective范围 | 检查address是否在 0001H~012FH 范围内 |
| 03 | Illegal data value | 写入的data值超出允许范围 | 检查取值范围(如address应在 1~247) |
8.2 绑定Function返回码(0006H register)
| 返回码 | 含义 | 说明 |
|---|---|---|
| 1 | 命令执行成功 | 绑定指令已receive,网关进入配对模式等待传感器入网 |
| 2 | 绑定超时 | 20 秒内未收到传感器信号,自动退出绑定模式 |
8.3 Fault Diagnosis速查表
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 通信超时,无Response | RS485 address不匹配或Baud rate不一致 | 检查 0003H addressregister和 0004H Baud rateregister配置 |
| 传感器data读出全为零 | 传感器节点Unregistered/绑定,或address写入Error | 检查 0010H start的addressregister是否正确写入非零值 |
| 无法写入register | function code使用Error或Insufficient permissions | Confirm使用正确的function code:单个写入用 0x06,多个写入用 0x10;注意 0001H/0002H 为只读 |
| CRC verificationError | data传输过程中出现误码 | 检查 RS485 线路connect(A+/B- 是否接反、终端电阻是否缺失),重新计算 CRC |
| 绑定失败(反复超时) | 传感器不在通信范围内或电池耗尽 | 缩短传感器与网关距离,更换传感器电池 |
| 部分传感器data不更新 | 该传感器超出无线信号覆盖范围 | 调整网关天线方向,或增加中继器 |
九、Precautions与最佳实践
9.1 关键Precautions
- 帧间隔time:RTU 模式下,相邻两帧之间必须保持至少 3.5 个字符time的静默间隔。不同Baud rate下的最短帧间隔:
- 9600 bps:约 3.6 ms
- 115200 bps:约 0.3 ms
- 大端endianness:使用function code 0x10 写多个register时,data必须按大端模式(Big-Endian)组织,高byte在前,低byte在后。
- 广播Operation无Response:向广播address 0xFF send command时,所有从站执行Operation但不会返回Response帧。
- 传感器Add rule:添加传感器时,addressregister(Addr_H + Addr_L)必须写入非零值;写入全零等同于Delete该节点。
- Operation间隔:传感器data更新后,需等待至少 100ms再进行下一次registerOperation。
- Clear绑定的风险:写入 0007H register会一次性Clear所有已绑定的传感器data,Operation前请Confirm无需保留现有配置,Clear后需逐一重新绑定。
9.2 推荐Operation流程
- 首次上电:读取 0001H Confirm固件版本,读取 0002H Confirm初始状态
- 配置Communication parameters:根据需要修改 0003H(address)、0004H(Baud rate)、0005H(上报模式)
- 绑定传感器:通过 0006H 或物理按键逐一添加传感器
- 验证绑定:读取 0002H Confirm节点数,读取对应传感器data areaConfirmdata正常
- 日常运维:定期读取传感器 Battery field监控电量,及时更换低电量传感器电池
十、CRC16 算法实现
本协议采用 MODBUS 标准 CRC16校验算法,多项式为 0xA001(即 0x8005 的位反转形式)。以下是完整的 C 语言参考实现:
#include <stdint.h>
/**
* MODBUS CRC16 计算
* @param data 待计算的data缓冲区指针
* @param len dataLength(byte)
* @return 16 位 CRC verification值(低byte在前)
*
* 多项式:0xA001(MODBUS 标准)
* 初始值:0xFFFF
*/
uint16_t calc_crc(uint8_t *data, uint16_t len)
{
uint16_t crc = 0xFFFF; // 初始值
for (uint16_t i = 0; i < len; i++)
{
crc ^= data[i]; // 与当前byte异或
for (uint8_t j = 0; j < 8; j++) // 逐位处理
{
if (crc & 0x0001) // 最低位为 1
{
crc >>= 1; // 右移一位
crc ^= 0xA001; // 与多项式异或
}
else
{
crc >>= 1; // 仅右移
}
}
}
return crc;
}
/* 使用示例:
* uint8_t frame[] = {0x01, 0x03, 0x00, 0x01, 0x00, 0x01};
* uint16_t crc = calc_crc(frame, 6);
* 结果:crc = 0xCAD5(低byte 0xD5 在前,高byte 0xCA 在后)
*/
十一、Download Materials与Technical Support
- 本Document版本:V1.3(2025-10-03 更新)
- 协议遵循标准:Modbus 工业标准协议规范
- 具体register定义以设备实际固件为准
- 如需Technical Support,请联系制造商获取最新Register Mapping表及协议Document
版本迭代历史
| 版本号 | 发布日期 | 主要变更内容 |
|---|---|---|
| V1.1 | 2025-09-01 | 基础版本,采用标准 Modbus-RTU 协议作为主节点通信协议 |
| V1.2 | 2025-09-21 | 增加软件指令启动绑定Function;增加硬件按键启动绑定Function |
| V1.3(当前) | 2025-10-03 | 修正最大支持传感器数目为 64 个;增加传感器Typedatafield;增加传感器data段format详细说明;修正绑定超时time为 20 秒;增加 0007H register(一键ClearAll绑定) |
十二、典型应用Scene
Scene一:Agriculture — 大棚环境监控system
在温室大棚内部署温湿度传感器(Type=01H),通过本网关将data汇聚后经 Modbus RTU 上传至 PLC 或触摸屏控制system。可联动通风机、喷淋system、遮阳帘等设备,实现恒温恒湿自动调节。支持最多 64 个传感器点,满足大型连栋温室的多点位监测需求。
Scene二:智慧畜牧 — 牲畜健康管理
为每头牛/羊佩戴无线耳标传感器(Type=02H),网关集中收集牲畜体温和活动量data。当某头牲畜体温超过设定阈值时自动告警(疾病预警),或活动量异常变化时判断发情/健康状况。64 节点容量足以覆盖中小型养殖场的牲畜管理需求。
Scene三:消防安全 — 仓库/机房烟火监测
部署烟雾传感器(Type=03H),实时监测仓库、机房等重点区域的烟雾浓度。当浓度超过阈值时,通过 Modbus 上位机触发声光报警器、排风system或通知消防联动平台。配合温湿度传感器还可实现综合环境安全监测。
Scene四:智能建筑 — 人体existence感知与照明联动
在办公室、会议室、卫生间安装雷达传感器(Type=04H)或红外 PIR 传感器(Type=05H),实现精准的人员existence检测。雷达方案可探测微动(甚至呼吸),实现真正的”人在即亮“智能照明控制,大幅节约能源。传感器data通过网关接入Building Automationsystem(BAS)或 KNX/Modbus 总线。
Scene五:安防报警 — 入侵检测与无线遥控
结合红外传感器(Type=05H)实现周界入侵检测,搭配无线遥控器(Type=06H)用于布防/撤防Operation。通用 1527 设备(Type=00H)可兼容门磁、玻璃破碎、水浸等各类无线探测器,构建完整的无线安防system,所有data统一通过 Modbus RTU 接入报警主机或 SCADA 平台。
发表回复