HART报文详解

1.简介

HART(Highway Addressable Remote Transducer可寻址远程传感器高速通道)协议,主要用于工业自动化领域的通信协议,专为发送和接收数字信息而设计,同时也支持模拟信号(如4-20 mA信号)的传输。这种设计使得HART设备能够同时传输模拟信号和数字数据,从而提供了更加灵活和强大的通信能力。

标准的HART传输是叠加在4-20mA信号上的FSK(移动键控)信号,替代方案是C8PSK(同调8路相移键控)信号,代替方案提高了HART的数字传输速率。此外还有一些基于RS-485、IP、TDMA的HART通讯方式,在此不再赘述。

本文仅讨论HART FSK。

2.报文格式

2.1 HART字节

因为HART协议有自己独特的物理层通讯方式,所以其在数据链路层上的传输采用一个被称为HART字节组的传输方式,每次传输会发送一个11位的HART字节,多个HART字节中的数据部分组合成一个有效的HART数据帧。(这个过程可以不准备的类比成一长串数据通过多个TCP/IP数据包发送的过程)

HART字节的格式如下:

用途开始位HART字节奇校验位停止位
长度1bit8bit1bit1bit
描述固定为0,表示开始HART数据,从LSB(最低有效位)开始,以MSB(最高有效位)结束。用于校验数据固定为1,表示结束

2.2HART报文格式

结构如下:

用途长度描述
前导码5-20字节5-20个0xFF,用于传输的开始,
起始字节1字节用来标识数据包的起始位置
地址1或5字节包含了主机地址和从机地址,短帧中占1字节,长帧中占5字节
扩展0-3字节用于潜在的扩展,长度由其实字节指示
命令1字节表示这条数据的作用
字节计数1字节状态和数据部分的大小,单位:字节
状态2字节只存在于从机响应主机的消息,报告错误和状态
数据0-253字节不是所有的命令都有数据字节,用于存放数据
校验和1字节纵向奇偶校验,用于检测错误

2.2.1 前导码

前导码出现在每条消息的开头。前导码由一系列相同的字节组成,通常是连续的"FF"字节(在二进制中为11111111)。前导码的主要作用包括几个方面:

  • 同步:前导码为接收设备提供了同步信号,帮助接收设备确定数据帧的开始位置。通过识别这一系列重复的模式,接收端的解码器可以与发送端的数据流同步,从而正确地解读后续传来的信息(比如起始位、地址、命令、数据等)。

  • 清除线路:连续的前导码有助于清除通信线路上的任何噪声或干扰,确保数据传输的清晰度和准确性。这种"清道"的作用对于在现场环境中运行的工业设备尤其重要,因为这些环境往往充满电磁干扰。

  • 接收器准备:前导码还给接收设备足够的时间来准备接收即将到来的数据。在HART通信中,接收设备(如处理器或控制器)需要调整其接收机制以准确解码即将到来的信息。前导码的存在为这种调整提供了缓冲时间。

2.2.2 起始字节

结构:

