表1 网关通讯参数设置
项目 | 参数 |
传输模式 | 半双工 |
波特率 | 9600bps |
起始位 | 1 位 |
数据位 | 8 位 |
校验位 | 偶校验(Even) |
停止位 | 1 位 |
以上通讯规格参数也可以通过网关自带的WEB页面进行变更
表2 主要应用的功能码
网关所用功能码 | 作用 |
0x03 (读保存寄存器) | 用于读取空调的状态。每次可读操作一个或多个寄存器(寄存器地址必须连续) 。每个寄存器保存一个空调的一个状态参数,根据寄存器读取的数量,可以一次读取一个空调的一个或多个参数(如开关、温度设定等),也可以将若干空调的全部参数一次读出。 |
0x06 (写单个寄存器) | 用于写设定一个空调的一个参数每次只能写操作一个寄存器, 每写操作一次, 就会对一个空调的一个参数做出设定指令。 |
0x10 (写多个寄存器) | 用于写设定多个空调的多个参数每次可写操作多个寄存器(寄存器地址必须连续) 。根据写寄存 器的数量, 可以一次写设定一个空调的一个参数或多个参数, 也可以一次写多个空调的多个参数。 |
状态参数,包括:开关状态、温度设定值、模式设定状态、风速设定、房间温度和故障代码、是否为主机。
空调性能参数,包括:空调品牌、模式信息风速信息、设定温度信息、特殊性能信息。
表3 状态保存寄存器 地址与空调室内机地址的对应关系
空调室内机地址 | 状态参数保存寄存器地址 |
0-0 | 0,1,2,3,4,5 |
0- 1 | 6,7,8,9,10,11 |
0-2 | 12,13,14,15,16,17 |
…… | …… |
0-31 | 186,187,188,189,190,191 |
1-0 | 192,193,194,195,196,197 |
1- 1 | 198,199,200,201,202,203 |
1-2 | 204, 205, 206, 207, 208, 209 |
…… | …… |
1 31 | 378, 379, 380, 381, 382, 383 |
…… | …… |
空调性能信息 | 8000, 8001, 8002, 8003, 8004 |
室内机状态参数保存寄存器起始地址为4000,每4个连续地址的寄存器保存1个室内机的控制指 令,包括:开关指令、温度设定值指令、模式设定指令、风速设定指令、风向设定指令。
表4 控制指令寄存器地址与空调室内机地址的对应关系如下表
表5 查询空调状态所用的点位表(对应MODBUS功能码0x03)
当前启停状态: 0x01->开机; 0x00->关机。
当前模式设定: 0x01->制冷; 0x02->除湿; 0x04->送风; 0x08->制热。
当前风向设定: 0x00->摆动; 0x01->左右导风板位置1;… 0x06->左右导风板位置6;
0x10->前后导风板位置1 … 0x60前后导风板位置6;
0x42->前后导风板位置4,左右导风板位置2 。
…
当前风速设定: 0x01->高速; 0x02->中速; 0x04->低速; 0x00->自动。
当前温度设定: 0x1E->30℃; 0x12->18℃; 0x14->20℃; 0x1A->26℃。
(有主从机概念的空调)当前主从机状态: 0x00->从机; 0x01->主机。
当前房间温度: 0x21->33℃; 0x10->16℃。
当前故障代码: 0x00->无故障; 0x01->01 (排水泵故障)
空调性能参数保存寄存器起始地址为8000 ,5个连续地址的寄存器保存当前空调的性能参数,
包括:空调品牌、模式信息风速信息、设定温度信息、特殊性能信息
表6 查询空调性能信息所用的点位表(对应MODBUS功能码0x03)
空调品牌:
共计占用1个字节,使用16进制数代表品牌
0x01:日立; 0x02:大金; 0x03:东芝; 0x04:三菱重工;
0x05:三菱电机;0x06:格力; 0x07:海信; 0x08:美的;
0x09:海尔; 0x0A:LG; 0x0B:缺省; 0x0C:缺省;
0x0D:三星; 0x0E:AUX; 0x0F:松下; 0x10:约克;
0x11:缺省; 0x12:缺省; 0x13:格力四代; 0x14:缺省;
0x15:麦克维尔;0x16:缺省; 0x17:缺省; 0x18:TCL;
0x19:志高; 0x1A:天加; 0x1B:缺省; 0x1C:缺省
0x23:约克水机; 0x24:酷风; 0x25:青岛约克; 0x26:富士通;
0x65:艾默生水机; 0x66:麦克维尔水机; 0x29:缺省
0xFF:模拟器;
支持模式:
占用2个字节(0代表无此功能,1代表支持此功能)
数据例子:
0x00 0x17->支持除湿、送风、制热、制冷四种模式;
支持风速:
占用1个字节(0代表无此功能,1代表支持此功能)
数据例子:
0x27->支持低速、中速、高速、自动风速四种风速;
温度上下限:
共计占用2个字节
数据例子:
0x1E 0x10->支持温度范围16-30摄氏度
特殊性能信息:
占用一个字节(0代表无此功能,1代表支持此功能)
位BIT0,1为有主从机概念,0为无主从机概念;
位BIT1,缺省;
位BIT2,1为有前后风向设置,0为无前后风向设置;
位BIT3,1为有左右风向设置,0为无左右风向设置;
数据例子:
0x05->空调有前后风向设置,有主从机概念;
0x0C->空调有左右风向设置,有前后风向设置。
◆ 03(0x03)功能码——查询多个寄存器(用以读取空调状态)
下文中所示例的发送和接收数据,其格式全部为16进制,例如01为0x01,C5为0xC5
集成系统发送: 01 03 00 C0 00 06 C5 F4
集成系统接收: 01 03 0C 00 01 00 19 00 01 00 01 00 1C 00 00 DC DA
集成系统发送码含义:
第1字节(01)——空调网关设备地址(MODBUS定义为Slave ID),出厂默认为01,如果有
多个空调网关同时连接到一条RS485总线上的话,为了区分彼此,需要对每个空调网关设定地
址(网关地址的设定在其配置的WEB页面上进行即可),如果此RS485总线还有其它设备,那
么其它设备与空调网关的设备地址也不能冲突。
第2字节(03)——MODBUS功能码,其意义为读取一系列寄存器的值。
第3,4字节(00 C0)——从00 C0位置开始读取一系列寄存器的值
第5,6字节(00 06)——从第3,4字节指定的寄存器开始,共读取00 06个寄存器。
第7,8字节(C5 F4)——该帧数据的校验字节(校验方式:CRC16)
集成系统接收码含义:
第1字节(01)——空调网关设备地址(MODBUS定义为Slave ID)
第2字节(03)——MODBUS功能码。
第3字节(0C)——对应于查询指令,空调网关共返回0C(十进制:12)个字节的数据
第4~15字节——空调网关返回12字节的被读取数据
第16,17字节(DC DA)——该帧数据的校验字节(校验方式:CRC16)
第4~15字节数据详解:
查询地址192(十六进制为:00 C0)开始的6个寄存器所存储的数值(查询空调寄存器点位表,
此6个寄存器存储了1-0 室内机的全部状态值
00 01(十六进制)————空调正在运行状态
00 19(十六进制)————温度设定为25℃(0x19 = 25)
00 01(十六进制)————模式被设定为制冷
00 01(十六进制)————风速被设定为高速风
00 1C(十六进制)————回风温度(当前房间温度)为28℃(0x1C = 28)
00 00(十六进制)————空调故障代码为0(没有故障),如果有故障,则为相应故障代码
一次查询更多个寄存器的值:
集成系统发送: 01 03 00 00 00 0C C5 F4 (举例查询2台空调的状态)
集成系统接收: 01 03 18 00 01 00 19 00 01 00 01 00 1C 00 00 00 01 00 19 00 01 00 01 00 1E 00
00 DC DA
表7 控制设定空调所用的点位表(对应MODBUS功能码0x06)
◆ 06(0x06) 功能码——操作单个寄存器(用以单独操作控制空调的开关、温度设定等)
集成系统发送:01 06 0F A0 00 01 4B 3C
集成系统接收:01 06 0F A0 00 01 4B 3C
集成系统发送码含义:
第1字节(01)——空调网关设备地址(MODBUS定义为Slave ID)
第2字节(06)——MODBUS功能码,其意义为设定一个寄存器的值。
第3,4字节(0F A0)——从0F A0 位置开始设定一个寄存器的值。
第5,6字节(00 01)——将第3,4字节所指定的寄存器写入值00 01
第7,8字节(4B 3C)——该帧数据的校验字节(校验方式:CRC16)
集成系统接收码含义:
第1字节(01)——空调网关设备地址(MODBUS定义为Slave ID)
第2字节(06)——MODBUS功能码,其意义为设定一个寄存器的值。
第3,4字节(0F A0)——从0F A0 位置开始设定一个寄存器的值。
第5,6字节(00 01)——将 第3,4字节所指定的寄存器写入值 00 01
第7,8字节(4B 3C)——该帧数据的校验字节(校验方式:CRC16)
举例说明:
———— 发码“01 06 0F A0 00 01 4B 3C”的操作含义:
将地址为4000(0x0F 0xA0)的寄存器写入数值1(对应发送码数据位00 01),查点位表得知,
此寄存器对应 00-00 室内机的 开关控制,写入1表示开机,写入2表示关机。
———— 发码“01 06 0F A1 00 13 9A F1”的操作含义:
将地址为4001(0x0F 0xA1)的寄存器写入数值0x13(对应发送码数据位00 13),查点位表得
知,此寄存器对应 00-00 室内机的 温度控制,写入0x13表示将温度设定为19℃
———— 发码“01 06 0F A2 00 08 2A FA”的操作含义:
将地址为4002(0x0F 0xA2)的寄存器写入数值0x08(对应发送码数据位00 08),查点位表得
知,此寄存器对应 00-00 室内机的 模式控制,写入0x08表示将模式设定为“制热”
———— 发码“01 06 0F A3 00 04 7B 3F”的操作含义:
将地址为4003(0x0F 0xA3)的寄存器写入数值0x04(对应发送码数据位00 08),查点位表得
知,此寄存器对应 00-00 室内机的 风速控制,写入0x04表示将模式设定为“低速”
◆ 16(0x10) 功能码——操作多个寄存器(用以操作控制空调的开关、温度设定等)
集成系统发送:01 10 0F A0 00 04 08 00 01 00 19 00 08 00 02 2C B5
集成系统接收:01 10 0F A0 00 04 C2 FC
集成系统发送码含义:
第1字节(01)——空调网关设备地址(MODBUS定义为Slave ID)
第2字节(10)——MODBUS功能码,其意义为一次设定多个寄存器的值。
第3,4字节(0F A0)——从0F A0 位置开始一次设定多个寄存器的值。
第5,6字节(00 04)——从第3,4字节指定位置开始,一次设定4个寄存器的值。
第7字节(08)——要设定写入的总字节数为8(
4个寄存器 x 2字节/寄存器)
第8~15字节 ——要设定的4个寄存器的具体值,第8,9字节写入第一个寄存器,第10,
11字节写入第2个寄存器,第12,13字节写入第3个寄存器,第14,15字节写入第4个寄存器
第16,17字节(2C B5)——该帧数据的校验字节(校验方式:CRC16)
集成系统接收码含义:
第1字节(01)——空调网关设备地址(MODBUS定义为Slave ID)
第2字节(10)——MODBUS功能码,其意义为一次设定多个寄存器的值。
第3,4字节(0F A0)——从0F A0 位置开始,一次设定多个寄存器的值。
第5,6字节(00 04)——从第3,4字节指定位置开始,一次设定4个寄存器的值。
第7,8字节(C2 FC)——该帧数据的校验字节(校验方式:CRC16)
举例说明:
———— 发码“01 10 0F A0 00 04 08 00 01 00 19 00 08 00 02 2C B5”的操作含义:
将地址为4000(0x0F 0xA0)开始的4(0x00 0x04 )个寄存器共8个字节,依次写入数值 00 01
00 19 00 08 00 02
00 01(十六进制)————将地址为00-00的空调 开启
00 19(十六进制)————将地址为00-00的空调 温度设定为25℃(0x19 = 25)
00 08(十六进制)————将地址为00-00的空调 模式设定为制热
00 02(十六进制)————将地址为00-00的空调 风速设定为中速风
———— 发码“01 10 0F A1 00 01 02 00 1C xx xx”的操作含义:
将地址为4001(0x0F 0xA1)开始的1(0x00 0x01 )个寄存器共2个字节,写入数值 00 1C
00 1C(十六进制)————将地址为00-00的空调 温度设定为28℃(0x1C = 28)