
一、联网拓扑
本设备采用集中联网控制방식,确保设备间稳定高效통신。
二、주소设置
- 进入设置:设备开机状态下,长按“모드”和“风速”按键,进入주소设置모드。
- 전환位数:通过按“모드”键来전환주소位数。
- 退出设置:按“风速”按键退出주소设置모드。
三、통신 프로토콜
3.1 프로토콜简介
本设备采用国际通用的 MODBUS-RTU 통신 프로토콜,进行 RS485 半双工통신。主机读데이터功能号为 0x03,写功能号为 0x10 或 0x06,采用 16 位 CRC 검증,若체크섬错误则不回应。
3.2 통신매개변수
- 통신 속도:9600
- 데이터형식:
- 시작位:1位
- 데이터 비트:8位
- 정지 비트:1位
- 패리티:无
- 设备주소范围:0x01~0xFE
3.3 통신异常处理
- 异常应答:当出现异常应答时,将功能号的最高位置 1。例如,主机请求功能号为 0x03,则从机返回的功能号对应项为 0x83。
- 错误유형码:
- 0x01:기능 코드非法(设备不支持수신到的功能号)
- 0x02:데이터 비트置非法(主机指定的데이터 비트置超出了设备的范围)
- 0x03:데이터值非法(主机보내기的데이터值超出了设备对应的데이터范围)
예제:若主机请求기능 코드为 0x04,从机异常应答데이터包为 0x01 0x84 0x01 0x82 0xc0。
3.4 통신기능 코드
设备주소默认值:0x01
3.4.1 读单/多레지스터
主机보내기(读多레지스터예제):
| 바이트位置 | 콘텐츠설명 | 예제值(16진수) |
|---|---|---|
| 1 | 设备주소 | 0x01 |
| 2 | 기능 코드 | 0x03 |
| 3 | 시작주소高位 | 0x00 |
| 4 | 시작주소低位 | 0x00 |
| 5 | 데이터字长高位 | 0x00 |
| 6 | 데이터字长低位 | 0x10 |
| 7 | CRC 码高位 | 0x44 |
| 8 | CRC 码低位 | 0x06 |
从机正常应答:
| 바이트位置 | 콘텐츠설명 | 예제值(16진수) |
|---|---|---|
| 1 | 设备주소 | 0x01 |
| 2 | 기능 코드 | 0x03 |
| 3 | 데이터바이트数 | 0x10 |
| 4-5 | 데이터 1 高低位 | 0x00 0x00 |
| 6-7 | 데이터 2 高低位 | 0x00 0x12 |
| 8-9 | 데이터 3 高低位 | 0x00 0x0d |
| 10-11 | 데이터 4 高低位 | 0x00 0x02 |
| 12-13 | 데이터 5 高低位 | 0x00 0x00 |
| 14-15 | 데이터 6 高低位 | 0x00 0x00 |
| 16-17 | 데이터 7 高低位 | 0x00 0x00 |
| 18-19 | 데이터 8 高低位 | 0x00 0x00 |
| 20-21 | 데이터 9 高低位 | 0x00 0x00 |
| 22-23 | 데이터 10 高低位 | 0x00 0x00 |
| 24 | CRC 码高位 | 0x6f |
| 25 | CRC 码低位 | 0xc5 |
3.4.2 写单路레지스터
主机보내기:
| 바이트位置 | 콘텐츠설명 | 예제值(16진수) |
|---|---|---|
| 1 | 设备주소 | 0x01 |
| 2 | 기능 코드 | 0x06 |
| 3 | 레지스터주소高位 | 0x00 |
| 4 | 레지스터주소低位 | 0x02 |
| 5 | 쓰기데이터高位 | 0x00 |
| 6 | 쓰기데이터低位 | 0x19 |
| 7 | CRC 码高位 | 0xE9 |
| 8 | CRC 码低位 | 0xC0 |
从机应答:
| 바이트位置 | 콘텐츠설명 | 예제值(16진수) |
|---|---|---|
| 1 | 设备주소 | 0x01 |
| 2 | 기능 코드 | 0x06 |
| 3 | 레지스터주소高位 | 0x00 |
| 4 | 레지스터주소低位 | 0x02 |
| 5 | 쓰기데이터高位 | 0x00 |
| 6 | 쓰기데이터低位 | 0x19 |
| 7 | CRC 码高位 | 0xE9 |
| 8 | CRC 码低位 | 0xC0 |
3.4.3 写多路레지스터
主机보내기:
| 바이트位置 | 콘텐츠설명 | 예제值(16진수) |
|---|---|---|
| 1 | 设备주소 | 0x01 |
| 2 | 기능 코드 | 0x10 |
| 3 | 레지스터주소高位 | 0x00 |
| 4 | 레지스터주소低位 | 0x00 |
| 5 | 데이터字长高位 | 0x00 |
| 6 | 데이터字长低位 | 0x01 |
| 7 | 데이터바이트길이 | 0x02 |
| 8 | 쓰기데이터高位 | 0x00 |
| 9 | 쓰기데이터低位 | 0x55 |
| 10 | CRC 码高位 | 0x66 |
| 11 | CRC 码低位 | 0x6f |
从机应答:
| 바이트位置 | 콘텐츠설명 | 예제值(16진수) |
|---|---|---|
| 1 | 设备주소 | 0x01 |
| 2 | 기능 코드 | 0x10 |
| 3 | 레지스터주소高位 | 0x00 |
| 4 | 레지스터주소低位 | 0x00 |
| 5 | 데이터字长高位 | 0x00 |
| 6 | 데이터字长低位 | 0x01 |
| 7 | CRC 码高位 | 0x91 |
| 8 | CRC 码低位 | 0xc5 |
3.4.4 레지스터주소映像表
| 순번 | 레지스터주소 | 변수名称 | 默认值 | 바이트数 | 取值范围설명 | 读写允许 |
|---|---|---|---|---|---|---|
| 1 | 0x0000 | 开关机 | 0x0000 | 2 | 0x0001 开机,0x0000 关机 | R/W |
| 2 | 0x0001 | 当前온도 | 0x0000 | 2 | 10 진법형식,0-51(0x0012 表示 18 度) | R |
| 3 | 0x0002 | 设定온도 | 0x0014 | 2 | 10 진법형식,以온도设定允许值为限(0x0012 表示 18 度) | R/W |
| 4 | 0x0003 | 모드 | 0x0000 | 2 | 0x0000 制冷,0x0001 采暖,0x0002 通风 | R/W |
| 5 | 0x0004 | 风速 | 0x0000 | 2 | 自动 0x0000,低速 0x0001,中速 0x0002,高速 0x0003 | R/W |
| 6 | 0x0005 | 制冷阀门状态(二管制阀) | 0x0000 | 2 | 닫기 0x0000,开启 0x0001 | R |
| 7 | 0x0006 | 采暖阀门状态 | 0x0000 | 2 | 닫기 0x0000,开启 0x0001 | R |
| 8 | 0x0007 | 锁键状态 | 0x0000 | 2 | 닫기 0x0000,开启 0x0001(开启时按键无效) | R/W |
| 9 | 0x0008 | 온도设定最低允许值 | 0x000a | 2 | 10 진법형식,0-15(0x0012 表示 18 度) | R/W |
| 10 | 0x0009 | 온도设定最高允许值 | 0x001e | 2 | 10 진법형식,20-30(0x0012 表示 18 度) | R/W |
备注:CRC 仅供参考,以 MODSCAN32 통신为准。
四、例程
4.1 시리얼 포트도구测试
4.1.1 읽기레지스터
보내기데이터包:01 03 00 00 00 05 85 C9
보내기분석:
- 01:设备주소
- 03:읽기기능 코드
- 00 00:레지스터开始주소
- 00 05:레지스터종료주소
- 85 C9:CRC 검증码
返回데이터包:01 03 0A 00 01 00 1E 00 19 00 00 00 03 8A E4
返回분석:
- 01:设备주소
- 03:읽기기능 코드
- 0A:10 个데이터
- 00 01:开机状态
- 00 1E:当前온도(0x1e=30 摄氏度)
- 00 19:设置온도(0x19=25 摄氏度)
- 00 00:制冷모드
- 00 03:风速高速
- 8A E4:CRC 검증码
4.1.2 写设置온도레지스터
보내기데이터包:01 06 00 02 00 19 E9 C0
보내기분석:
- 01:设备주소
- 06:쓰기기능 코드
- 00 02:레지스터주소 2(当前온도)
- 00 19:当前온도值(0x19=25 摄氏度)
- E9 C0:CRC 검증码
返回데이터包:01 06 00 02 00 19 E9 C0
4.1.3 읽기锁레지스터
보내기데이터包:01 03 00 07 00 01 01
보내기분석:
- 01:设备주소
- 03:읽기기능 코드
- 00 07:开始레지스터주소
- 00 01:읽기레지스터 수량
返回데이터包:01 03 02 00 01 79 84
返回분석:
- 01:设备주소
- 03:읽기기능 코드
- 02:返回데이터数量
- 00 01:锁状态(0x00 닫기,0x01 开启)
- 79 84:CRC 검증码
4.1.4 写锁레지스터
보내기데이터包:01 06 00 07 00 00
보내기분석:
- 01:设备주소
- 06:쓰기기능 코드
- 00 07:按键锁레지스터주소
- 00 00:닫기锁(00),01 为锁
返回데이터包:01 06 00 07 00 00 38 0B
답글 작성