用途地址类型扩展字节数物理层类型帧类型
长度1bit2bit2bit3bit
描述0:轮询 - 字节地址(短帧)
1:唯一 - 字节地址(长帧)
通常为0000:异步(例如,FSK)
11:同步(例如,C8PSK
001:突发帧响应
010:主机到现场设备
110:现场设备到主机

2.2.3 地址

地址部分,1字节为短帧,5字节为长帧。

短帧:

用途主机序突发模式设备地址
长度1bit1bit2bit4bit
描述1:第一主机
0:第二主机
1:是
0:否
始终为00

长帧:

用途主机序突发模式扩展的设备类型设备ID
长度1bit1bit14bit24bit
描述1:第一主机
0:第二主机
1:是
0:否

2.2.4 扩展

扩展部分主要为未来预留,它主要规划了以下方面的作用:

  • 设备识别和分类:扩展字段允许对连接到系统的设备进行更详细的识别和分类。通过这些字段,系统可以识别设备的类型、制造商和其他相关信息。这对于系统配置和故障排除非常有用。
  • 增强的设备信息:一些扩展字段用于存储有关设备性能、功能和配置选项的额外信息。这使得操作者可以更准确地控制设备,同时优化系统的整体性能。
  • 改进的诊断能力:扩展字段可以包含有关设备状态和健康的详细信息,使得对设备进行远程监控和诊断成为可能。这有助于提前发现问题,减少系统停机时间。
  • 更高的数据传输效率:通过利用扩展字段传输数据,HART协议能够在保持向后兼容的同时,提供更高的数据传输效率和更大的数据容量。
  • 支持新技术和功能:随着过程控制技术的发展,新的监测和控制需求不断出现。扩展字段为支持这些新技术和功能提供了可能,确保了HART协议的长期适用性和灵活性。

2.2.5 命令

命令分为三种类别:通用、常用实践(也译作常见做法)、设备特定(专用命令),通用命令即所有采用HART协议的设备都要遵循的,常用实践为常见设备都要遵循的,特备特定为针对某些厂家或型号的设备才有的命令。

机翻自HART通信基金会官网

命令编号命令描述类型
0读取设备ID通用
1读取主要变量通用
2读取回路电流和量程百分比通用
3读取动态变量和回路电流通用
6写入轮询地址通用
7读取回路配置通用
8读取动态变量分类通用
9带状态读取设备变量通用
11读取与标签关联的唯一标识符通用
12读取信息通用
13读取标签、描述符、日期通用
14读取主要变量传感器信息通用
15读取设备信息通用
16读取最终组装号通用
17写信息通用
18写标签、描述符、日期通用
19写最终组装号通用
20读取长标签通用
21读取与长标签关联的唯一标识符通用
22写长标签通用
38重置配置更改标志通用
48读取额外的设备状态通用
33读取设备变量常用实践
34写主要变量阻尼值常用实践
35写主要变量量程值使用命令35写入的数据将更新菜单中的4mA和20mA设置常用实践
36设置主要变量上限量程值常用实践
37设置主要变量下限量程值常用实践
40进入/退出固定电流模式常用实践
41执行自检常用实践
44写主要变量单位常用实践
45调整回路电流零点常用实践
46调整回路电流增益常用实践
47写主要变量传递函数常用实践
54读取设备变量信息常用实践
59写响应前导符数量常用实践
71锁定设备常用实践
76读取设备锁定状态常用实践
140写入场统计信息 覆盖设备记录的最大值和最小值设备特定
141读取场统计信息 从设备读取当前的最大值和最小值设备特定
144写开关1配置 写入开关1模式、设定点、死区、锁存设置、延迟设置设备特定
145读开关1配置 读取开关1模式、设定点、死区、锁存设置、延迟设置设备特定
221启用/禁用写保护,修改密码 允许启用/禁用写保护模式并允许编辑设备密码设备特定
222读、写保护状态 读取设备的写保护状态设备特定
223写入跳闸计数器 向与开关1和开关2关联的跳闸计数器写入一个0 – 9999之间的无符号16位整数设备特定
224切换 1和2 读取与开关1和开关2关联的跳闸计数器的值,该数值为一个0 – 9999之间的无符号16位整数设备特定
225手动重置 重置一个或多个处于锁存状态的开关设备特定
226读取开关锁存状态 读取一个或多个开关的锁存状态设备特定
244写开关2配置 写入开关2模式、设定点、死区、锁存设置、延迟设置设备特定
245读开关2配置 读取开关2模式、设定点、死区、锁存设置、延迟设置设备特定
246写堵塞端口设置设备特定
247读堵塞端口设置设备特定
248写偏移和量程设备特定
249读偏移和量程设备特定

2.2.6 状态

状态分1个字节的响应码和1个字节的设备状态码。

2.2.6.1 响应码

正常通讯时,最高bit为0,响应码为:

响应码含义
0x00执行成功
0x02错误的命令
0x03设置参数太大
0x04设置参数太少
0x05接收的数据太少
0x06专用命令错
0x07处于写保护模式
0x081、更新失败2、设置为接近值3、延时响应
0x091、低限范围值太大2、不正确的电流模式
0x0a1、低限范围值太小2、无效的就地锁定
0x0b1、上限范围值太大2、多从机模式3、无效设备变量代码4、调整超范围5、不能就地锁定
0x0c1、上限范围值太小2、无效单位代码3、无效的模式选择4、无效的插槽号
0x0d1、上、下限范围值超标2、计算错误3、无效的命令号
0x0e1、量程太小2、设置的下限值引起上限值改变而超出传感器极限
0x0f无效的模拟通道号
0x10访问受限
0x11无效的设备变量索引
0x12无效的单位代码
0x13设备变量的应用不合理
0x14无效的扩展命令号
0x1c不支持的单位代码
0x20
0x21延迟响应开始
0x22延迟响应进行中
0x40命令不能执行

通讯故障时,最高位bit为1,响应码为:

响应码含义
0xc0接收字节字节奇校验出错
0xa0接收缓冲区数据覆盖错
0x90没有接收到停止位出错
0x88校验字节出错
0x82接收缓冲区溢出

具体含义受不同命令影响,想见基金会资料。

2.2.6.2 设备状态码
状态码含义
0x80设备故障
0x40配置参数改变
0x20设备冷启动
0x08环路电流固定模式
0x04环路电流饱和
0x02设备变量(没有映射到主变量)超限
0x01主变量超出极限

2.2.7 数据

数据部分格式取决于命令的不同,均由不同的命令定义。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值