HART数据格式解析2014-10-14.docx_第1页
HART数据格式解析2014-10-14.docx_第2页
HART数据格式解析2014-10-14.docx_第3页
HART数据格式解析2014-10-14.docx_第4页
HART数据格式解析2014-10-14.docx_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1)前导码FF :520个字节2)定界符:只有1字节。此字段的最高位决定该帧是长型帧还是短型帧;低三位表示了不同的帧的类型,其余位保留。3)地址: 长帧格式地址:共个字节(位)。长帧格式地址建立在设备唯一标识符的基础上,设备唯一标识符标志了每个从设备或现场仪表。它分为三个部分:(1). 第一字节的最高位是主设备地址位,该位为时表示基本主设备,为时表示副主设备。(2). 第一字节的第六位是成组模式设备,该位为时,表示从设备处于成组模式,为时表示从设备没有处于成组模式。(3). 长地址的其他部分是设备的惟一标识符,共位。均为0表示广播地址。 短帧格式地址:只有字节。为保证向后兼容性,ART协议规定只有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 编码,范围无符号整数0127,如: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才能输出,如果地址是115则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所选变送器变量数据 字节18: 分配到Slot3的变送器变量代码 字节19: Slot3单位代码 字节20-23: Slot3所选变送器变量数据命令34:写主变量阻尼值主变量阻尼值表示一个时间常数(该时间到时,对阶跃响应的输出应该是稳态值的63%)。主变量的模拟和数字输出都使用这个变量。请求: 字节0-3: 主变量阻尼值,单位秒响应: 字节0-3: 实际主变量阻尼值,单位秒命令35:写主变量量程值主变量量程上限和下陷是独立的。该命令收到的主变量量程单位不影响该设备的主变量单位。主变量量程值按照接收单位返回。多数设备允许设备的量程上限比下限低,以使设备工作在反向输出。请求: 字节0: 主变量量程单位代码 字节1-4: 主变量量程上限 字节5-8: 主变量量程下限响应: 字节0: 主变量量程单位代码 字节1-4: 主变量量程上限 字节5-8: 主变量量程下限命令36:设置主变量量程上限将主变量的当前值设置成主变量量程上限,量程上限的改变不影响量程下限的值。按下设备上的“SPAN”按钮执行与该命令相同的功能。多数设备允许设备的量程上限比下限低,以使设备工作在反向输出。请求:无响应:无命令37:设置主变量量程下限按下设备上的“ZERO”按钮执行与该命令相同的功能。将主变量的当前值设置成主变量量程下限,量程下限的改变将成比例的改变量程上限的值,因此精度Span保持不变。当这个改变把量程上限推到了传感器上限时,主变量量程上限饱和且响应代码为14。警告:主变量量程下限把量程上限推到超过传感器上限,将导致得到的精度Span要小于主变量最小精度Span,此时返回响应代码9应用过程太高或响应代码10-应用过程太低。多数设备允许设备的量程上限比下限低,以使设备工作在反向输出。请求:无响应:无命令38:复位组态改变标志复位组态改变响应代码,变换器字节的第6位。地址为0的第二主设备不发布这个命令,地址为1的第一主设备也只有在组态改变响应代码被检测到时才可以发布这个命令。请求:无响应:无命令39:EE控制这个命令引起把数据从RAM传输到非易失内存(这一过程被称为烧写)或者从非易失内存传输到RAM中(这一过程被称为恢复)。如果EE校验和错被检测到,则变换器状态字节第7位-现场设备故障响应代码被设置。此时,命令48读附加的变换器状态应该被用于获得详细的信息。对于烧写请求,直到这个命令被返回时,烧写才可以开始。请求: 字节0: EEPROM控制代码,0-烧写,1-恢复,2-249-未定义响应: 字节0: EEPROM控制代码,0-烧写,1-恢复,2-249-未定义命令40:进入/退出固定主变量电流模式设备被配制成固定主变量电流模式请求: 字节0-3: 固定主变量电流值,单位毫安响应: 字节0-3: 实际固定主变量电流值,单位毫安命令41:执行变送器自检启动设备自检功能。设备立即响应这个命令,然后执行自检。这个命令的执行或许会花相对较长时间。如果设备自检期间不能执行命令,设备也不给出响应;如果设备自检期间能够执行命令,命令48能够决定什么时候完成(?)。请求:无响应:无命令42:执行设备复位设备立即响应,然后CPU复位。这个命令的执行需要花相对较长时间,在命令完成前,设备不能响应任何其他命令。请求:无响应:无命令43:设置主变量零点将设备的当前主变量值设置成零点,该值必须被设置再在设备定义的上下限内。请求:无响应:无命令44:写主变量单位选择一个主变量单位,主变量值和量程都以该单位返回。主变量传感器上下限和主变量最小精度Span也有用该值作为单位。请求: 字节0: 主变量单位代码响应: 字节0: 主变量单位代码命令45:调整主变量电流DAC零点调整主变量AO的零点,因此当前的电流值被准确地设置在他的最小值。使用这个命令前,用命令40-进入/退出固定主变量电流模式去设置电流到主变量AO的准确地最小值。如果设备没有进入固定主变量电流模式或电流没有被设置成准确地最小值,需返回响应代码9-不在正确的电流模式。请求: 字节0-3: 外部测量电流值,单位毫安响应: 字节0-3: 实际测量主变量电流值,单位毫安命令46:调整主变量电流DAC增益调整主变量AO增益,因此当前的电流值被准确的设置成它的最大值。使用这个命令前,用命令40-进入/退出固定主变量电流模式去设置电流到主变量AO的准确地最大值。如果设备没有进入固定主变量电流模式或电流没有被设置成准确地最大值,需返回响应代码9-不在正确的电流模式。请求: 字节0-3: 外部测量主变量电流值,单位毫安响应: 字节0-3: 实际测量主变量电流值命令47:写主变量传递功能为设备的主变量AO选择传输功能。请求: 字节0:主变量传输Transfer功能代码响应: 字节0:主变量传输Transfer功能代码命令48:读附加的变送器状态返回不包含在响应代码中的状态信息,这个命令也返回变送器自检结果(命令41)。响应代码8,警告:当一个需要相对长时间完成的命令执行时,状态信息正在等待这个命令完成,此时返回警告Update in Progress。请求:无响应: 字节0: 变送器状态 字节6: 操作模式1 字节7: 操作模式2 字节8-10: 模拟输出饱和 字节11-13:模拟输出固定 字节14-24:变送器状态命令49:写主变量传感器序列号写和主变量相连的传感器序列号。请求: 字节0-2: 主变量传感器序列号响应: 字节0-2: 主变量传感器序列号命令50:读动态变量配置返回分配到主变量、第二变量、第三变量和第四变量的变送器变量号。请求:无响应: 字节0: 分配到主变量的变送器变量代码 字节1: 分配到第二变量的变送器变量代码 字节2: 分配到第三变量的变送器变量代码 字节3: 分配到第四变量的变送器变量代码命令51:写动态变量配置分配变送器变量到主变量、第二变量、第三变量和第四变量。每个动态变量可以接受任何设备定义的变送器变量代码。请求: 字节0: 分配到主变量的变送器变量代码 字节1: 分配到第二变量的变送器变量代码 字节2: 分配到第三变量的变送器变量代码 字节3: 分配到第四变量的变送器变量代码响应: 字节0: 分配到主变量的变送器变量代码 字节1: 分配到第二变量的变送器变量代码 字节2: 分配到第三变量的变送器变量代码 字节3: 分配到第四变量的变送器变量代码命令52:设置变送器变量零点将设备的当前值设置成所选变送器变量的零点。结果必须在分配到每个变量的范围内。请求: 字节0: 将要被设置零点的变送器变量代码响应: 字节0: 要被设置零点的变送器变量代码命令53:写变送器变量单位选择单位,所选变送器变量将以该单位被返回。请求: 字节0: 将要被设置零点的变送器变量代码 字节1: 将要被设置零点的变送器变量单位响应: 字节0: 被设置零点的变送器变量代码 字节1: 被设置零点的变送器变量单位命令54:读变送器变量信息响应信息为传感器序列号、传感器上下限单位、传感器上下限、阻尼值和所选变送器变量的最小精度。变送器变量上下限单位和变送器变量单位相同。请求: 字节0: 被设置零点的变送器变量代码响应: 字节0: 被设置零点的变送器变量代码 字节1-3: 变送器变量传感器序列号 字节4: 变送器变量上下限/最小精度单位代码 字节5-8: 变送器变量上限 字节9-12: 变送器变量下限 字节13-16:变送器变量阻尼值 字节17-20:变送器最小精度命令55:写变送器变量阻尼值写阻尼值,阻尼值表示一个时间常数(该时间到时,输出为阶跃输入稳态值的63%)。有些设备只能应用离散阻尼值。该命令收到的阻尼值可以被四舍五入或截取。响应消息将返回设备使用的实际值。当该值被四舍五入或截取时,要返回警告。请求: 字节0: 变送器变量代码 字节1-4: 变送器变量的阻尼值响应: 字节0: 变送器变量代码 字节1-4: 变送器变量的阻尼值命令56:写变送器变量传感器序列号写和一个特定变送器变量相连的传感器序列号。请求: 字节0: 变送器变量代码 字节1-4: 变送器变量的传感器序列号响应: 字节0: 变送器变量代码 字节1-4: 变送器变量的传感器序列号命令57:读UNIT设备标签、描述、日期该命令读UNIT设备的标签、描述和日期,而不是传感器的。UNIT设备是支持多传感器的典型通用硬件。请求:无响应: 字节0-5: UNIT标签,ASCII 字节6-11: UNIT描述符,ASCII 字节18-20: UNIT日期命令58:写UNIT设备标签、描述、日期该命令写UNIT设备的标签、描述和日期,而不是传感器的。UNIT设备是支持多传感器的典型通用硬件。请求: 字节0-5: UNIT标签,ASCII 字节6-11: UNIT描述符,ASCII 字节18-20: UNIT日期响应: 字节0-5: UNIT标签,ASCII 字节6-11: UNIT描述符,ASCII 字节18-20: UNIT日期命令59:写响应前导符的个数这是一个数据链路层管理命令。这个命令在响应包开始前,选择要发送的前导符的最小个数。这个数字包括包含在消息头中的两个前导符。请求: 字节0: 响应信息中要发送的前导符数响应: 字节0: 响应信息中要发送的前导符数命令60:读模拟输出AO和量程的百分比读模拟输出值和所选模拟输出的量程百分比。这个模拟输出总是匹配设备相关的物理模拟输出,包括报警条件和设置值。量程的百分比没有限制在0-100%之间,但是不能超过传感器的高低限。请求: 字节0: 模拟输出号代码响应: 字节0: 模拟输出号代码 字节1: 模拟输出单位代码 字节2-5: 模拟输出值 字节6-9: 模拟输出量程百分比 发送短消息 命令61:读动态变量和PV模拟输出读主变量模拟输出值和最多四个预先定义的动态变量。主变量模拟输出值总是匹配设备的物理主变量模拟输出,包括报警条件和设置值。每种设备类型定义了第二、第三和第四变量。(如第二变量被定义成传感器温度)请求:无响应: 字节0: 主变量模拟输出单位代码 字节1-4: 主变量模拟输出值 字节5: 主变量单位代码 字节6-9: 主变量 字节10: 第二变量单位代码 字节11-14:第二变量 字节15: 第三变量单位代码 字节16-19:第三变量 字节20: 第四变量单位代码 字节21-24:第四变量命令62:读多个模拟输出读所选的模拟输出值。每个SLOT可以匹配设备定义的任一模拟输出通道代码。请求: 字节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,所选模拟输出值 字节18: 分配到Slot3的模拟输出号代码 字节19: Slot3单位代码 字节20-23: Slot3,所选模拟输出值命令63:读模拟输出信息读和所选模拟输出相关的报警选择代码、传递功能代码、主变量/量程单位代码、上限值、下限值和阻尼值。阻尼值可以应用到模拟输出和数字输出。请求: 字节0: 模拟输出号代码响应: 字节0: 模拟输出号代码 字节1: 模拟输出报警选择代码 字节2: 模拟输出Transfer功能代码 字节3: 模拟输出上下限量程值单位代码 字节4-7: 模拟输出量程上限 字节8-11: 模拟输出量程下限 字节12-15:模拟输出阻尼值,单位秒命令64:写模拟输出附加阻尼值为所选模拟输出写附加阻尼值。附加的阻尼值表示一个时间常数。请求: 字节0: 模拟输出号代码 字节1-4: 模拟输出附加阻尼值,单位秒响应: 字节0: 模拟输出号代码 字节1-4: 模拟输出附加阻尼值,单位秒命令65:写模拟输出量程值谢所选模拟输出的量程值。量程值上限和下限独立。该命令接收的量程单位不影响动态变量和变送器变量单位。量程值以接收到的单位返回。多数设备允许量程上限低于量程下限,以使设备反向输出。请求: 字节0: 模拟输出号代码 字节1: 模拟输出量程值单位代码 字节2-5: 模拟输出量程上限 字节6-9: 模拟输出量程下限响应: 字节0: 模拟输出号代码 字节1: 模拟输出量程值单位代码 字节2-5: 模拟输出量程上限 字节6-9: 模拟输出量程下限命令66:进入/退出固定模拟输出模式命令67:修正模拟输出零点修正所选模拟输出的零点,因此相连的仪表需要读模拟输出下限值。该命令发送的值可以被四舍五入或取整。在使用这个命令前,使用命令66进入/退出固定模拟输出模式去准确的设置模拟输出到下限值。如果没有进入固定模拟输出模式或模拟输出没有准确的设置到下限值,响应代码9不是在正确的模拟输出模式将被返回。当设备的Polling地址不是0,即工作在多点模式下,如果收到这个命令,则响应代码11在多点模式将被返回。请求: 字节0: 模拟输出号代码 字节1: 模拟输出单位代

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论