HART通信协议V17C9C33C132Word文档格式.docx
《HART通信协议V17C9C33C132Word文档格式.docx》由会员分享,可在线阅读,更多相关《HART通信协议V17C9C33C132Word文档格式.docx(90页珍藏版)》请在冰豆网上搜索。
地址Address由1字节组成的HART数据帧,短帧只有通用命令Command0能够使用,短帧字节含义如下:
所有的HART从机都支持长、短帧。
5、请求帧(STX):
由主机(如手抄器)向从机(现场设备)发出请求数据命令;
6、应答帧(ACK):
从机回复给主机的数据;
7、前导符(Preamble):
发起命令(数据)传输的设备在传输数据帧前发送的0xFF字符,发送该字符的数量一般为5—20个,该数量可以通过命令来改变;
前导符的使用是为了使数据接收端在硬件电路上产生CD载波检测信号,以实现数据通讯的同步.
8、定界符(Delimiter):
表示数据帧传输的开始,指明数据的传输方向、物理层类型,同时它也指定了数据帧的帧类型(长、短帧),其含义内容如下:
定界符Delimiter字节含义
9、地址(Address):
由定界符Delimiter指定为短帧(1字节)或长帧(5字节)两种类型,长、短帧释义如前述;
10、扩展字节(ExpansionBytes):
本公司目前的HART协议版本保留,为0;
11、命令(Command):
功能码,指明一个数据帧的具体实现功能,命令有通用命令、普通应用命令、设备专用命令三大类;
12、数据字节数(BytesCount):
指实际的数据Data的数量;
13、数据(Data):
设置或读取指定从机的参数数据(通信的最终结果);
14、校验字节(CheckByte):
从定界符(Delimiter)到数据(Data)的所有字节的‘异或'
值,即纵向校验。
三.HART通讯规范
1、通信帧格式:
由前导符和数据帧构成,各数据域释义如上
通信帧格式
2、通讯速率:
1200Bps;
3、通讯信号:
Bell202标准的FSK频移键控信号,‘1200Hz’代表数字1,‘2200Hz’代表数字0;
4、数据格式(11位):
1位起始位、8位数据位、1位停止位、1位校验位,字节奇(Odd)校验;
5、应答数据帧的数据个数(BytesCount)至少为2字节,这两个字节分别为响应码(ResponseCode)和设备状态码(FieldDeviceStatus);
6、响应码格式:
从机回复给主机的命令执行情况代码,当通讯出错时,响应吗最高位bit7=1,这时设备状态码无实际意义;
当bit7=0时,表示通讯正常,余下6bits表示命令执行情况的响应.
7、通讯正常时响应码(bit7=0,低6bits):
*具体含义因不同命令而定,可查看相关的HART命令资料。
响应代码
响应码含义
0x00
执行成功
0x02
错误的命令
0x03
设置参数太大
0x04
设置参数太少
0x05
接收的数据太少
0x06
专用命令错
0x07
处于写保护模式
0x08
1、更新失败2、设置为接近值3、延时响应
0x09
1、低限范围值太大2、不正确的电流模式
0x0a
1、低限范围值太小2、无效的就地锁定
0x0b
1、上限范围值太大2、多从机模式3、无效设备变量代码4、调整超范围5、不能就地锁定
0x0c
1、上限范围值太小2、无效单位代码3、无效的模式选择4、无效的插槽号
0x0d
1、上、下限范围值超标2、计算错误3、无效的命令号
0x0e
1、量程太小2、设置的下限值引起上限值改变而超出传感器极限
0x0f
无效的模拟通道号
0x10
访问受限
0x11
无效的设备变量索引
0x12
无效的单位代码
0x13
设备变量的应用不合理
0x14
无效的扩展命令号
0x1c
不支持的单位代码
0x20
忙
0x21
延迟响应开始
0x22
延迟响应进行中
0x40
命令不能执行
8、通讯出错时响应代码(bit7=1)含义如下:
通讯出错含义
0xc0
接收字节字节奇校验出错
0xa0
接收缓冲区数据覆盖错
0x90
没有接收到停止位出错
0x88
校验字节出错
0x82
接收缓冲区溢出
9、设备状态码:
含义如下
设备状态含义
0x80
设备故障
配置参数改变
设备冷启动
环路电流固定模式
环路电流饱和
设备变量(没有映射到主变量)超限
0x01
主变量超出极限
10、数据类型:
HART通讯协议支持以下类型的数据:
字符串Str、日期Date、单或双精度浮点数Float、无符号整型数Unsigned、有符号整型数Signed、联合体Enum或位Bit。
数据传输顺序:
MSB至LSB.
1)字符串:
字符串支持标准的拉丁字母Latin和封装格式Packed的ASCII码,拉丁字符每个字母占1个字节;
封装格式的ASCII码每字母占1个字节的6位,因此,每4个字母封装在3个字节中,在使用过程中需要打包和解包操作。
2)浮点数:
满足IEEE754标准要求,单精度浮点数用4个字节表示,双精度浮点数用8个字节表示。
不可识别的浮点数用0x7f、0xa0、0x00、0x00表示。
11、设备变量状态(DeviceVariableStatus):
所有需要周期处理的数据(如设备变量和动态变量)都包含一个设备变量状态字节,其内容定义如下:
默认0xc0
设备变量状态字节含义
四.HART应用命令
命令有通用命令、普通应用命令、设备专用命令三大类,通用命令是所有的HART现场设备都必须响应的命令;
普通应用命令只被设备部分应用;
设备专用命令是生产商根据需要制定的命令。
(一)通用命令
1.Command0:
读唯一标识
1)短帧
请求帧STX:
Delimiter
Address
Expansion
Bytes
Command
Count
Data
Check
Byte
0x00|00xxxxxx
NULL
XOR
响应帧ACK:
正常响应
19
状态+数据
异常响应
2
状态
注:
状态=通讯状态+设备状态,其含义如前述,以下不再赘述。
2)长帧
0x00|38bitsID
响应帧ACK:
0x86
21
状态
正常响应帧数据内容
字节
数据类型
值
说明
可更改
Unsigned—8
254
统一固定值
N
1—2
Enum
未定
产品设备类型ID,由厂商定义,HCF登记
3
〉5
主设备到从设备的最少同步前导码数量
4
通用命令版本号,版本7
5
设备版本水平
设备软件版本(254和255保留)
7
Unsigned-5
高5位表示硬件版本号(31保留)
低3位表示物理信号为Bell202电流信号
8
Bits
保留
9-11
Unsigned-24
设备ID,同种类型设备的序列号
12
>
从设备到主设备的最少同步前导码数量
13
Unsigned-8
最大设备变量数,主设备希望能读取的设备变量的个数。
14—15
Unsigned-16
配置改变记数器
16
扩展设备状态.
0设备正常
0x01设备没有故障但需要维护
0x02设备变量报警状态
17-18
制造商ID,由HCF分配
2.Command1:
读主变量
0x00|38bitsID
1