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