1. 功能简介
本文档定义了适用于开合帘电机的通用RS485通信协议。协议采用主从式结构,规定了主机与电机控制器之间的数据帧格式、寄存器映射、控制指令及所有通信细节,是实现对电机状态查询、参数配置及运动控制的根本依据。
2. 协议总则
2.1 通信参数
- •物理接口: RS485,半双工。
- •波特率: 9600 bps (默认)。
- •数据格式: 8位数据位,1位停止位,无奇偶校验位。
- •寻址范围:
0x01
~0xFE
。0x00
为广播地址,0xFE
为出厂默认地址。
2.2 通用数据帧格式所有通信数据包均采用统一的帧结构。
字段 | 起始码 | 设备地址 | 功能码 | 数据地址 | 数据长度 | 数据内容 | CRC16 |
---|---|---|---|---|---|---|---|
长度(字节) | 1 | 2 | 1 | 1 | 1 | N | 2 |
描述 | 固定0x55 | 目标设备地址 | 指令类型 | 寄存器地址 | 数据字节数 | 参数或数据 | 循环冗余校验 |
示例 | 0x55 | 0x12, 0x34 | 0x03 | 0x01 | 0x01 | ... | 0xAD, 0x8A |
- •CRC16校验: 校验范围涵盖从“设备地址”到“数据内容”的所有字节。算法需与示例匹配。
2.3 功能码定义
- •
0x01
: 读寄存器。主机请求读取从机数据。 - •
0x02
: 写寄存器。主机请求写入从机数据。 - •
0x03
: 控制命令。主机发送运动控制指令。 - •
0x04
: 从机请求。从机主动上报信息(如请求分配地址)。
3. 寄存器映射说明
下表列出了所有可访问的寄存器地址及其功能。
数据地址 | 描述 | 数据格式与范围 | 读写属性 | 版本备注 |
---|---|---|---|---|
0x00 | 设备地址低字节 (ID_L) | 0x01 ~0xFE | 可写 | 与0x01共同构成设备地址。 |
0x01 | 设备地址高字节 (ID_H) | 0x01 ~0xFE | 可写 | 同上。 |
0x02 | 当前位置(百分比) | 0x00 ~0x64 (0-100%)0xFF :未设置行程 | 只读 | 开(UP)到行程点100%,关(DOWN)到行程点0%。 |
0x03 | 电机默认方向 | 0x00 :默认方向0x01 :反方向 | 可读写 | 用于校正电机的正反转逻辑。 |
0x04 | 手拉启动使能 | 0x00 :开启手拉功能0x01 :关闭手拉功能 | 可读写 | 禁用后,手动拉动无法启动电机。 |
0x05 | 电机运行状态 | 0x00 :STOP(停止)0x01 :OPEN(正在打开)0x02 :CLOSE(正在关闭)0x03 :SETTING(行程设置中) | 只读 | A3版及以上 |
0x27 | 无源外接开关类型 | 0x01 :默认双反弹开关0x02 :双不反弹开关0x03 :DC246电子开关0x04 :单键循环开关 | 可读写 | A1版 |
0x28 | 强电外接开关类型 | 0x00 :强电双键不反弹模式(默认)0x01 :酒店模式(插卡取电开关)0x02 :强电双键可反弹模式 | 可读写 | 仅EV型电机 |
0xE0-0xEF | 用户信息区 | 16字节自定义数据 | 可读写 | 供主机存储信息。 |
0xF0 | 设备类型 | 0x01 :开合帘 | 只读 | - |
0xF1 | 模块通道数 | 1-15 | 只读 | - |
0xFD | 软件版本 | 0-255 | 只读 | - |
0xFE | 协议版本 | 0xA4 | 只读 | A1版 |
4. 控制指令说明
控制指令通过功能码 0x03
触发。
指令 | 描述 | 指令参数 | 版本备注 |
---|---|---|---|
0x01 | 打开命令 | 无 | - |
0x02 | 关闭命令 | 无 | - |
0x03 | 停止命令 | 无 | - |
0x04 | 百分比命令 | 0~100 (百分比) | - |
0x07 | 删除行程 | 无(全删) | - |
0x08 | 恢复出厂设置 | 无 | A1版 |
0x09 | 设置情景模式 | 情景模式号 | A2版 |
0x0A | 运行情景模式 | 情景模式号 | A2版 |
0x0B | 删除情景模式 | 情景模式号 | A2版 |
0x0F | 取反命令 | 无 | A4版 |
5. 通信举例说明
5.1 控制命令(功能码: 0x03)
5.1.1 打开命令
- •主机发送:
55 12 34 03 01 AD 8A
- •设备返回:
55 12 34 03 01 AD 8A
(确认帧)
5.1.2 关闭命令
- •主机发送:
55 12 34 03 02 ED 8B
- •设备返回:
55 12 34 03 02 ED 8B
(确认帧)
5.1.3 停止命令
- •主机发送:
55 12 34 03 03 2C 4B
- •设备返回:
55 12 34 03 03 2C 4B
(确认帧)
5.1.4 百分比命令(运行到30%位置)
- •主机发送:
55 12 34 03 04 1E C8 E5
(数据域:0x1E
= 30) - •设备返回(成功):
55 12 34 03 04 1E C8 E5
(确认帧) - •设备返回(失败,无行程):
55 12 34 03 04 FF 08 AD
(返回0xFF
)
5.1.5 删除行程命令
- •主机发送:
55 12 34 03 07 2D 88
- •设备返回:
55 12 34 03 07 2D 88
(确认帧)
5.1.6 恢复出厂设置命令
- •主机发送:
55 12 34 03 08 6D 8C
- •设备返回:
55 12 34 03 08 6D 8C
(确认帧) - •注意: 恢复后地址变为
0xFEFE
,行程被删除。
5.1.7 设置情景模式(设置1号情景)
- •主机发送:
55 12 34 03 09 01 8D BD
- •设备返回(成功):
55 12 34 03 09 01 8D BD
(确认帧) - •设备返回(失败,无行程):
55 12 34 03 09 FF 0C 3D
(返回0xFF
)
5.1.8 运行情景模式(运行1号情景)
- •主机发送:
55 12 34 03 0A 01 8D 4D
- •设备返回(成功):
55 12 34 03 0A 01 8D 4D
(确认帧) - •设备返回(失败):
55 12 34 03 0A FF 0C CD
(返回0xFF
)
5.1.9 删除情景模式(删除1号情景)
- •主机发送:
55 12 34 03 0B 01 8C DD
- •设备返回:
55 12 34 03 0B 01 8C DD
(确认帧)
5.1.10 广播控制命令举例(地址0x0000)
- •广播打开:
55 00 00 03 01 E9 3C
(所有电机执行打开,无设备返回) - •广播关闭:
55 00 00 03 02 A9 3D
(所有电机执行关闭,无设备返回) - •广播百分比:
55 00 00 03 04 1E 7E D6
(所有电机运行至30%,无设备返回)
5.2 读命令(功能码: 0x01)
5.2.1 读取当前位置(地址0x02)
- •主机发送:
55 12 34 01 02 01 2B 4D
- •设备返回(有行程):
55 12 34 01 01 1E 6A 75
(数据域:0x1E
= 30%) - •设备返回(无行程):
55 12 34 01 01 FF AA 3D
(数据域:0xFF
)
5.2.2 读取电机方向(地址0x03)
- •主机发送:
55 12 34 01 03 01 2A DD
- •设备返回:
55 12 34 01 01 00 EA 7D
(数据域:0x00
= 默认方向)
5.2.3 读取手拉状态(地址0x04)
- •主机发送:
55 12 34 01 04 01 28 ED
- •设备返回:
55 12 34 01 01 00 EA 7D
(数据域:0x00
= 手拉使能)
5.2.4 读取电机状态(地址0x05)
- •主机发送:
55 12 34 01 05 01 29 7D
- •设备返回:
55 12 34 01 01 00 EA 7D
(数据域:0x00
= 停止)
5.2.5 读取弱电开关类型(地址0x27)
- •主机发送:
55 12 34 01 27 01 31 DD
- •设备返回:
55 12 34 01 01 01 2B BD
(数据域:0x01
= 双反弹开关)
5.2.6 读取强电开关类型(地址0x28)
- •主机发送:
55 12 34 01 28 01 34 2D
- •设备返回:
55 12 34 01 01 00 EA 7D
(数据域:0x00
= 强电双键不反弹)
5.2.7 读取协议版本(地址0xFE)
- •主机发送:
55 12 34 01 FE 01 6A 4D
- •设备返回:
55 12 34 01 01 A3 AA 04
(数据域:0xA3
)
5.3 写命令(功能码: 0x02)
5.3.1 写设备地址(地址0x00, 0x01)
- •前提: 按住电机设置键5秒,待LED闪烁两次后松开。
- •主机发送:
55 00 00 02 00 02 12 34 50 7F
(将地址改为0x1234) - •设备返回:
55 12 34 02 00 02 9A 2C
(确认帧) - •成功指示: LED连续闪烁5次。
5.3.2 设置电机方向(地址0x03)
- •主机发送:
55 12 34 02 03 01 01 9D 5B
(写入0x01
,设置为反方向) - •设备返回:
55 12 34 02 03 01 DA DD
(确认帧)
5.3.3 设置手拉使能(地址0x04)
- •主机发送:
55 12 34 02 04 01 01 2C 9A
(写入0x01
,禁用手拉) - •设备返回:
55 12 34 02 04 01 D8 ED
(确认帧)
5.3.4 设置弱电开关类型(地址0x27)
- •主机发送:
55 12 34 02 27 01 02 9D 51
(写入0x02
,设为双不反弹模式) - •设备返回:
55 12 34 02 27 01 C1 DD
(确认帧)
5.3.5 设置强电开关类型(地址0x28)
- •主机发送:
55 12 34 02 28 01 01 ED 53
(写入0x01
,设为酒店模式) - •设备返回:
55 12 34 02 28 01 C4 2D
(确认帧)
5.4 从机请求命令(功能码: 0x04)
- •触发条件: 电机通电状态下,按住设置键5秒(LED闪两下)后松开。
- •从机发送:
55 FE FE 04 01 BB 14
(从机广播请求分配地址) - •主机响应(10秒内):
55 00 00 02 00 02 12 34 50 7F
(主机写入新地址0x1234) - •从机确认:
55 12 34 02 00 02 9A 2C
(地址更改成功)
6. 其他说明
- 1.行程的重要性: 未设置行程时(
0xFF
),百分比控制、情景模式等相关指令均无法执行。需先通过“打开”或“关闭”命令让电机运行至限位,自动记录行程。 - 2.版本兼容性: 部分指令和寄存器功能因硬件版本(A1, A2, A3, A4)而异,使用时需注意对应关系。
- 3.错误处理: 若设备无法执行指令(如无行程时执行百分比命令),会在返回帧的数据域中返回
0xFF
作为错误标识。 - 4.广播命令: 向地址
0x0000
发送命令可控制总线上的所有电机,但设备不会响应广播命令。
常用指令整理:
设备地址: 01 01
- •设置地址指令: 55 00 00 02 00 02 01 01 9D 58
- •打开窗帘: 55 01 01 03 01 B9 00
- •关闭窗帘: 55 01 01 03 02 F9 01
- •暂停窗帘: 55 01 01 03 03 38 C1
- •打开30%: 55 01 01 03 04 1E 42 EA
- •打开50%: 55 01 01 03 04 32 43 37
- •打开70%: 55 01 01 03 04 46 43 10
设备地址: 01 02
- •设置地址指令: 55 00 00 02 00 02 01 02 DD 59
- •打开窗帘: 55 01 02 03 01 49 00
- •关闭窗帘: 55 01 02 03 02 09 01
- •暂停窗帘: 55 01 02 03 03 C8 C1
- •打开30%: 55 01 02 03 04 1E 42 AE
- •打开50%: 55 01 02 03 04 32 43 73
- •打开70%: 55 01 02 03 04 46 43 54
设备地址: 01 03
- •设置地址指令: 55 00 00 02 00 02 01 03 1C 99
- •打开窗帘: 55 01 03 03 01 18 C0
- •关闭窗帘: 55 01 03 03 02 58 C1
- •暂停窗帘: 55 01 03 03 03 99 01
- •打开30%: 55 01 03 03 04 1E 43 52
- •打开50%: 55 01 03 03 04 32 42 8F
- •打开70%: 55 01 03 03 04 46 42 A8
设备地址: 01 04
- •设置地址指令: 55 00 00 02 00 02 01 04 5D 5B
- •打开窗帘: 55 01 04 03 01 A9 01
- •关闭窗帘: 55 01 04 03 02 E9 00
- •暂停窗帘: 55 01 04 03 03 28 C0
- •打开30%: 55 01 04 03 04 1E 42 26
- •打开50%: 55 01 04 03 04 32 43 FB
- •打开70%: 55 01 04 03 04 46 43 DC
设备地址: 01 05
- •设置地址指令: 55 00 00 02 00 02 01 05 9C 9B
- •打开窗帘: 55 01 05 03 01 F8 C1
- •关闭窗帘: 55 01 05 03 02 B8 C0
- •暂停窗帘: 55 01 05 03 03 79 00
- •打开30%: 55 01 05 03 04 1E 43 DA
- •打开50%: 55 01 05 03 04 32 42 07
- •打开70%: 55 01 05 03 04 46 42 20
设备地址: 01 06
- •设置地址指令: 55 00 00 02 00 02 01 06 DC 9A
- •打开窗帘: 55 01 06 03 01 08 C1
- •关闭窗帘: 55 01 06 03 02 48 C0
- •暂停窗帘: 55 01 06 03 03 89 00
- •打开30%: 55 01 06 03 04 1E 43 9E
- •打开50%: 55 01 06 03 04 32 42 43
- •打开70%: 55 01 06 03 04 46 42 64
设备地址: 01 07
- •设置地址指令: 55 00 00 02 00 02 01 07 1D 5A
- •打开窗帘: 55 01 07 03 01 59 01
- •关闭窗帘: 55 01 07 03 02 19 00
- •暂停窗帘: 55 01 07 03 03 D8 C0
- •打开30%: 55 01 07 03 04 1E 42 62
- •打开50%: 55 01 07 03 04 32 43 BF
- •打开70%: 55 01 07 03 04 46 43 98
设备地址: 01 08
- •设置地址指令: 55 00 00 02 00 02 01 08 5D 5E
- •打开窗帘: 55 01 08 03 01 69 02
- •关闭窗帘: 55 01 08 03 02 29 03
- •暂停窗帘: 55 01 08 03 03 E8 C3
- •打开30%: 55 01 08 03 04 1E 41 76
- •打开50%: 55 01 08 03 04 32 40 AB
- •打开70%: 55 01 08 03 04 46 40 8C
设备地址: 01 09
- •设置地址指令: 55 00 00 02 00 02 01 09 9C 9E
- •打开窗帘: 55 01 09 03 01 38 C2
- •关闭窗帘: 55 01 09 03 02 78 C3
- •暂停窗帘: 55 01 09 03 03 B9 03
- •打开30%: 55 01 09 03 04 1E 40 8A
- •打开50%: 55 01 09 03 04 32 41 57
- •打开70%: 55 01 09 03 04 46 41 70
设备地址: 02 01
- •设置地址指令: 55 00 00 02 00 02 02 01 9D A8
- •打开窗帘: 55 02 01 03 01 B9 44
- •关闭窗帘: 55 02 01 03 02 F9 45
- •暂停窗帘: 55 02 01 03 03 38 85
- •打开30%: 55 02 01 03 04 1E 06 EA
- •打开50%: 55 02 01 03 04 32 07 37
- •打开70%: 55 02 01 03 04 46 07 10
设备地址: 02 02
- •设置地址指令: 55 00 00 02 00 02 02 02 DD A9
- •打开窗帘: 55 02 02 03 01 49 44
- •关闭窗帘: 55 02 02 03 02 09 45
- •暂停窗帘: 55 02 02 03 03 C8 85
- •打开30%: 55 02 02 03 04 1E 06 AE
- •打开50%: 55 02 02 03 04 32 07 73
- •打开70%: 55 02 02 03 04 46 07 54
设备地址: 02 03
- •设置地址指令: 55 00 00 02 00 02 02 03 1C 69
- •打开窗帘: 55 02 03 03 01 18 84
- •关闭窗帘: 55 02 03 03 02 58 85
- •暂停窗帘: 55 02 03 03 03 99 45
- •打开30%: 55 02 03 03 04 1E 07 52
- •打开50%: 55 02 03 03 04 32 06 8F
- •打开70%: 55 02 03 03 04 46 06 A8
设备地址: 02 04
- •设置地址指令: 55 00 00 02 00 02 02 04 5D AB
- •打开窗帘: 55 02 04 03 01 A9 45
- •关闭窗帘: 55 02 04 03 02 E9 44
- •暂停窗帘: 55 02 04 03 03 28 84
- •打开30%: 55 02 04 03 04 1E 06 26
- •打开50%: 55 02 04 03 04 32 07 FB
- •打开70%: 55 02 04 03 04 46 07 DC
设备地址: 02 05
- •设置地址指令: 55 00 00 02 00 02 02 05 9C 6B
- •打开窗帘: 55 02 05 03 01 F8 85
- •关闭窗帘: 55 02 05 03 02 B8 84
- •暂停窗帘: 55 02 05 03 03 79 44
- •打开30%: 55 02 05 03 04 1E 07 DA
- •打开50%: 55 02 05 03 04 32 06 07
- •打开70%: 55 02 05 03 04 46 06 20
设备地址: 02 06
- •设置地址指令: 55 00 00 02 00 02 02 06 DC 6A
- •打开窗帘: 55 02 06 03 01 08 85
- •关闭窗帘: 55 02 06 03 02 48 84
- •暂停窗帘: 55 02 06 03 03 89 44
- •打开30%: 55 02 06 03 04 1E 07 9E
- •打开50%: 55 02 06 03 04 32 06 43
- •打开70%: 55 02 06 03 04 46 06 64
设备地址: 02 07
- •设置地址指令: 55 00 00 02 00 02 02 07 1D AA
- •打开窗帘: 55 02 07 03 01 59 45
- •关闭窗帘: 55 02 07 03 02 19 44
- •暂停窗帘: 55 02 07 03 03 D8 84
- •打开30%: 55 02 07 03 04 1E 06 62
- •打开50%: 55 02 07 03 04 32 07 BF
- •打开70%: 55 02 07 03 04 46 07 98
设备地址: 02 08
- •设置地址指令: 55 00 00 02 00 02 02 08 5D AE
- •打开窗帘: 55 02 08 03 01 69 46
- •关闭窗帘: 55 02 08 03 02 29 47
- •暂停窗帘: 55 02 08 03 03 E8 87
- •打开30%: 55 02 08 03 04 1E 05 76
- •打开50%: 55 02 08 03 04 32 04 AB
- •打开70%: 55 02 08 03 04 46 04 8C
设备地址: 02 09
- •设置地址指令: 55 00 00 02 00 02 02 09 9C 6E
- •打开窗帘: 55 02 09 03 01 38 86
- •关闭窗帘: 55 02 09 03 02 78 87
- •暂停窗帘: 55 02 09 03 03 B9 47
- •打开30%: 55 02 09 03 04 1E 04 8A
- •打开50%: 55 02 09 03 04 32 05 57
- •打开70%: 55 02 09 03 04 46 05 70
接线示意图
