一、제품 개요
本产品은(는)支持표준 Modbus RTU 프로토콜的智能无线센서게이트웨이设备,具备多节点센서데이터采集、통신매개변수설정和设备管理功能。通过 RS485 인터페이스与上位机(PLC、触摸屏、SCADA系统等)통신,支持完整的레지스터读写操作,可广泛적용于산업 자동화、환경监测、스마트 농업、畜牧养殖、楼宇安防等领域。
该게이트웨이作为无线센서네트워크的核心枢纽,能够同时管理多达 64 个无线센서节点,将各센서的데이터统一转换为표준的 Modbus RTU 프로토콜형식,方便上位机系统통합。
二、核心功能体系总览(从프로토콜推算)
基于本프로토콜문서的레지스터定义、操作案例及데이터结构,可完整推算出产品的以下功能模块:
| 순번 | 功能模块 | 功能설명 | 对应레지스터/依据 |
|---|---|---|---|
| 1 | Modbus RTU 슬레이브통신 | 표준 Modbus RTU 슬레이브모드,RS485 物理인터페이스,支持기능 코드 03/06/10 | 第2章、第3章 |
| 2 | 多节点센서管理 | 最多支持 64 个无线센서节点同时在线,每个节点独立寻址 | 0002H 레지스터(范围 0~63)、센서데이터区分配规则 |
| 3 | 7 种센서유형支持 | 온습도、耳标(畜牧)、烟感、雷达、적외선、리모컨、通用 1527 设备 | Index 레지스터低 8 位유형编码定义 |
| 4 | 双데이터上报모드 | 主动上报모드(센서自动推送)+ 查询上报모드(主机轮询읽기) | 0005H 레지스터 |
| 5 | 센서绑定配对系统 | 软件指令绑定 + 硬件按键绑定(长按 5 秒),LED 指示灯状态反馈 | 0006H 레지스터、第6章绑定管理설명 |
| 6 | 全매개변수레지스터설정 | 슬레이브 주소(1~247)、통신 속도(5 档)、上报모드均可通过레지스터修改 | 0003H~0005H 레지스터 |
| 7 | 센서生命周期管理 | 추가节点、읽기데이터、삭제单个节点、一键清除전체绑定 | 写多个레지스터(0x10) 操作 + 0007H 레지스터 |
| 8 | 多维度데이터采集 | 온도/湿度/震动/연기浓度/人体存在检测/电量/子设备유형等多类데이터 | 데이터1/데이터2/Battery 필드定义 |
| 9 | 电池电量监控 | 每个无线센서节点的实时电池容量监测(0%~100%) | Battery 레지스터(+5 偏移) |
| 10 | 固件버전查询 | 읽기设备固件버전号,便于버전管理和维护确认 | 0001H 只读레지스터 |
| 11 | 广播주소支持 | 支持 Modbus 广播주소 0xFF(255),可对所有슬레이브下发命令 | 주소范围설명 |
| 12 | CRC16 체크섬机制 | 采用 CRC-16/MODBUS 多项式 0xA001 체크섬,保证데이터传输完整性 | 第2章체크섬 방식 + 附录 C 언어算法 |
三、支持的센서유형详解
根据프로토콜中 Index 레지스터的低 8 位(센서유형필드)编码定义,게이트웨이支持以下 7 种센서유형,并可扩展更多:
3.1 센서유형编码总表
| 유형编码 | 센서名称 | 主要데이터필드 | 데이터1 含义 | 데이터2 含义 | 典型적용시나리오 |
|---|---|---|---|---|---|
| 00H | 通用 1527 编码设备 | 子设备유형 + 状态데이터 | 空闲 | 子设备유형编码 | 通用无线遥控/도어 자석/门窗센서 |
| 01H | 온습도센서 | 온도 + 湿度 + 电量 | 온도值(0.1°C) | 湿度值(0.1%) | 温室大棚、仓库、机房、实验室 |
| 02H | 耳标센서(畜牧专用) | 온도 + 震动计数 + 电量 | 온도值(0.1°C) | 震动次数(次) | 牲畜体温监测、发情/健康预警 |
| 03H | 烟感/연기 센서 | 연기浓度 + 电量 | 空闲 | 연기浓度(ppm) | 仓库防火、厨房安防、工厂消防 |
| 04H | 雷达人体存在센서 | 存在状态 + 电量 | 空闲 | 存在状态(0=无人/1=有人) | 智能照明、会议室、卫生间联动 |
| 05H | 적외선 PIR 센서 | 存在状态 + 电量 | 空闲 | 存在状态(0=无人/1=有人) | 入侵报警、走廊感应、安防监控 |
| 06H | 无线리모컨 | 按键状态 + 子设备유형 | 空闲 | 按键状态데이터 | 원격 제어、灯光控制、设备开关 |
| 07H+ | 预留扩展 | 待定义(XXXX) | 待定义 | 待定义 | 未来新센서유형的扩展位 |
3.2 各센서데이터형식详细설명
① 온습도센서(Type=01H)
| 바이트位置 | 필드名 | 데이터유형 | 单位 | 取值范围 | 예제 |
|---|---|---|---|---|---|
| +0~+1 (Byte0~1) | Index | UINT16 | - | 高8位=번호(0~63),低8位=유형(0x01) | 0x0001 表示 1 号온습도센서 |
| +2~+5 (Byte2~5) | 设备주소 Addr | UINT32 | - | 32 位唯一标识 | 0x12345678 |
| +6~+7 (Byte6~7) | 온도 데이터1 | INT16 | 0.1°C | -3276.8 ~ 3276.7°C | 0x00FB = 25.1°C;0xFFEC = -2.0°C |
| +8~+9 (Byte8~9) | 湿度 데이터2 | 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)
专为牛羊猪等牲畜设计的无线耳标式센서,是本产品的一大特色功能:
| 바이트位置 | 필드名 | 데이터유형 | 单位 | 取值范围 | 业务含义 |
|---|---|---|---|---|---|
| +0~+1 | Index | UINT16 | - | 低8位=0x02 | 标识为耳标유형 |
| +2~+5 | 设备주소 Addr | UINT32 | - | 唯一标识 | 每头牲畜的唯一 ID |
| +6~+7 | 온도 데이터1 | INT16 | 0.1°C | 体温范围 | 牲畜体温(如 38.5°C = 正常牛体温) |
| +8~+9 | 震动 데이터2 | UINT16 | 次 | 0 ~ 65535 | 活动量/震动次数,用于判断牲畜活跃度或异常行为 |
| +10~+11 | 电池 Battery | UINT16 | 1% | 0% ~ 100% | 耳标电池剩余电量 |
③ 연기/烟感센서(Type=03H)
| 바이트位置 | 필드名 | 데이터유형 | 单位 | 取值范围 | 备注 |
|---|---|---|---|---|---|
| +6~+7 | 데이터1 | — | — | 空闲 | 保留未用 |
| +8~+9 | 연기浓度 데이터2 | UINT16 | ppm | 0 ~ 5000 ppm | 0x1388 = 5000 ppm(高浓度报警阈值) |
| +10~+11 | 电池 Battery | UINT16 | 1% | 0% ~ 100% | 센서电池电量 |
④ 雷达人体存在센서(Type=04H)& 적외선 PIR 센서(Type=05H)
两种센서均用于人体存在检测,但기술원리不同:
| 对比项 | 雷达센서(Type=04H) | 적외선 PIR 센서(Type=05H) |
|---|---|---|
| 检测원리 | 毫米波雷达多普勒效应 | 热释电적외선线检测 |
| 데이터2 取值 | 0x0000 = 无人;0x0001 = 有人 | 0x0000 = 无人;0x0001 = 有人 |
| 优点 | 可穿透塑料/玻璃,不受온도影响,可检测微小动作(如呼吸),适合"人在即亮" | 成本低,功耗极低,适合移动检测 |
| 缺点 | 成本较高 | 无法检测静止人体,受환경온도影响 |
| 适用시나리오 | 智能办公室/会议室/卫生间(精准存在检测) | 走廊/过道/入口(移动侦测) |
⑤ 无线리모컨(Type=06H)& 通用 1527 编码设备(Type=00H)
| 필드 | 无线리모컨(06H) | 通用 1527 设备(00H) |
|---|---|---|
| 데이터1 | 空闲 | 空闲 |
| 데이터2 | 按键状态데이터(具体编码取决于리모컨型号) | 子设备유형编码(绑定后由主机更新设置) |
| 备注 | 用于수신 433MHz 리모컨按键信号 | 兼容市面上大多数 EV1527 编码的无线发射设备(도어 자석、침수、振动等) |
四、통신매개변수与帧형식사양
4.1 基础통신매개변수
| 매개변수项 | 默认值 | 可选值/范围 | 설정방식 |
|---|---|---|---|
| 통신 프로토콜 | Modbus RTU | — | 固定 |
| 物理인터페이스 | RS485 | — | 固定 |
| 데이터형식 | 8N1(8 데이터 비트,패리티 없음,1 정지 비트) | 可설정 | 默认 8N1 |
| 슬레이브 주소 | 1 | 1 ~ 247 | 쓰기 0003H 레지스터 |
| 广播주소 | 255(0xFF) | 仅 255 | 向所有슬레이브명령 보내기 |
| 통신 속도 | 9600 bps | 9600 / 19200 / 38400 / 57600 / 115200 | 쓰기 0004H 레지스터 |
| 체크섬 방식 | CRC16 | 多项式 0xA001(MODBUS 표준) | 固定 |
| 最大센서数量 | — | 64 个 | 硬件限制 |
| 帧间隔时间 | ≥ 3.5 문자时间 | @9600bps ≈ 3.6ms;@115200bps ≈ 0.3ms | RTU 프로토콜要求 |
4.2 통신 속도설정对照表(0004H 레지스터)
| 쓰기值 | 实际통신 속도 | 单문자时间 | 3.5 문자间隔 | 适用시나리오 |
|---|---|---|---|---|
| 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 支持的기능 코드
| 기능 코드 | 名称 | 方向 | 用途 |
|---|---|---|---|
| 0x03 | 读유지 레지스터 | 마스터→슬레이브 | 읽기버전号、节点数、센서데이터等 |
| 0x06 | 写单个레지스터 | 마스터→슬레이브 | 设置주소、통신 속도、모드、启动绑定等 |
| 0x10 | 写多个레지스터 | 마스터→슬레이브 | 추가센서、삭제节点、批量쓰기데이터等 |
五、完整레지스터 매핑表
5.1 系统控制레지스터区(0001H ~ 000FH)
| 레지스터주소 | 레지스터名称 | 读写权限 | 데이터형식 | 取值范围/설명 |
|---|---|---|---|---|
| 0001H | 버전号 | 只读 | UINT16 | 设备固件버전号,如 0x0102 表示 V1.2 |
| 0002H | 当前在线节点数目 | 只读 | UINT16 | 当前已회원가입绑定的센서节点数量(0 ~ 63) |
| 0003H | RS485 주소 | 读写 | UINT16 | Modbus 슬레이브 주소,默认 1,范围 1 ~ 247 |
| 0004H | 시리얼 포트통신 속도 | 读写 | UINT16 | 0=9600, 1=19200, 2=38400, 3=57600, 4=115200 |
| 0005H | 主动上报모드设置 | 读写 | UINT16 | 0=主动上报使能(默认);1=查询上报使能 |
| 0006H | 启动绑定配对功能 | 只写 | UINT16 | 쓰기 1 启动绑定(指示灯闪烁,20 秒超时自动退出) |
| 0007H | 清除所有绑定데이터 | 只写 | UINT16 | 清除所有已绑定的센서데이터,需重新绑定 |
| 0008H ~ 000FH | 保留 | — | — | 预留未来扩展使用 |
5.2 센서데이터레지스터区(0010H 起)
每个센서占用 6 个连续레지스터(12 바이트),最多支持 64 个센서:
| 센서번호 | 레지스터주소范围 | +0 Index | +1 Addr_H | +2 Addr_L | +3 데이터1 | +4 데이터2 | +5 Battery |
|---|---|---|---|---|---|---|---|
| 센서 1 | 0010H ~ 0015H | 번호+유형 | 주소高 16 位 | 주소低 16 位 | 데이터 1 | 데이터 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 双데이터上报모드
게이트웨이支持两种데이터上报모드,通过 0005H 레지스터전환:
모드 0:主动上报모드(默认)
- 无线센서检测到데이터变化后,自动将데이터上传至게이트웨이
- 게이트웨이收到后바로更新内部레지스터 캐싱
- 上位机可通过 0x03 기능 코드随时轮询읽기最新데이터
- 优点:实时性好,센서端主动推送,데이터更新及时
- 适用시나리오:需要实时监控的시나리오(如온도超限告警、人员闯入检测等)
모드 1:查询上报모드
- 无线센서仅在收到게이트웨이查询命令时才返回데이터
- 上位机发起읽기请求 → 게이트웨이向센서查询 → 返回데이터
- 优点:省电,센서大部分时间处于休眠状态
- 适用시나리오:电池전원 공급센서、低功耗优先的시나리오(如农业远程监测)
6.2 绑定配对流程
新增无线센서到게이트웨이前,必须先完成绑定配对操作。支持两种触发방식:
방식一:软件指令绑定(通过 Modbus 쓰기 0006H)
- 上位机向 0006H 레지스터쓰기数值 1:보내기 01 06 00 06 00 01 A8 0B
- 게이트웨이进入绑定모드,指示灯开始闪烁
- 让目标无线센서보내기一次데이터(或触发其发射信号)
- 게이트웨이수신并识别센서信号,自动分配一个空闲存储槽,记录센서주소
- 绑定成功:指示灯정지闪烁,게이트웨이返回响应 01 06 00 06 00 01 A8 0B(成功代码 1)
- 若 20 秒内未收到任何센서信号,返回超时响应 01 06 00 06 00 02 E8 0A(超时代码 2),退出绑定모드
방식二:硬件按键绑定
- 长按게이트웨이面板上的配对按键 5 秒
- 进入绑定모드(与软件指令效果完全相同)
- 后续步骤与방식一相同
七、完整操作案例(10 个实例含逐바이트분석)
以下提供覆盖전체功能的完整操作예제,包含16진수请求/响应帧及逐필드분석。
7.1 系统레지스터操作(6 例)
案例 1:읽기设备固件버전号(읽기 0001H)
| 项目 | 콘텐츠 |
|---|---|
| 操作유형 | 读유지 레지스터(기능 코드 0x03) |
| 请求帧(16진수) | 01 03 00 01 00 01 D5 CA |
| 请求분석 | [주소=01] [기능 코드=03] [시작주소=0001H] [레지스터数=1] [CRC=D5CA] |
| 响应帧(16진수) | 01 03 02 01 02 B8 44 |
| 响应분석 | [주소=01] [기능 코드=03] [바이트数=2] [데이터=0102] → V1.2 버전 [CRC=B844] |
案例 2:읽기当前在线센서节点数(읽기 0002H)
| 项目 | 콘텐츠 |
|---|---|
| 请求帧 | 01 03 00 02 00 01 25 CA |
| 响应帧 | 01 03 02 00 08 B9 82 |
| 结果解读 | 当前有 8 个센서节点在线 |
案例 3:修改设备 RS485 슬레이브 주소(쓰기 0003H → 新주소 = 2)
| 项目 | 콘텐츠 |
|---|---|
| 操作유형 | 写单个레지스터(기능 코드 0x06) |
| 请求帧 | 01 06 00 03 00 02 F8 0B |
| 请求분석 | [주소=01] [기능 코드=06] [레지스터=0003H] [데이터=0002 → 주소改为 2] [CRC=F80B] |
| 响应帧 | 01 06 00 03 00 02 F8 0B(回显请求帧,表示쓰기成功) |
| 注意 | 修改后需使用新주소(0x02)进行后续통신 |
案例 4:修改시리얼 포트통신 속도为 19200(쓰기 0004H → 值 = 1)
| 项目 | 콘텐츠 |
|---|---|
| 请求帧 | 01 06 00 04 00 01 09 CB |
| 请求분석 | [주소=01] [기능 코드=06] [레지스터=0004H] [데이터=0001 → 통신 속도选项 1] [CRC=09CB] |
| 响应帧 | 01 06 00 04 00 01 09 CB(成功) |
| 注意 | 修改后需전환上位机시리얼 포트的통신 속도为 19200 才能继续통신 |
案例 5:전환为查询上报모드(쓰기 0005H → 值 = 1)
| 项目 | 콘텐츠 |
|---|---|
| 请求帧 | 01 06 00 05 00 01 58 0B |
| 请求분석 | [주소=01] [기능 코드=06] [레지스터=0005H] [데이터=0001 → 조회 모드] [CRC=580B] |
| 响应帧 | 01 06 00 05 00 01 58 0B(成功전환为查询上报모드) |
案例 6:启动센서绑定配对(쓰기 0006H → 值 = 1)
| 项目 | 콘텐츠 |
|---|---|
| 请求帧 | 01 06 00 06 00 01 A8 0B |
| 请求분석 | [주소=01] [기능 코드=06] [레지스터=0006H] [데이터=0001 → 启动绑定] [CRC=A80B] |
| 响应帧(成功) | 01 06 00 06 00 01 A8 0B(代码 1 = 命令执行成功,대기센서入网) |
| 响应帧(超时) | 01 06 00 06 00 02 E8 0A(代码 2 = 20 秒内无센서入网,超时退出) |
7.2 센서데이터레지스터操作(4 例)
案例 7:手动추가센서 1 到系统(쓰기주소 0x12345678)
当已知센서设备的 32 位주소时,可直接通过레지스터쓰기将其추가到系统:
| 项目 | 콘텐츠 |
|---|---|
| 操作유형 | 写多个레지스터(기능 코드 0x10) |
| 目标주소 | 센서 1 데이터区的시작주소 0010H,连续쓰기 3 个레지스터(Index + Addr_H + Addr_L) |
| 请求帧 | 01 10 00 10 00 03 06 00 01 12 34 56 78 A1 E1 |
| 逐바이트분석 | [01=주소] [10=기능 코드] [00 10=시작주소0010H] [00 03=写3个레지스터] [06=共6바이트데이터] [00 01=1号+온습도유형] [12 34=주소高16位] [56 78=주소低16位] [A1 E1=CRC] |
| 响应帧 | 01 10 00 10 00 03 81 CD(确认从 0010H 开始쓰기 3 个레지스터) |
案例 8:읽기센서 1 的전체데이터(6 个레지스터 = 12 바이트)
| 项目 | 콘텐츠 |
|---|---|
| 请求帧 | 01 03 00 10 00 06 C4 0D |
| 请求분석 | [01=주소] [03=기능 코드] [00 10=시작주소0010H] [00 06=读6个레지스터] [CRC=C40D] |
| 响应帧 | 01 03 0C 00 01 12 34 56 78 00 FA 01 F4 00 64 B5 F2 |
| 逐바이트분석 | [01=주소] [03=기능 코드] [0C=12바이트데이터] [00 01 → 1号센서 + 온습도유형(01H)] [12 34 56 78 → 32位设备주소 0x12345678] [00 FA → 온도 25.0°C(250×0.1)] [01 F4 → 湿度 50.0%(500×0.1)] [00 64 → 电池 100%] [B5 F2 = CRC] |
案例 9:삭제센서 1(清零주소레지스터)
삭제센서的方法是将对应的주소레지스터전체清零:
| 项目 | 콘텐츠 |
|---|---|
| 请求帧 | 01 10 00 10 00 03 06 00 00 00 00 00 00 E7 15 |
| 请求분석 | [01=주소] [10=기능 코드] [00 10=시작주소] [00 03=3个레지스터] [06=6바이트데이터] [00 00 00 00 00 00 = 전체清零] [E7 15=CRC] |
| 响应帧 | 01 10 00 10 00 03 81 CD(삭제成功) |
| 效果 | 센서 1 的주소被清零,系统不再수신该센서的데이터,存储槽释放 |
案例 10:直接쓰기센서 1 的온도和湿度데이터
| 项目 | 콘텐츠 |
|---|---|
| 请求帧 | 01 10 00 13 00 02 04 01 2C 02 58 72 19 |
| 请求분석 | [01=주소] [10=기능 코드] [00 13=시작주소0013H(데이터1)] [00 02=写2个레지스터] [04=4바이트데이터] [01 2C → 온도 30.0°C(300×0.1)] [02 58 → 湿度 60.0%(600×0.1)] [72 19=CRC] |
| 响应帧 | 01 10 00 13 00 02 B0 0D(쓰기成功) |
八、异常处理与错误码
8.1 Modbus 异常响应형식
当슬레이브检测到非法操作时,返回异常响应:
- 正常기능 코드最高位变为 1(如 0x03 → 0x83,0x06 → 0x86,0x10 → 0x90)
- 后面跟随 1 바이트的异常码
| 异常码 | 含义 | 常见原因 | 解决方法 |
|---|---|---|---|
| 01 | 非法기능 코드 | 使用了不支持的기능 코드 | 仅使用 0x03/0x06/0x10 |
| 02 | 非法데이터주소 | 레지스터주소超出有效范围 | 检查주소是否在 0001H~012FH 范围内 |
| 03 | 非法데이터值 | 쓰기的데이터值超出允许范围 | 检查取值范围(如주소应在 1~247) |
8.2 绑定功能返回码(0006H 레지스터)
| 返回码 | 含义 | 설명 |
|---|---|---|
| 1 | 命令执行成功 | 绑定指令已수신,게이트웨이进入配对모드대기센서入网 |
| 2 | 绑定超时 | 20 秒内未收到센서信号,自动退出绑定모드 |
8.3 故障诊断速查表
| 문제现象 | 可能原因 | 솔루션 |
|---|---|---|
| 통신超时,无响应 | RS485 주소不일치或통신 속도不一致 | 检查 0003H 주소레지스터和 0004H 통신 속도레지스터설정 |
| 센서데이터读出全为零 | 센서节点未회원가입/绑定,或주소쓰기错误 | 检查 0010H 시작的주소레지스터是否正确쓰기非零值 |
| 无法쓰기레지스터 | 기능 코드使用错误或权限不足 | 确认使用正确的기능 코드:单个쓰기用 0x06,多个쓰기用 0x10;注意 0001H/0002H 为只读 |
| CRC 검증错误 | 데이터传输过程中出现误码 | 检查 RS485 线路연결(A+/B- 是否接反、终端电阻是否缺失),重新계산 CRC |
| 绑定失败(反复超时) | 센서不在통신范围内或电池耗尽 | 缩短센서与게이트웨이距离,更换센서电池 |
| 部分센서데이터不更新 | 该센서超出无线信号覆盖范围 | 调整게이트웨이天线方向,或추가中继器 |
九、注意事项与最佳实践
9.1 关键注意事项
- 帧间隔时间:RTU 모드下,相邻两帧之间必须保持至少 3.5 个문자时间的静默间隔。不同통신 속도下的最短帧间隔:
- 9600 bps:약 3.6 ms
- 115200 bps:약 0.3 ms
- 大端바이트序:使用기능 코드 0x10 写多个레지스터时,데이터必须按大端모드(Big-Endian)组织,高바이트在前,低바이트在后。
- 广播操作无响应:向广播주소 0xFF 명령 보내기时,所有슬레이브执行操作但不会返回响应帧。
- 센서규칙 추가:추가센서时,주소레지스터(Addr_H + Addr_L)必须쓰기非零值;쓰기全零等同于삭제该节点。
- 操作间隔:센서데이터更新后,需대기至少 100ms再进行下一次레지스터操作。
- 清除绑定的风险:쓰기 0007H 레지스터会一次性清除所有已绑定的센서데이터,操作前请确认无需保留现有설정,清除后需逐一重新绑定。
9.2 推荐操作流程
- 首次上电:읽기 0001H 确认固件버전,읽기 0002H 确认初始状态
- 설정통신매개변수:根据需要修改 0003H(주소)、0004H(통신 속도)、0005H(上报모드)
- 绑定센서:通过 0006H 或物理按键逐一추가센서
- 验证绑定:읽기 0002H 确认节点数,읽기对应센서데이터区确认데이터正常
- 日常运维:定期읽기센서 Battery 필드监控电量,及时更换低电量센서电池
十、CRC16 算法实现
本프로토콜采用 MODBUS 표준 CRC16체크섬算法,多项式为 0xA001(即 0x8005 的位反转形式)。以下是完整的 C 언어参考实现:
#include <stdint.h>
/**
* MODBUS CRC16 계산
* @param 데이터 待계산的데이터缓冲区指针
* @param len 데이터길이(바이트)
* @return 16 位 CRC 검증值(低바이트在前)
*
* 多项式:0xA001(MODBUS 표준)
* 初始值:0xFFFF
*/
uint16_t calc_crc(uint8_t *데이터, uint16_t len)
{
uint16_t crc = 0xFFFF; // 初始值
for (uint16_t i = 0; i < len; i++)
{
crc ^= 데이터[i]; // 与当前바이트异或
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(低바이트 0xD5 在前,高바이트 0xCA 在后)
*/
十一、자료 다운로드与기술支持
- 本문서버전:V1.3(2025-10-03 更新)
- 프로토콜遵循표준:Modbus 工业표준프로토콜사양
- 具体레지스터定义以设备实际固件为准
- 如需기술支持,请문의制造商获取最新레지스터 매핑表及프로토콜문서
버전迭代历史
| 버전号 | 发布日期 | 主要变更콘텐츠 |
|---|---|---|
| V1.1 | 2025-09-01 | 基础버전,采用표준 Modbus-RTU 프로토콜作为主节点통신 프로토콜 |
| V1.2 | 2025-09-21 | 추가软件指令启动绑定功能;추가硬件按键启动绑定功能 |
| V1.3(当前) | 2025-10-03 | 修正最大支持센서数目为 64 个;추가센서유형데이터필드;추가센서데이터段형식详细설명;修正绑定超时时间为 20 秒;추가 0007H 레지스터(一键清除전체绑定) |
十二、典型적용시나리오
시나리오一:스마트 농업 — 大棚환경监控系统
在温室大棚内部署온습도센서(Type=01H),通过本게이트웨이将데이터汇聚后经 Modbus RTU 上传至 PLC 或触摸屏控制系统。可联动通风机、喷淋系统、遮阳帘等设备,实现恒温恒湿自动调节。支持最多 64 个센서点,满足大型连栋温室的多点位监测需求。
시나리오二:智慧畜牧 — 牲畜健康管理
为每头牛/羊佩戴无线耳标센서(Type=02H),게이트웨이集中收集牲畜体温和活动量데이터。当某头牲畜体温超过设定阈值时自动告警(疾病预警),或活动量异常变化时判断发情/健康状况。64 节点容量足以覆盖中小型养殖场的牲畜管理需求。
시나리오三:消防安全 — 仓库/机房烟火监测
部署연기 센서(Type=03H),实时监测仓库、机房等重点区域的연기浓度。当浓度超过阈值时,通过 Modbus 上位机触发경광등 부저 경보기、排风系统或通知消防联动平台。配合온습도센서还可实现综合환경安全监测。
시나리오四:智能建筑 — 人体存在感知与照明联动
在办公室、会议室、卫生间安装雷达센서(Type=04H)或적외선 PIR 센서(Type=05H),实现精准的人员存在检测。雷达方案可探测微动(甚至呼吸),实现真正的"人在即亮"智能照明控制,大幅节约能源。센서데이터通过게이트웨이接入빌딩 자동제어系统(BAS)或 KNX/Modbus 总线。
시나리오五:安防报警 — 入侵检测与无线遥控
结合적외선센서(Type=05H)实现周界入侵检测,搭配无线리모컨(Type=06H)用于布防/撤防操作。通用 1527 设备(Type=00H)可兼容도어 자석、玻璃破碎、침수等各类无线探测器,构建完整的无线安防系统,所有데이터统一通过 Modbus RTU 接入报警主机或 SCADA 平台。
답글 작성