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