1. 协议介绍
1.1. 协议格式
地址码 | 指令码 | 寄存器地址 | 通讯数据 | CRC 校验码 |
1Byte | 1Byte | 2Byte | nByte | 2Byte |
1.2. 地址码
智能面板的通讯地址 ,地址范围: 1~42( 0x01 ~0x2A) , 255 为广播地址(0xFF)。
1.3. 指令码列表
指令码 | 描述 |
0x03 | 读取面板数据 |
0x06 | 修改面板数据 |
0x10 | 设置多个寄存器地址参数 |
1.4. CRC 校验算法
Modbus 协议标准校验算法。
1.5. 面板控制指令
1.5.1. 修改面板通讯地址
寄存器地址 | 描述 |
0x1000 | 地址范围 0x01~0x2A , 出厂默认是 0x01。 |
指令举例:
通讯地址 0x01 改为 0x02 |
01 06 10 00 00 02 0C CB |
通讯地址改为 0x01(广播模式) |
FF 06 10 00 00 01 59 14 |
1.5.2. 设置面板工作模式
寄存器地址 | 描述 |
0x1003 | 默认值为 0x0000 |
寄存器位 | 含义 |
Bit15~Bit6 | 保留 , 固定为 0 |
Bit5 | 设置按键松开主动发送数据Bit5 =1 且 Bit2 =1:使能主动发送Bit5 =0:禁止主动发送 |
Bit4 | 保留 , 固定为 0 |
Bit3 | 设置按键背光灯延时熄灭Bit3 =1:按键 10 秒内没动作 ,背光灯自动熄灭Bit3 =0:按键背光灯常亮 |
Bit2 | 设置按键按下主动发送数据Bit2 =1:使能主动发送 ,主动发送模式Bit2 =0:禁止主动发送 ,主从轮询模式 , 由主机发指令读取键值 |
Bit1 | 保留 , 固定为 0 |
Bit0 | 设置演示模式Bit0 =1:演示模式 ,按键控制背光灯亮灭 ,主要用于功能效果演示Bit0 =0:正常模式 , 由 RCU 发指令控制背光灯亮灭 |
指令举例:
演示模式 ,按键不主动发送 ,背光常亮 |
01 06 10 03 00 01 BC CA |
演示模式 ,按键按下主动发送 ,按键松开不主动发送 ,背光常亮 |
01 06 10 03 00 05 BD 09 |
演示模式 ,按键按下和松开都主动发送 ,背光常亮 |
01 06 10 03 00 25 BC D1 |
正常模式 ,按键不主动发送 ,背光常亮 |
01 06 10 03 00 00 7D 0A |
正常模式 ,按键按下主动发送 ,按键松开不主动发送 ,背光常亮 |
01 06 10 03 00 04 7C C9 |
正常模式 ,按键按下和松开都主动发送 ,背光常亮 |
01 06 10 03 00 24 7D 11 |
正常模式 ,按键不主动发送 ,背光延时 10 秒熄灭 |
01 06 10 03 00 08 7C CC |
正常模式 ,按键按下主动发送 ,按键松开不主动发送 ,背光延时 10 秒熄灭 |
01 06 10 03 00 0C 7D 0F |
正常模式 ,按键按下和松开都主动发送 ,背光延时 10 秒熄灭 |
01 06 10 03 00 2C 7C D7 |
1.5.3. 控制背光灯和按键灯
寄存器地址 | 描述 |
0x1008 | 面板的背光灯和按键灯通过设置该寄存器的值实时控制 |
寄存器位 | 含义 |
Bit15~Bit9 | 保留 |
Bit8 | 控制背光灯Bit8 =1:面板上所有按键的背光灯点亮Bit8 =0:面板上所有按键的背光灯熄灭 |
Bit7 | 控制按键 8 指示灯Bit7 =1:按键 8 指示灯点亮 ,按键 8 背光灯熄灭Bit7 =0:按键 8 指示灯熄灭 |
Bit6 | 控制按键 7 指示灯Bit6 =1:按键 7 指示灯点亮 ,按键 7 背光灯熄灭Bit6 =0:按键 7 指示灯熄灭 |
Bit5 | 控制按键 6 指示灯Bit5 =1:按键 6 指示灯点亮 ,按键 6 背光灯熄灭Bit5 =0:按键 6 指示灯熄灭 |
Bit4 | 控制按键 5 指示灯Bit4 =1:按键 5 指示灯点亮 ,按键 5 背光灯熄灭Bit4 =0:按键 5 指示灯熄灭 |
Bit3 | 控制按键 4 指示灯Bit3 =1:按键 4 指示灯点亮 ,按键 4 背光灯熄灭Bit3 =0:按键 4 指示灯熄灭 |
Bit2 | 控制按键 3 指示灯Bit2 =1:按键 3 指示灯点亮 ,按键 3 背光灯熄灭Bit2 =0:按键 3 指示灯熄灭 |
Bit1 | 控制按键 2 指示灯Bit1 =1:按键 2 指示灯点亮 ,按键 2 背光灯熄灭Bit1 =0:按键 2 指示灯熄灭 |
Bit0 | 控制按键 1 指示灯Bit0 =1:按键 1 指示灯点亮 ,按键 1 背光灯熄灭Bit0 =0:按键 1 指示灯熄灭 |
指令举例:
所有按键指示灯和背光灯熄灭 |
01 06 10 08 00 00 0C C8 |
所有按键指示灯熄灭 ,所有按键背光灯点亮 |
01 06 10 08 01 00 0D 58 |
按键 1 指示灯点亮 ,其他按键背光灯点亮 |
01 06 10 08 01 01 CC 98 |
按键 1 指示灯点亮 ,其它键指示灯和所有按键背光灯熄灭 |
01 06 10 08 00 01 CD 08 |
1.5.4. 读取按键键值
寄存器地址 | 描述 |
0x100B | 通过该寄存器读取指定按键的实时键值 |
寄存器位 | 含义 |
Bit15~Bit8 | 按键绝对键值 ,计算公式 :绝对键值 = (面板地址 – 1) * 6 + 按键编号 |
Bit7 | 按键 8 键值Bit7 =1:按键 8 按下Bit7 =0:按键 8 松开 |
Bit6 | 按键 7 键值Bit6 =1:按键 7 按下Bit6 =0:按键 7 松开 |
Bit5 | 按键 6 键值Bit5 =1:按键 6 按下Bit5 =0:按键 6 松开 |
Bit4 | 按键 5 键值Bit4 =1:按键 5 按下Bit4 =0:按键 5 松开 |
Bit3 | 按键 4 键值Bit3 =1:按键 4 按下Bit3 =0:按键 4 松开 |
Bit2 | 按键 3 键值Bit2 =1:按键 3 按下Bit2 =0:按键 3 松开 |
Bit1 | 按键 2 键值Bit1 =1:按键 2 按下Bit1 =0:按键 2 松开 |
Bit0 | 按键 1 键值Bit0 =1:按键 1 按下Bit0 =0:按键 1 松开 |
注意:
1、主从轮询模式(0x1003 寄存器 Bit2 =0) ,按键松开 2 秒后 ,键值寄存器自动清零 ,主机发送读取指令后 ,键值 寄存器也会清零。
2、主动发送模式(0x1003 寄存器 Bit2 =1) ,按键按下后立刻发送键值数据并将键值寄存器清零。
3、主机发广播指令(地址为 0xFF)读取键值时 ,只有工作在主从轮询模式且按键松开 2 秒内的面板回复 ,其他面板 不回复。
指令举例:
读取按键 1 的键值 | |||
发送 | 01 03 10 0B 00 01 F1 08 | 按下返回 | 01 03 00 02 01 01 24 5A |
未按下返回 | 01 03 00 02 00 00 E4 0A | ||
读取按键 1 的键值(广播模式) |
发送 | FF 03 10 0B 00 01 E4 D6 | 按下返回 | 01 03 00 02 01 01 24 5A |
未按下返回 | 不返回 |
1.5.5. 读取按钮状态
寄存器地址 | 描述 |
0x1310 | 按键 1 状态值0x00:关0x01:开0x02:长按标志 ,按下超过 2 秒有效0xFF:按键卡死标志 ,长按超过 1 分钟有效 ,0x100B 键值清零 ,按键松开后自动恢复检测注 :主机发送读取指令后 , 自动清零键值寄存器 0x100B。 |
0x1311 | 按键 2 状态值 ,功能同上 |
0x1312 | 按键 3 状态值 ,功能同上 |
0x1313 | 按键 4 状态值 ,功能同上 |
0x1314 | 按键 5 状态值 ,功能同上 |
0x1315 | 按键 6 状态值 ,功能同上 |
0x1316 | 按键 7 状态值 ,功能同上 |
0x1317 | 按键 8 状态值 ,功能同上 |
指令举例:
读取按键 1 的状态 | |||
发送 | 01 03 13 10 00 01 81 4B | 按下返回 | 01 03 00 01 00 01 D5 CA |
未按下返回 | 01 03 00 01 00 00 14 0A | ||
长按返回 | 01 03 00 01 00 02 95 CB | ||
卡死返回 | 01 03 00 01 00 FF 54 4A | ||
读取按键 1 至 8 的状态 | |||
发送 | 01 03 13 10 00 08 41 4D | 未按下返回 | 01 03 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 DA 4C |