HART通信协议V1.7(C9,C33,C132)-.pdf
《HART通信协议V1.7(C9,C33,C132)-.pdf》由会员分享,可在线阅读,更多相关《HART通信协议V1.7(C9,C33,C132)-.pdf(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 HART 通信协议VER 1.6 一概述HART(Highway Addressable Remote Transducer)协议采用基于Bell202 标准的 FSK 频移键控信号,在低频的4-20mA 模拟信号上叠加幅度为0.5mA 的音频数字信号进行双向数字通讯,数据传输率为1200bps。由于 FSK 信号的平均值为0,不影响传送给控制系统模拟信号的大小,保证了与现有模拟系统的兼容性。在HART协议通信中主要的变量和控制信息由 4-20mA 传送,在需要的情况下,另外的测量、过程参数、设备组态、校准、诊断信息通过 HART 协议访问。在应用层,HART 规定了一系列命令,按命令方式
2、工作。它有三类命令,第一类称为通用命令,这是所有设备都理解、执行的命令;第二类称为普通应用命令,所提供的功能可以在许多现场设备(尽管不是全部)中实现;第三类称为设备专用命令,以便于工作在某些设备中实现特殊功能,这类命令既可以在基金会中开放使用,又可以为开发此命令的公司所独有。二含义1、主机(Master):分为第一主机和第二主机,它能连接在HART 网络上,发出命令与从机通讯;2、从机(Field Device):连接在过程控制现场中,具有测量、计算多种变量功能,并能与主机进行HART 通讯的设备;3、长帧(Long Frame):地址 Address 由 5 字节组成的HART 数据帧,所有
3、的HART 命令都支持长帧数据帧。长帧地址各字节含义如下图所示:2 制造商 ID 号(Manufacturer ID)由 HART 基金会分配;在生产中,同类型设备序列号唯一,并且永不重复。广播地址使用长帧结构,低38 BIT 全为 0。厂商指定的设备类型(Decive Type)与制造商ID 满足下表要求;设备类型代码指定原则4、短帧(Short Frame):地址 Address 由 1 字节组成的HART 数据帧,短帧只有通用命令Command 0 能够使用,短帧字节含义如下:所有的HART 从机都支持长、短帧。低6位短帧地址:轮询从机地址主机地址0:第二主机1:第一主机1:从机在突发模
4、式0:正常模式短帧 Address 字节含义5、请求帧(STX):由主机(如手抄器)向从机(现场设备)发出请求数据命令;6、应答帧(ACK):从机回复给主机的数据;3 7、前导符(Preamble):发起命令(数据)传输的设备在传输数据帧前发送的0 xFF 字符,发送该字符的数量一般为520 个,该数量可以通过命令来改变;前导符的使用是为了使数据接收端在硬件电路上产生CD 载波检测信号,以实现数据通讯的同步。8、定界符(Delimiter):表示数据帧传输的开始,指明数据的传输方向、物理层类型,同时它也指定了数据帧的帧类型(长、短帧),其含义内容如下:帧类型(传输方向)001:突发模式010:
5、主机向从机请求数据(STX)110:从机向主机回复数据(ACK)物理层类型00:异步(FSK)01:同步(ACK)扩展字节数为 00地址类型0:短帧1字节(轮询)1:长帧5字节(唯一地址)定界符 Delimiter 字节含义9、地址(Address):由定界符Delimiter 指定为短帧(1 字节)或长帧(5 字节)两种类型,长、短帧释义如前述;10、扩展字节(Expansion Bytes):本公司目前的HART 协议版本保留,为0;11、命令(Command):功能码,指明一个数据帧的具体实现功能,命令有通用命令、普通应用命令、设备专用命令三大类;12、数据字节数(Bytes Count
6、):指实际的数据Data 的数量;13、数据(Data):设置或读取指定从机的参数数据(通信的最终结果);14、校验字节(Check Byte):从定界符(Delimiter)到数据(Data)的所有字节的异或值,即纵向校验。三HART 通讯规范1、通信帧格式:由前导符和数据帧构成,各数据域释义如上+Preamble固定为(0 xFF)数据帧5-20 字节DelimiterAddressExpansion bytesCommandBytesCountDataCheckByte前导符定界符1字节地址短帧 1字节长帧 5字节扩展字节0 3字节命令1字节数据个数 1 字节数据n字节校验字节 1 字节
7、4 通信帧格式2、通讯速率:1200Bps;3、通讯信号:Bell202 标准的 FSK 频移键控信号,1200Hz代表数字1,2200Hz代表数字 0;4、数据格式(11 位):1 位起始位、8 位数据位、1 位停止位、1 位校验位,字节奇(Odd)校验;5、应答数据帧的数据个数(Bytes Count)至少为 2 字节,这两个字节分别为响应码(Response Code)和设备状态码(Field Device Status);6、响应码格式:从机回复给主机的命令执行情况代码,当通讯出错时,响应吗最高位bit7=1,这时设备状态码无实际意义;当bit7=0 时,表示通讯正常,余下6 bits
8、 表示命令执行情况的响应。7、通讯正常时响应码(bit7=0,低 6 bits):*具体含义因不同命令而定,可查看相关的HART 命令资料。响应代码响应码含义响应代码响应码含义0 x00 执行成功0 x02 错误的命令0 x03 设置参数太大0 x04 设置参数太少0 x05 接收的数据太少0 x06 专用命令错0 x07 处于写保护模式0 x08 1、更新失败2、设置为接近值3、延时响应0 x09 1、低限范围值太大2、不正确的电流模式0 x0a 1、低限范围值太小2、无效的就地锁定0 x0b 1、上限范围值太大2、多从机模式3、无效设备变量代码4、调整超范围5、不能就地锁定0 x0c 1、
9、上限范围值太小2、无效单位代码3、无效的模式选择4、无效的插槽号0 x0d 1、上、下限范围值超标2、计算错误3、无效的命令号0 x0e 1、量程太小2、设置的下限值引起上限值改变而超出传感器极限0 x0f 无效的模拟通道号0 x10 访问受限0 x11 无效的设备变量索引0 x12 无效的单位代码0 x13 设备变量的应用不合理0 x14 无效的扩展命令号0 x1c 不支持的单位代码0 x20 忙0 x21 延迟响应开始0 x22 延迟响应进行中0 x40 命令不能执行8、通讯出错时响应代码(bit7=1)含义如下:响应代码通讯出错含义0 xc0 接收字节字节奇校验出错0 xa0 接收缓冲区
10、数据覆盖错0 x90 没有接收到停止位出错0 x88 校验字节出错0 x82 接收缓冲区溢出5 9、设备状态码:含义如下响应代码设备状态含义0 x80 设备故障0 x40 配置参数改变0 x20 设备冷启动0 x08 环路电流固定模式0 x04 环路电流饱和0 x02 设备变量(没有映射到主变量)超限0 x01 主变量超出极限10、数据类型:HART 通讯协议支持以下类型的数据:字符串Str、日期 Date、单或双精度浮点数Float、无符号整型数Unsigned、有符号整型数Signed、联合体Enum 或位Bit。数据传输顺序:MSB 至 LSB。1)字符串:字符串支持标准的拉丁字母Lat
11、in 和封装格式Packed的 ASCII 码,拉丁字符每个字母占1 个字节;封装格式的ASCII 码每字母占1 个字节的6 位,因此,每4 个字母封装在 3 个字节中,在使用过程中需要打包和解包操作。2)浮点数:满足 IEEE754标准要求,单精度浮点数用4个字节表示,双精度浮点数用8个字节表示。23 bit小数8 bit指数1 bit符号位单精度浮点数格式不可识别的浮点数用0 x7f、0 xa0、0 x00、0 x00 表示。11、设备变量状态(Device Variable Status):所有需要周期处理的数据(如设备变量和动态变量)都包含一个设备变量状态字节,其内容定义如下:默认0
12、xc0 设备变量状态字节含义6 四HART 应用命令命令有通用命令、普通应用命令、设备专用命令三大类,通用命令是所有的HART 现场设备都必须响应的命令;普通应用命令只被设备部分应用;设备专用命令是生产商根据需要制定的命令。(一)通用命令1.Command 0:读唯一标识1)短帧请求帧 STX:Delimiter Address Expansion Bytes Command Bytes Count Data Check Byte 0 x02 0 x00|00 xxxxxx NULL 0 0 NULL XOR 响应帧 ACK:Delimiter Address Expansion Bytes
13、Command Bytes Count Data Check Byte 正常响应0 x06 0 x00|00 xxxxxx NULL 0 19 状态+数据XOR 异常响应0 x06 0 x00|00 xxxxxx NULL 0 2 状态XOR 注:状态=通讯状态+设备状态,其含义如前述,以下不再赘述。2)长帧请求帧 STX:Delimiter Address Expansion Bytes Command Bytes Count Data Check Byte 0 x82 0 x00|38 bits ID NULL 0 0 NULL XOR 响应帧 ACK:Delimiter Address
14、Expansion Bytes Command Bytes Count Data Check Byte 正常响应0 x86 0 x00|38 bits ID NULL 0 21 状态+数据XOR 异常响应0 x86 0 x00|38 bits ID NULL 0 2 状态XOR 正常响应帧数据内容字节数据类型值说明可更改0 Unsigned8 254 统一固定值N 1-2 Enum 未定产品设备类型ID,由厂商定义,HCF 登记N 3 Unsigned8 5 主设备到从设备的最少同步前导码数量N 7 4 Unsigned8 0 x07 通用命令版本号,版本7 N 5 Unsigned8 0 x
15、01 设备版本水平N 6 Unsigned8 0 x01 设备软件版本(254 和 255 保留)N 7 Unsigned5 Enum 0 x01 高 5 位表示硬件版本号(31 保留)低 3 位表示物理信号为Bell202 电流信号N 8 Bits 0 x08 保留N 9-11 Unsigned24 设备 ID,同种类型设备的序列号N 12 Unsigned8 5 从设备到主设备的最少同步前导码数量N 13 Unsigned8 0 x01 最大设备变量数,主设备希望能读取的设备变量的个数。N 14-15 Unsigned16 配置改变记数器N 16 Bits 0 0 x01 0 x02 扩展
16、设备状态。0 设备正常0 x01 设备没有故障但需要维护0 x02 设备变量报警状态N 17-18 Enum 未定制造商 ID,由 HCF 分配N 2.Command 1:读主变量请求帧 STX:Delimiter Address Expansion Bytes Command Bytes Count Data Check Byte 0 x82 0 x00|38 bits ID NULL 1 0 x00 NULL XOR 响应帧 ACK:Delimiter Address Expansion Bytes Command Bytes Count Data Check Byte 正常响应0 x86
17、 0 x00|38 bits ID NULL 1 7 状态+数据XOR 异常响应0 x86 0 x00|38 bits ID NULL 1 2 状态XOR 正常响应帧数据内容字节数据类型值说明可更改0 Enum 对应的变量单位,见附表1单位代码N 1-4 Float 单精度浮点数表示主变量的值N 3.Command 2:读环路电流和量程百分比请求帧 STX:Delimiter Address Expansion Bytes Command Bytes Count Data Check Byte 0 x82 0 x00|38 bits ID NULL 2 0 NULL XOR 8 响应帧 ACK
18、:Delimiter Address Expansion Bytes Command Bytes Count Data Check Byte 正常响应0 x86 0 x00|38 bits ID NULL 2 10 状态+数据XOR 异常响应0 x86 0 x00|38 bits ID NULL 2 2 状态XOR 正常响应帧数据内容字节数据类型值说明可更改0-3 Float 单精度浮点数表示环路电流值mA N 4-7 Float 单精度浮点数表示主变量占量程的百分比N 4.Command 3:读动态变量和环路电流注:本公司压力变送器只有1 个动态变量,即主变量请求帧 STX:Delimite
19、r Address Expansion Bytes Command Bytes Count Data Check Byte 0 x82 0 x00|38 bits ID NULL 3 0 NULL XOR 响应帧 ACK:Delimiter Address Expansion Bytes Command Bytes Count Data Check Byte 正常响应0 x86 0 x00|38 bits ID NULL 3 11 状态+数据XOR 异常响应0 x86 0 x00|38 bits ID NULL 3 2 状态XOR 正常响应帧数据内容字节数据类型值说明可更改0-3 Float
20、单精度浮点数表示主变量对应环路电流值mA N 4 Enum 动态变量单位N 5-8 Float 单精度浮点数表示动态变量的值N 5.Command 6:设置轮询地址请求帧 STX:Delimiter Address Expansion Bytes Command Bytes Count Data Check Byte 0 x82 0 x00|38 bits ID NULL 6 2 数据XOR 请求帧数据内容字节数据类型值说明可更改0 Unsigned8 Polling Addr 设置的轮询地址(015)Y 1 Enum 0、1 0=环路电流禁止;1=环路电流允许Y 响应帧 ACK:Delimi
21、ter Address Expansion Command Bytes Data Check 9 Bytes Count Byte 正常响应0 x86 0 x00|38 bits ID NULL 6 4 状态+数据XOR 异常响应0 x86 0 x00|38 bits ID NULL 6 2 状态XOR 正常响应帧数据内容同请求帧注:现场设备在制造时就设置轮询地址为0,并且环路电流被允许,这是为了保证HART 现场设备能够接到一个只有模拟信号的现场装置。当轮询地址设置为0 时,从设备必须同时工作在环路电流模式(一对一),电流和基本变量值相关联;当轮询地址设置其它值时,从设备必须同时工作在非环路
22、电流模式(一对多),电流设置为能够维持操作的最小值。6.Command 7:读环路配置请求帧 STX:Delimiter Address Expansion Bytes Command Bytes Count Data Check Byte 0 x82 0 x00|38 bits ID NULL 7 0 NULL XOR 响应帧 ACK:Delimiter Address Expansion Bytes Command Bytes Count Data Check Byte 正常响应0 x86 0 x00|38 bits ID NULL 7 4 状态+数据XOR 异常响应0 x86 0 x00
23、|38 bits ID NULL 7 2 状态XOR 正常响应帧数据内容字节数据类型值说明可更改0 Unsigned8 Polling Addr 设置的轮询地址N 1 Enum 0、1 0=环路电流禁止;1=环路电流允许N 7.Command 8:读动态变量分类请求帧 STX:Delimiter Address Expansion Bytes Command Bytes Count Data Check Byte 0 x82 0 x00|38 bits ID NULL 8 0 NULL XOR 响应帧 ACK:Delimiter Address Expansion Bytes Command
24、Bytes Count Data Check Byte 正常响应0 x86 0 x00|38 bits ID NULL 8 3 状态+数据XOR 异常响应0 x86 0 x00|38 bits ID NULL 8 2 状态XOR 正常响应帧数据内容字节数据类型值说明可更改10 0 Enum 65(0 x41)动态变量分类(压力类型)N 8.Command 9:读设备变量和状态通过 Command 9,最多可读取4 个设备变量。分别是:第 1 变量:压力值(主变量)第 2 变量:电流值第 3 变量:百分比值第 4 变量:温度值请求帧 STX:Delimiter Address Expansion
25、 Bytes Command Bytes Count Data Check Byte 0 x82 0 x00|38 bits ID NULL 9 1 4 0 3 XOR 响应帧 ACK:Delimiter Address Expansion Bytes Command Bytes Count Data Check Byte 正常响应0 x86 0 x00|38 bits ID NULL 9 9-33 状态+数据XOR 异常响应0 x86 0 x00|38 bits ID NULL 9 2 状态XOR 正常响应帧数据内容字节数据类型值说明可更改0 Bits 0 x00 扩展设备状态N 1 Uns
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- HART 通信协议 V1 C9 C33 C132
限制150内