
HART数据格式解析2014-10-14.doc
17页1)前导码FF :5~20个字节2)定界符:只有1字节此字段的最高位决定该帧是长型帧还是短型帧;低三位表示了不同的帧的类型,其余位保留3)地址:① 长帧格式地址:共5个字节(40位)长帧格式地址建立在设备唯一标识符的基础上,设备唯一标识符标志了每个从设备或现场仪表它分为三个部分:(1). 第一字节的最高位是主设备地址位,该位为1时表示基本主设备,为0时表示副主设备2). 第一字节的第六位是成组模式设备,该位为1时,表示从设备处于成组模式,为0时表示从设备没有处于成组模式3). 长地址的其他部分是设备的惟一标识符,共38位均为0表示广播地址② 短帧格式地址:只有1字节为保证向后兼容性,HART协议规定只有0号通用命令支持短帧格式它使协议可动态地将链路上每个设备与一个短帧地址相关联短帧地址可在链路初始化时使用,以便快速检测链路地址空间短帧地址分四部分:最高位是主设备地址: 该位为1时表示主设备,为0时表示副主设备;第六位为成组模式设备位:为1时表示从设备处于成组模式,为0时,表示从设备没处于成组模式;第四、五位必须置为0;最低四位表示巡检地址4)命令字节:为1字节它表明该帧所封装的HART命令,命令字节值在从设备响应中原封不动地返回。
5)字节计数:为1字节它表明此字节与最后的帧校验字节之间的数据字节个数用于识别帧的结束字节长度范围应该是在0-27 6)数据域:由整数字节的用户数据构成,长度为0-25字节7)校验字节:1个字节,一般为除开前导码和校验字节之外所有字节的异或之和8)响应码:2字节,只在从-主帧中出现响应码第一字节指明通信状态第二字节表示现场设备工作状态该帧数据只有在响应码第一字节的位7(b7)为0时才有效① 响应码的第一个字节的第7位如果置位,则剩余的位包含了有关通信错误的信息;第一个字节的第7位如果复位,则剩余的位用来表示命令响应信息l Bit 7=1时,其余位表示接收时的错误信息:l Bit 6 垂直奇偶校验错误l Bit 5 覆盖错误l Bit 4 帧错误l Bit 3 纵向奇偶校验错误l Bit 2 保留,应清零l Bit 1 缓冲区溢出l Bit 0 未定义:至今尚未定义l Bit 7=0时,则该字节包含有关命令执行情况的信息其余bit6-bit0 编码,范围无符号整数0—127,如:l 响应码# 32 忙 (0010 0000)2响应码# 64 命令不支持② 响应码的第二个字节为与设备的操作状态有关的信息,如在第一个字节中报告有错误,则该字节无意义。
l 该字节各位的意义如下:l Bit 7 现场设备工作不正常l Bit 6 组态变化:写或设置命令被执行l Bit 5 冷启动:由于设置信息的重安装l Bit 4 有更多的状态信息可用l Bit 3 基本变量的模拟输出被固定l Bit 2 基本变量的模拟输出己饱和l Bit 1 非基本变量超限l Bit 0 基本变量超限主从设备的短帧格式:主从设备长帧格式:HART通用命令一览HART命令0:读标识码返回扩展的设备类型代码,版本和设备标识码请求:无响应:字节0: 254 字节1: 制造商ID(Enum)字节2: 设备类型(Enum)字节3: 请求的最小前导符数(主->从)字节4: 通用命令文档版本号字节5: 设备规范版本号字节6: 设备软件版本号字节7: (前五个bit)设备硬件版本号 (后三个bit)物理信号类型(Enum)字节8: 设备标志字节9-11: 设备ID号HART命令1:读主变量(PV)以浮点类型返回主变量的值。
请求:无响应: 字节0: 主变量单位代码字节1-4: 主变量HART命令2:读主变量电流值和百分比读主变量电流和百分比,主变量电流总是匹配设备的AO输出电流百分比没有限制在0-100%之间,如果超过了主变量的范围,会跟踪到传感器的上下限请求:无响应: 字节0-3: 主变量电流,单位毫安字节4-7: 主变量量程百分比HART命令3:读动态变量和主变量电流读主变量电流和4个(最多)预先定义的动态变量,主变量电流总是匹配设备的AO输出电流每种设备类型都定义的第二、第三和第四变量,如第二变量是传感器温度等请求:无响应: 字节0-3: 主变量电流,单位毫安字节4: 主变量单位代码字节5-8: 主变量字节9: 第二变量单位代码字节10-13:第二变量字节14: 第三变量单位代码字节15-18:第三变量字节19: 第四变量单位代码字节20-23:第四变量HART命令4:保留HART命令5:保留HART命令6:写POLLING地址这是数据链路层管理命令这个命令写Polling地址到设备,该地址用于控制主变量AO输出和提供设备标识。
只有当设备的Polling地址被设成0时,设备的主变量AO才能输出,如果地址是1~15则AO处于不活动状态也不响应应用过程,此时AO被设成最小;并设置传输状态第三位——主变量模拟输出固定;上限/下限报警无效如果Polling地址被改回0,则主变量AO重新处于活动状态,也能够响应应用过程请求: 字节0: 设备的Polling地址响应: 字节0: 设备的Polling地址HART命令7:HART命令8:HART命令9:HART命令10:HART命令11:用设备的Tag读设备的标识这是一个数据链路层管理命令这个命令返回符合该Tag的设备的扩展类型代码、版本和设备标识码当收到设备的扩展地址或广播地址时执行该命令响应消息中的扩展地址和请求的相同请求: 字节0-5: 设备的Tag,ASCII码响应: 字节0: 254 字节1: 制造商ID代码 字节2: 制造商设备类型代码 字节3: 请求的前导符数 字节4: 通用命令文档版本号 字节5: 变送器版本号 字节6: 本设备的软件版本号 字节7: 本设备的硬件版本号 字节8: 设备的Flags 字节9-11: 设备的标识号HART命令12:读消息(Message)读设备含有的消息。
请求:无响应: 字节0-23: 设备消息,ASCIIHART命名13:读标签Tag,描述符Description和日期Date读设备的Tag,Description and Date请求:无响应: 字节0-5: 标签Tag,ASCII字节6-17: 描述符,ASCII字节18-20:日期,分别是日、月、年-1900HART命令14:读主变量传感器信息读主变量传感器序列号、传感器极限/最小精度(Span)单位代码、主变量传感器上限、主变量传感器下限和传感器最小精度传感器极限/最小精度(Span)单位和主变量的单位相同请求:无响应: 字节0-2: 主变量传感器序列号字节3: 主变量传感器上下限和最小精度单位代码字节4-7: 主变量传感器上限字节8-11: 主变量传感器下限字节12-15:主变量最小精度HART命令15:读主变量输出信息读主变量报警选择代码、主变量传递(Transfer)功能代码、主变量量程单位代码、主变量上限值、主变量下限值、主变量阻尼值、写保护代码和主发行商代码请求:无响应: 字节0: 主变量报警选择代码字节1: 主变量传递Transfer功能代码字节2: 主变量上下量程值单位代码字节3-6: 主变量上限值字节7-10: 主变量下限值字节11-14:主变量阻尼值,单位秒字节15: 写保护代码字节16: 商标发行商代码Private Label Distributor CodeHART命令16:读最终装配号读设备的最终装配号。
请求:无响应: 字节0-2: 最终装配号HART命令17:写消息写消息到设备请求: 字节0-23: 设备消息,ASCII响应: 字节0-23: 设备消息,ASCIIHART命令18:写标签、描述符和日期写标签、描述符和日期到设备请求: 字节0-5: 标签Tag,ASCII 字节6-17: 描述符Descriptor,ASCII 字节18-20:日期响应: 字节0-5: 标签Tag,ASCII 字节6-17: 描述符Descriptor,ASCII 字节18-20:日期HART命令19:写最后装配号写最后装配号到设备请求: 字节0-2: 最终装配号响应: 字节0-2: 最终装配号命令33:读变送器变量读选择的变送器变量这个命令有Burst模式操作的能力,与命令107一起组态写Burst模式变送器变量请求: 字节0: 分配到Slot0的变送器变量代码 字节1: 分配到Slot1的变送器变量代码 字节2: 分配到Slot2的变送器变量代码 字节3: 分配到Slot3的变送器变量代码响应: 字节0: 分配到Slot0的变送器变量代码 字节1: Slot0单位代码 字节2-5: Slot0所选变送器变量数据 字节6: 分配到Slot1的变送器变量代码 字节7: Slot1单位代码 字节8-11: Slot1所选变送器变量数据 字节12: 分配到Slot2的变送器变量代码 字节13: Slot2单位代码 字节14-17: Slot2所选变送器变量数据。












