空调通信协议A3EVOCyberMateDXmodbus协议英维克CM755PEF1F.docx
《空调通信协议A3EVOCyberMateDXmodbus协议英维克CM755PEF1F.docx》由会员分享,可在线阅读,更多相关《空调通信协议A3EVOCyberMateDXmodbus协议英维克CM755PEF1F.docx(28页珍藏版)》请在冰点文库上搜索。
空调通信协议A3EVOCyberMateDXmodbus协议英维克CM755PEF1F
文档编号
文档版本
文档密级
05130040
A/3
内部公开
协议名称
EVO-CyberMate-DX-Modbus通信协议
EVO-CyberMate-DX-Modbus通信协议
修订记录RevisionRecord
日期
Date
修订版本
RevisionVersion
软件版本
SoftwareVersion
修改描述
ChangeDescription
作者
Author
A/0
05120175-V1.3&V1.4
新归档
李炳林
A/1
05120175-V2.10-V2.20
20150731
A/2
05120175-V2.40&V2.50&V2.60
05120329-V2.52
参数设定范围修改如下:
温度设定点下限7℃改为8℃
湿度设定点下限10%改为15%
高温告警点范围20~70℃改为25~60℃
低温设定点-20~20℃改为0~10℃
低湿范围由10~60%改为10~40%
李炳林
20160618
A/3
05120175-V270
1.增加控制温感失效和控制湿感失效
2.室外风机故障、电极加湿器故障、湿膜加湿相关告警、新风相关告警、烟感告警改为预留
3.运行状态地址段:
增加机组运行状态、制冷状态、除湿状态、加热状态。
4.控制温湿感改为预留
5.增加1#和2#变频器故障锁定
谢忠杰
目录
1说明4
2专用术语4
3物理接口4
3.1串行通信口电气标准4
3.2信息传输方式5
3.3数据传输速率5
4物理层通信方式6
4.1基本过程6
5应用层命令类型及格式6
5.1信息帧格式6
5.2功能码6
5.3读命令格式7
5.4写单个寄存器命令格式7
5.5写多个寄存器命令格式8
5.6错误码定义8
6数据类型及CRC校验算法9
6.1数据类型9
6.2CRC算法10
7寄存器列表10
空调与上位机Modbus通信协议
1说明
本协议描述了空调与其专用上位机监控模块进行命令控制和数据交换的协议。
《协议》中规定的功能主要有:
1)上位机通过发读取命令获取空调的相关信息;
2)上位机通过发写命令设置相关参数和动作控制;
通讯过程以上位机为主节点,通过一问一答的方式进行信息交互;从节点中的各种信息和参数均以目标寄存器作为存储地址,主节点通过访问寄存器的方式完成读写命令。
本协议支持一个主节点、多个从节点组网,从节点以地址来区分,地址设置范围为1-128,不同的从节点对应不同的地址,不能有相同地址的从节点挂在同一条通讯总线上。
2专用术语
主节点:
上位机后台监控系统。
从节点:
空调设备控制器。
RS485:
一种串行通讯标准,可支持半双工串行近程通讯;
读命令:
由主节点发向从节点,使从节点返回对应的寄存器的内容;
写命令:
由主节点打包相关参数,发向从节点,完成对应参数的设置;
寄存器地址:
从节点的每个信号和参数均对应一个2字节的地址,主节点获取相关信息或设置相关参数均是以访问这些寄存器的方式来完成的,这个地址就称为寄存器。
3物理接口
3.1串行通信口电气标准
从节点以RS485方式通过串口与主节点通讯。
3.2信息传输方式
通讯传输采用异步方式,并以字节帧(数据帧)为单位。
在主节点和从节点之间传递的每一个数据帧都是11位的串行数据流。
数据帧格式:
起始位
1位
数据位
8位(低位在前、高位在后)
奇偶校验位
无:
本协议不采用奇偶校验位;
停止位
1位(即实际的奇偶校验位强制为高电平)
参考:
有校验位的时序图:
无校验位的时序图:
3.3数据传输速率
缺省波特率使用9600bps
4物理层通信方式
4.1基本过程
从节点上电或复位,稳定运行后,即可响应主节点的读写命令;当从接点接收到相关命令后,正常情况下返回主节点所需的信息,异常情况返回具体错误类型对应的错误码。
5应用层命令类型及格式
当通讯命令发送至仪器时,符合相应的地址码的设备接收通讯命令,读取信息,如果没有出错,则执行相应的任务;然后把执行结果返送给发送者。
返送的信息中包括地址码、执行动作的功能码、执行动作后的数据以及错误校验码(CRC)。
如果出错就不发送任何信息。
5.1信息帧格式
START
ADDR
CMD
DATA
CRC
END
起始
地址码
功能码
数据
错误校验
结束
延时(>=3.5个字符的时间)
1字节
8位
1字节
8位
N字节
N×8位
2字节
16位
延时(>=3.5个字符的时间)
注1:
最大帧长不大于255个字节;
注2:
CRC校验码低字节在前,高字节在后;
5.2功能码
功能码(CMD)是每次通讯传送的信息帧中的第二个数据帧。
ModBus通讯规约定义功能码为1~127(01H~7FH)。
本协议利用其中的一部分功能码。
作为主节点请求发送,通过功能码告诉从节点执行什么动作。
作为从节点响应,从节点发送的功能码与主节点发送来的功能码一样,并表明从节点已响应主节点进行操作。
如果从节点发送的功能码的最高位是1(功能码>127),则表明从节点没有响应或出错。
命令编码
含义
备注
0x03
读命令
支持单个和多个寄存器连续读取
0x10
写多个寄存器命令
支持多个寄存器连续写动作
0x06
写单个寄存器命令
支持单个寄存器连续写动作
5.3读命令格式
注3:
MSB表示高字节;LSB表示低字节。
注4:
每个寄存器存放两个字节;对寄存器数据类型为一个字节的数据,要求存放在低字节(LSB)。
主节点发送帧格式:
序号
0
1
2
3
4
5
6
7
字段定义
ADDR
CMD
MSB
LSB
MSB
LSB
LSB
MSB
解释
控制器地址
命令类型
寄存器起始地址
寄存器个数n
CRC校验
从节点正常应答帧格式:
序号
0
1
2
3
4
5
6
…
L+1
L+2
L+3
L+4
字段定义
ADDR
CMD
Length
MSB
LSB
MSB
LSB
…
MSB
LSB
LSB
MSB
解释
控制器地址
命令类型
发送字节数
L=n*2
第一个寄存器的值
第二个寄存器的值
…
最后一个寄存器的值
CRC校验
从节点异常应答格式:
序号
0
1
2
3
4
字段定义
ADDR
CMD+128
ErrCode
LSB
MSB
解释
控制器地址
命令类型+128
ErrorCode
CRC校验
5.4写单个寄存器命令格式
主节点发送帧格式:
序号
0
1
2
3
4
5
6
7
字段定义
ADDR
CMD
MSB
LSB
MSB
LSB
LSB
MSB
解释
控制器地址
命令类型
寄存器地址
数据
CRC校验
从节点正常应答帧格式:
序号
0
1
2
3
4
5
6
7
字段定义
ADDR
CMD
MSB
LSB
MSB
LSB
LSB
MSB
解释
控制器地址
命令类型
寄存器地址
数据
CRC校验
从节点异常应答格式:
序号
0
1
2
3
4
字段定义
ADDR
CMD+128
ErrCode
LSB
MSB
解释
控制器地址
命令类型+128
ErrorCode
CRC校验
5.5写多个寄存器命令格式
主节点发送帧格式:
序号
0
1
2
3
4
5
6
7
8
9
10
…
L+5
L+6
L+7
L+8
字段定义
ADDR
CMD
MSB
LSB
MSB
LSB
Length
MSB
LSB
MSB
LSB
…
MSB
LSB
LSB
MSB
解释
控制器地址
命令类型
起始寄存器地址
寄存器数n
发送字节数
L=n*2
第一个寄存器的值
第二个寄存器的值
…
最后一个寄存器的值
CRC校验
从节点正常应答帧格式:
序号
0
1
2
3
4
5
6
7
字段定义
ADDR
CMD
MSB
LSB
MSB
LSB
LSB
MSB
解释
控制器地址
命令类型
起始寄存器地址
寄存器个数
CRC校验
从节点异常应答格式:
序号
0
1
2
3
4
字段定义
ADDR
CMD+128
ErrCode
LSB
MSB
解释
控制器地址
命令类型+128
ErrorCode
CRC校验
说明:
CRC校验范围为CRC字段前所有字节的校验。
5.6错误码定义
当从节点设备向主节点设备发送请求时,从节点希望一个正常响应。
从主节点询问中出现下列四种可能事件之一:
1)如果从节点设备接收到无通信错误的请求,并且可以正常地处理询问,那么从节点设备将返回一个正常响应;
2)如果由于通信错误,从节点没有接收到请求,那么不能返回响应。
主节点程序将最终处理请求的超时状态;
3)如果从节点接收到请求,但是检测到一个通信错误(奇偶校验、LRC、CRC、...),那么不能返回响应。
主节点程序将最终处理请求的超时状态;
4)如果从节点接收到无通信错误的请求,但不能处理这个请求(例如,如果请求读一个不存在的输出或寄存器),从节点将返回一个异常响应,通知用户错误的本质特性;
异常响应报文有两个与正常响应不同的域:
功能码域:
在正常响应中,从节点利用响应功能码域来应答最初请求的功能码。
所有功能码的最高有效位(MSB)都为0(它们的值都低于128)。
在异常响应中,从节点设置功能码的MSB为1。
这使得异常响应中的功能码值比正常响应中的功能码值高128。
通过设置功能码的MSB,主节点的应用程序能够识别异常响应,并且能够检测异常码的数据域。
数据域:
在正常响应中,从节点可以返回数据域中数据或统计表(请求中要求的任何报文)。
在异常响应中,从节点返回数据域中的异常码。
这就定义了产生异常的从节点状态。
MODBUS异常码:
异常码名称
说明
01非法功能码
对于从节点来说,询问中接收到的功能码是不可允许的操作。
这也许是因为功能码仅仅适用于新设备而在被选单元中是不可实现的。
同时,还指出从节点在错误状态中处理这种请求,例如:
因为它是未配置的,并且要求返回寄存器值。
02非法数据地址
对于从节点来说,询问中接收到的数据地址是不可允许的地址。
特别是,参考号和传输长度的组合是无效的。
对于带有100个寄存器的控制器来说,带有偏移量96和长度4的请求会成功,带有偏移量96和长度5的请求将产生异常码02。
03非法数据值
对于从节点来说,询问中包括的值是不可允许的值。
这个值指示了组合请求剩余结构中的故障,例如:
隐含长度是不正确的。
并不意味着,因为MODBUS协议不知道任何特殊寄存器的任何特殊值的重要意义,寄存器中被提交存储的数据项有一个应用程序期望之外的值。
6数据类型及CRC校验算法
6.1数据类型
无。
6.2CRC算法
unsignedshortcount_CRC(unsignedchar*addr,intnum)
{
unsignedshortCRC=0xFFFF;
inti;
while(num--)
{
CRC^=*addr++;
for(i=0;i<8;i++)
{
CRC>>=1;
if(CRC&1)
{
CRC^=0xA001;
}
}
}
returnCRC;
}
7寄存器列表
约定:
1、每个寄存器存放两个字节。
2、数据传输方式:
高字节在前,低字节在后
序号
数据
单位
寄存器地址
属性
(读/写)
变比
备注
传感器状态(0X7FFF:
传感器故障值)
1
1#回风温度
℃
0x0100
只读
x10
2
2#回风温度
℃
0x0101
只读
x10
3
3#回风温度
℃
0x0102
只读
x10
4
4#回风温度
℃
0x0103
只读
x10
5
5#回风温度
℃
0x0104
只读
x10
6
1#出风温度
℃
0x0105
只读
x10
7
室外温度
℃
0x0108
只读
x10
8
1#回风湿度
%
0x010D
只读
x10
9
2#回风湿度
%
0x010E
只读
x10
10
3#回风湿度
%
0x010F
只读
x10
11
4#回风湿度
%
0x0110
只读
x10
12
5#回风湿度
%
0x0111
只读
x10
13
室外湿度
%
0x0112
只读
x10
14
出风湿度
%
0x0113
只读
x10
15
回风压差
Pa
0x0114
只读
x10
16
加湿电流检测
mA
0x0117
只读
x1
17
电压检测
V
0x0118
只读
x1
18
IF液管出口温度
℃
0x0119
只读
x10
19
IF液管进口温度
℃
0x011A
只读
x10
20
1#系统高压
Pa
0x011B
只读
x10
21
2#系统高压
Pa
0x011C
只读
x10
22
1#系统低压
Pa
0x011D
只读
x10
23
2#系统低压
Pa
0x011E
只读
x10
24
1#系统液管温度
℃
0x011F
只读
x10
25
2#系统液管温度
℃
0x0120
只读
x10
26
1#吸气温度
℃
0x0121
只读
x10
27
2#吸气温度
℃
0x0122
只读
x10
28
1#系统排气温度
℃
0x0123
只读
x10
29
2#系统排气温度
℃
0x0124
只读
x10
30
IF泵出口温度
℃
0x0125
只读
x10
预留
0x0126~0x0129
只读
31
1#外扩温度
℃
0x012A
只读
x10
32
2#外扩温度
℃
0x012B
只读
x10
33
3#外扩温度
℃
0x012C
只读
x10
34
4#外扩温度
℃
0x012D
只读
x10
35
5#外扩温度
℃
0x012E
只读
x10
36
6#外扩温度
℃
0x012F
只读
x10
预留
0x0130~0x013B
只读
37
1#外扩湿度
%
0x013C
只读
x10
38
2#外扩湿度
%
0x013D
只读
x10
39
3#外扩湿度
%
0x013E
只读
x10
40
4#外扩湿度
%
0x013F
只读
x10
41
5#外扩湿度
%
0x0140
只读
x10
42
6#外扩湿度
%
0x0141
只读
x10
预留
0x0142~0x01FF
只读
运行状态
1
内风机
0x0200
只读
x1
0停止1运行
2
1#压缩机
0x0201
只读
x1
0停止1运行
3
2#压缩机
0x0202
只读
x1
0停止1运行
4
1#电加热
0x0203
只读
x1
0停止/1运行
5
2#电加热
0x0204
只读
x1
0停止/1运行
6
电极加湿
0x0206
只读
x1
0停止/1运行
7
1#外风机(壳管水阀)
0x0207
只读
x1
0停止/1运行
8
2#外风机(壳管水阀)
0x0208
只读
x1
0停止/1运行
9
IF室内电磁阀
0x020B
只读
x1
0停止/1运行
10
1#IF室外电磁阀
0x020C
只读
x1
0停止/1运行
11
2#IF室外电磁阀
0x020D
只读
x1
0停止/1运行
12
IF制冷泵
0x020E
只读
x1
0停止/1运行
13
红外加湿
0x0210
只读
x1
0停止/1运行
14
机组运行状态
0x0214
只读
x1
0停止/1运行
15
制冷状态
0x0219
只读
x1
0停止/1运行
16
加热状态
0x021A
只读
x1
0停止/1运行
17
除湿状态
0x021B
只读
x1
0停止/1运行
预留
0x0211~0x0213
只读
x1
参数设定
1
温度设定点
℃
0x0300
读/写
x10
7~40℃
2
温度灵敏度
℃
0x0301
读/写
x10
1~10℃
3
湿度设定点
%
0x0302
读/写
x10
10~90%
4
湿度灵敏度
%
0x0303
读/写
x10
3~20%
5
高温告警点
℃
0x0304
读/写
x10
20~70℃
6
低温告警点
℃
0x0305
读/写
x10
-20~20℃
7
高湿告警点
%
0x0306
读/写
x10
60~95%
8
低湿告警点
%
0x0307
读/写
x10
10~60%
遥控参数
1
监控开关机
0x0400
读/写
0x15开机
0x17关机
告警状态(0X00正常0X01告警0X20无效)
1
回风高温告警
0x0500
只读
x1
2
回风低温告警
0x0501
只读
x1
3
回风高湿告警
0x0502
只读
x1
4
回风低湿告警
0x0503
只读
x1
5
1#回风温感故障
0x0504
只读
x1
6
1#出风温感故障
0x0507
只读
x1
7
回风湿感故障
0x050A
只读
x1
8
压差传感器故障
0x050B
只读
x1
9
气流丢失告警
0x0516
只读
x1
10
滤网堵塞告警
0x0517
只读
x1
11
电极加湿电流过小
0x051A
只读
x1
12
电极加湿电流过大
0x051B
只读
x1
13
电极加湿水位过高
0x051C
只读
x1
14
地板溢水
0x051D
只读
x1
15
电源电压过高
0x051E
只读
x1
16
电源电压过低
0x051F
只读
x1
17
电源缺相告警
0x0520
只读
x1
18
电源逆相告警
0x0521
只读
x1
19
电源频率异常
0x0522
只读
x1
20
1#系统高压
0x0529
只读
x1
21
1#系统低压
0x052A
只读
x1
22
2#系统高压
0x052B
只读
x1
23
2#系统低压
0x052C
只读
x1
24
1#系统高压锁定
0x052D
只读
x1
25
2#系统高压锁定
0x052E
只读
x1
26
1#系统低压锁定
0x052F
只读
x1
27
2#系统低压锁定
0x0530
只读
x1
28
1#系统排气温度保护
0x0531
只读
x1
29
2#系统排气温度保护
0x0532
只读
x1
30
1#系统排气温度锁定
0x0533
只读
x1
31
2#系统排气温度锁定
0x0534
只读
x1
32
1#盘管防冻保护
0x0535
只读
x1
33
2#盘管防冻保护
0x0536
只读
x1
34
1#制冷系统异常
0x0537
只读
x1
35
2#制冷系统异常
0x0538
只读
x1
36
1#系统短周期报警
0x0539
只读
x1
37
2#系统短周期报警
0x053A
只读
x1
38
1#系统冷凝单元变频驱动板故障
0x053B
只读
x1
39
2#系统冷凝单元变频驱动板故障
0x053C
只读
x1
40
预留
0x053D
只读
x1
41
预留
0x053E
只读
x1
42
预留
0x053F
只读
x1
43
内风机故障
0x0540
只读
x1
44
红外加湿水盘过温保护
0x0541
只读
x1
45
红外加湿高水位
0x0542
只读
x1
46
红外加湿缺水
0x0543
只读
x1
47
预留
0x0544
只读
x1
48
预留
0x0545
只读
x1
49
预留
0x0546
只读
x1
50
预留
0x0547
只读
x1
51
预留
0x0548
只读
x1
52
预留
0x0549
只读
x1
53
预留
0x054A
只读
x1
54
1#冷凝温感失效
0x054B
只读
x1
55
2#冷凝温感失效
0x054C
只读
x1
56
1#吸气温感失效
0x054D
只读
x1
57