1 / 61
文档名称:

HART通信协议.pdf

格式:pdf   大小:2,270KB   页数:61页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

HART通信协议.pdf

上传人:秋江孤影 2023/3/21 文件大小:2.22 MB

下载得到文件列表

HART通信协议.pdf

文档介绍

文档介绍:该【HART通信协议 】是由【秋江孤影】上传分享,文档一共【61】页,该文档可以免费在线阅读,需要了解更多关于【HART通信协议 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:.
HART通信协议
VER

HART(HighwayAddressableRemoteTransducer)协议采用基于Bell202标准的FSK
频移键控信号,在低频的4-20mA模拟信号上叠加幅度为的音频数字信号进行双向数字通讯,
数据传输率为1200bps。由于FSK信号的平均值为0,不影响传送给控制系统模拟信号的大
小,保证了与现有模拟系统的兼容性。在HART协议通信中主要的变量和控制信息由4-20mA
传送,在需要的情况下,另外的测量、过程参数、设备组态、校准、诊断信息通过HART协
议访问。
在应用层,HART规定了一系列命令,按命令方式工作。它有三类命令,第一类称为通
用命令,这是所有设备都理解、执行的命令;第二类称为普通应用命令,所提供的功能可以
在许多现场设备(尽管不是全部)中实现;第三类称为设备专用命令,以便于工作在某些设
备中实现特殊功能,这类命令既可以在基金会中开放使用,又可以为开发此命令的公司所独
有。

1、主机(Master):分为第一主机和第二主机,它能连接在HART网络上,发出命令与从机
通讯;
2、从机(FieldDevice):连接在过程控制现场中,具有测量、计算多种变量功能,并能
与主机进行HART通讯的设备;
3、长帧(LongFrame):地址Address由5字节组成的HART数据帧,所有的HART命令都
支持长帧数据帧。长帧地址各字节含义如下图所示:
11:.
制造商ID号(ManufacturerID)由HART基金会分配;
在生产中,同类型设备序列号唯一,并且永不重复。广播地址使用长帧结构,低38BIT全
为0。
厂商指定的设备类型(DeciveType)与制造商ID满足下表要求;
设备类型代码指定原则
4、短帧(ShortFrame):地址Address由1字节组成的HART数据帧,短帧只有通用命令
Command0能够使用,短帧字节含义如下:所有的HART从机都支持长、短帧。
低6位短帧地址:轮询从机地址
1:从机在突发模式
0:正常模式
主机地址
0:第二主机
1:第一主机
短帧Address字节含义
5、请求帧(STX):由主机(如手抄器)向从机(现场设备)发出请求数据命令;
22:.
6、应答帧(ACK):从机回复给主机的数据;
7、前导符(Preamble):发起命令(数据)传输的设备在传输数据帧前发送的0xFF字符,
发送该字符的数量一般为5—20个,该数量可以通过命令来改变;前导符的使用是为了
使数据接收端在硬件电路上产生CD载波检测信号,以实现数据通讯的同步。
8、定界符(Delimiter):表示数据帧传输的开始,指明数据的传输方向、物理层类型,同
时它也指定了数据帧的帧类型(长、短帧),其含义内容如下:
帧类型(传输方向)
001:突发模式
010:主机向从机请求数据(STX)
110:从机向主机回复数据(ACK)
物理层类型
00:异步(FSK)
01:同步(ACK)
扩展字节数
为00
地址类型
0:短帧1字节(轮询)
1:长帧5字节(唯一地址)
定界符Delimiter字节含义
9、地址(Address):由定界符Delimiter指定为短帧(1字节)或长帧(5字节)两种类
型,长、短帧释义如前述;
10、扩展字节(ExpansionBytes):本公司目前的HART协议版本保留,为0;
11、命令(Command):功能码,指明一个数据帧的具体实现功能,命令有通用命令、普
通应用命令、设备专用命令三大类;
12、数据字节数(BytesCount):指实际的数据Data的数量;
13、数据(Data):设置或读取指定从机的参数数据(通信的最终结果);
14、校验字节(CheckByte):从定界符(Delimiter)到数据(Data)的所有字节的‘异
或’值,即纵向校验。

1、通信帧格式:由前导符和数据帧构成,各数据域释义如上
33:.
前导符数据帧
ExpansionBytesCheck
PreambleDelimiterAddressCommandData
bytesCountByte
+地址
5-20字节
定界符短帧1字节扩展字节命令数据个数数据校验字节
固定为1字节0—3字节1字节1字节n字节1字节
长帧5字节
(0xFF)
通信帧格式
2、通讯速率:1200Bps;
3、通讯信号:Bell202标准的FSK频移键控信号,‘1200Hz’代表数字1,‘2200Hz’代表
数字0;
4、数据格式(11位):1位起始位、8位数据位、1位停止位、1位校验位,字节奇(Odd)
校验;
5、应答数据帧的数据个数(BytesCount)至少为2字节,这两个字节分别为响应码
(ResponseCode)和设备状态码(FieldDeviceStatus);
6、响应码格式:从机回复给主机的命令执行情况代码,当通讯出错时,响应吗最高位
bit7=1,这时设备状态码无实际意义;当bit7=0时,表示通讯正常,余下6bits表示
命令执行情况的响应。
7、通讯正常时响应码(bit7=0,低6bits):
*具体含义因不同命令而定,可查看相关的HART命令资料。
响应代码响应码含义响应代码响应码含义
0x00执行成功0x02错误的命令
0x03设置参数太大0x04设置参数太少
0x05接收的数据太少0x06专用命令错
0x07处于写保护模式0x081、更新失败2、设置为接近值3、延时响应
0x091、低限范围值太大2、不正确的电流模式0x0a1、低限范围值太小2、无效的就地锁定
0x0b1、上限范围值太大2、多从机模式3、无效设0x0c1、上限范围值太小2、无效单位代码3、无效
备变量代码4、调整超范围5、不能就地锁定的模式选择4、无效的插槽号
0x0d1、上、下限范围值超标2、计算错误3、无效0x0e1、量程太小2、设置的下限值引起上限值改变
的命令号而超出传感器极限
44:.
0x0f无效的模拟通道号0x10访问受限
0x11无效的设备变量索引0x12无效的单位代码
0x13设备变量的应用不合理0x14无效的扩展命令号
0x1c不支持的单位代码0x20忙
0x21延迟响应开始0x22延迟响应进行中
0x40命令不能执行
8、通讯出错时响应代码(bit7=1)含义如下:
响应代码通讯出错含义
0xc0接收字节字节奇校验出错
0xa0接收缓冲区数据覆盖错
0x90没有接收到停止位出错
0x88校验字节出错
0x82接收缓冲区溢出
9、设备状态码:含义如下
响应代码设备状态含义
0x80设备故障
0x40配置参数改变
0x20设备冷启动
0x08环路电流固定模式
0x04环路电流饱和
0x02设备变量(没有映射到主变量)超限
0x01主变量超出极限
10、数据类型:HART通讯协议支持以下类型的数据:字符串Str、日期Date、单或双
精度浮点数Float、无符号整型数Unsigned、有符号整型数Signed、联合体Enum或位
Bit。数据传输顺序:MSB至LSB。
1)字符串:字符串支持标准的拉丁字母Latin和封装格式Packed的ASCII码,拉丁字符每
55:.

个字母占1个字节;封装格式的ASCII码每字母占1个字节的6位,因此,每4个字母封装
在3个字节中,在使用过程中需要打包和解包操作。
2)浮点数:满足IEEE754标准要求,单精度浮点数用4个字节表示,双精度浮点数用8个字节
表示。
1—bit8—bit23—bit
符号位指数小数
单精度浮点数格式
不可识别的浮点数用0x7f、0xa0、0x00、0x00表示。
11、设备变量状态(DeviceVariableStatus):所有需要周期处理的数据(如设备变
量和动态变量)都包含一个设备变量状态字节,其内容定义如下:默认0xc0
设备变量状态字节含义
66:.

命令有通用命令、普通应用命令、设备专用命令三大类,通用命令是所有的HART现场设备
都必须响应的命令;普通应用命令只被设备部分应用;设备专用命令是生产商根据需要制定
的命令。
(一)通用命令
:读唯一标识
1)短帧
请求帧STX:
DelimiterAddressExpansionCommandBytesDataCheck
BytesCountByte
0x020x00|00xxxxxxNULL00NULLXOR
响应帧ACK:
DelimiterAddressExpansionCommandBytesDataCheck
BytesCountByte
正常响应0x060x00|00xxxxxxNULL019状态+数据XOR
异常响应0x060x00|00xxxxxxNULL02状态XOR
注:状态=通讯状态+设备状态,其含义如前述,以下不再赘述。
2)长帧
请求帧STX:
DelimiterAddressExpansionCommandBytesDataCheck
BytesCountByte
0x820x00|38bitsIDNULL00NULLXOR
响应帧ACK:
DelimiterAddressExpansionCommandBytesDataCheck
77:.
BytesCountByte
正常响应0x860x00|38bitsIDNULL021状态+数据XOR
异常响应0x860x00|38bitsIDNULL02状态XOR
正常响应帧数据内容
字节数据类型值说明可更改
0Unsigned—8254统一固定值N
1-2Enum未定产品设备类型ID,由厂商定义,HCF登记N
3Unsigned—8>5主设备到从设备的最少同步前导码数量N
4Unsigned—80x07通用命令版本号,版本7N
5Unsigned—80x01设备版本水平N
6Unsigned—80x01设备软件版本(254和255保留)N
7Unsigned—50x01高5位表示硬件版本号(31保留)N
Enum低3位表示物理信号为Bell202电流信号
8Bits0x08保留N
9-11Unsigned—24设备ID,同种类型设备的序列号N
12Unsigned—8>5从设备到主设备的最少同步前导码数量N
13Unsigned—80x01最大设备变量数,主设备希望能读取的设备变量的N
个数。
14-15Unsigned—16配置改变记数器N
16Bits扩展设备状态。N
0
0设备正常
0x01
0x01设备没有故障但需要维护
0x02
0x02设备变量报警状态
17-18Enum未定制造商ID,由HCF分配N
88:.
:读主变量
请求帧STX:
DelimiterAddressExpansionCommandBytesDataCheck
BytesCountByte
0x820x00|38bitsIDNULL10x00NULLXOR
响应帧ACK:
DelimiterAddressExpansionCommandBytesDataCheck
BytesCountByte
正常响应0x860x00|38bitsIDNULL17状态+数据XOR
异常响应0x860x00|38bitsIDNULL12状态XOR
正常响应帧数据内容
字节数据类型值说明可更改
0Enum对应的变量单位,见附表1《单位代码》N
1-4Float单精度浮点数表示主变量的值N
:读环路电流和量程百分比
请求帧STX:
DelimiterAddressExpansionCommandBytesDataCheck
BytesCountByte
0x820x00|38bitsIDNULL20NULLXOR
响应帧ACK:
DelimiterAddressExpansionCommandBytesDataCheck
BytesCountByte
正常响应0x860x00|38bitsIDNULL210状态+数据XOR
异常响应0x860x00|38bitsIDNULL22状态XOR
正常响应帧数据内容
99:.
字节数据类型值说明可更改
0-3Float单精度浮点数表示环路电流值mAN
4-7Float单精度浮点数表示主变量占量程的百分比N
:读动态变量和环路电流
注:本公司压力变送器只有1个动态变量,即主变量
请求帧STX:
DelimiterAddressExpansionCommandBytesDataCheck
BytesCountByte
0x820x00|38bitsIDNULL30NULLXOR
响应帧ACK:
DelimiterAddressExpansionCommandBytesDataCheck
BytesCountByte
正常响应0x860x00|38bitsIDNULL311状态+数据XOR
异常响应0x860x00|38bitsIDNULL32状态XOR
正常响应帧数据内容
字节数据类型值说明可更改
0-3Float单精度浮点数表示主变量对应环路电流值mAN
4Enum动态变量单位N
5-8Float单精度浮点数表示动态变量的值N
:设置轮询地址
请求帧STX:
DelimiterAddressExpansionCommandBytesDataCheck
BytesCountByte
0x820x00|38bitsIDNULL62数据XOR
请求帧数据内容
1010:.
字节数据类型值说明可更改
0Unsigned—8PollingAddr设置的轮询地址(0~15)Y
1Enum0、10=环路电流禁止;1=环路电流允许Y
响应帧ACK:
DelimiterAddressExpansionCommandBytesDataCheck
BytesCountByte
正常响应0x860x00|38bitsIDNULL64状态+数据XOR
异常响应0x860x00|38bitsIDNULL62状态XOR
正常响应帧数据内容同请求帧
注:现场设备在制造时就设置轮询地址为0,并且环路电流被允许,这是为了保证HART现
场设备能够接到一个只有模拟信号的现场装置。当轮询地址设置为0时,从设备必须同
时工作在环路电流模式(一对一),电流和基本变量值相关联;当轮询地址设置其它值
时,从设备必须同时工作在非环路电流模式(一对多),电流设置为能够维持操作的最
小值。
:读环路配置
请求帧STX:
DelimiterAddressExpansionCommandBytesDataCheck
BytesCountByte
0x820x00|38bitsIDNULL70NULLXOR
响应帧ACK:
DelimiterAddressExpansionCommandBytesDataCheck
BytesCountByte
正常响应0x860x00|38bitsIDNULL74状态+数据XOR
异常响应0x860x00|38bitsIDNULL72状态XOR
正常响应帧数据内容
1111:.
字节数据类型值说明可更改
0Unsigned—8PollingAddr设置的轮询地址N
1Enum0、10=环路电流禁止;1=环路电流允许N
:读动态变量分类
请求帧STX:
DelimiterAddressExpansionCommandBytesDataCheck
BytesCountByte
0x820x00|38bitsIDNULL80NULLXOR
响应帧ACK:
DelimiterAddressExpansionCommandBytesDataCheck
BytesCountByte
正常响应0x860x00|38bitsIDNULL83状态+数据XOR
异常响应0x860x00|38bitsIDNULL82状态XOR
正常响应帧数据内容
字节数据类型值说明可更改
0Enum65(0x41)动态变量分类(压力类型)N
:读设备变量和状态
通过Command9,最多可读取4个设备变量。分别是:
第1变量:压力值(主变量)
第2变量:电流值
第3变量:百分比值
第4变量:温度值
请求帧STX:
DelimiterAddressExpansionCommandBytesDataCheck
1212:.
BytesCountByte
0x820x00|38bitsIDNULL91~40~3XOR
响应帧ACK:
DelimiterAddressExpansionCommandBytesDataCheck
BytesCountByte
正常响应0x860x00|38bitsIDNULL99-33状态+数据XOR
异常响应0x860x00|38bitsIDNULL92状态XOR
正常响应帧数据内容
字节数据类型值说明可更改
0Bits0x00扩展设备状态N
1Unsigned-80x00设备变量代码N
2Enum0x41动态变量分类N
3Enum单位,见附表1《单位代码》N
4-7Float单精度浮点数表示主变量的值N
8Enum0xc0设备变量状态(变量正常、没有限制)N
9Unsigned-80x00设备变量代码N
10Enum0x41动态变量分类N
11Enum单位,见附表1《单位代码》N
12-15Float单精度浮点数表示主变量的值N
16Enum0xc0设备变量状态(变量正常、没有限制)N
17Unsigned-80x00设备变量代码N
18Enum0x41动态变量分类N
19Enum单位,见附表1《单位代码》N
1313:.
20-23Float单精度浮点数表示主变量的值N
24Enum0xc0设备变量状态(变量正常、没有限制)N
25Unsigned-80x00设备变量代码N
26Enum0x41动态变量分类N
27Enum单位,见附表1《单位代码》N
28-31Float单精度浮点数表示主变量的值N
32Enum0xc0设备变量状态(变量正常、没有限制)N
注:当试图要读取的设备变量(最多4个变量,变量个数任意读取,读取第二变量必须读取第
一(主)变量,读第三变量必须读取第一、二变量)
:以短标签方式读唯一标识
请求帧STX:
DelimiterAddressExpansionCommandBytesDataCheck
BytesCountByte
0x820x00|38bitsIDNULL116TagXOR
响应帧数据内容同Command0
:读信息
请求帧STX:
DelimiterAddressExpansionCommandBytesDataCheck
BytesCountByte
0x820x00|38bitsIDNULL120NULLXOR
响应帧ACK:
1414:.
DelimiterAddressExpansionCommandBytesDataCheck
BytesCountByte
正常响应0x860x00|38bitsIDNULL1226状态+数据XOR
异常响应0x860x00|38bitsIDNULL122状态XOR
正常响应帧数据内容
字节数据类型值说明可更改
0-23PackedMessage设备包含的信息(Packed格式)N
:读短标签、设备描述符和日期
请求帧STX:
DelimiterAddressExpansionCommandBytesDataCheck
BytesCountByte
0x820x00|38bitsIDNULL130NULLXOR
响应帧ACK:
DelimiterAddressExpansionCommandBytesDataCheck
BytesCountByte
正常响应0x860x00|38bitsIDNULL1323状态+数据XOR
异常响应0x860x00|38bitsIDNULL132状态XOR
正常响应帧数据内容
字节数据类型值说明可更改
0-5PackedTag短标签N
6-17PackedDescriptor设备描述N
18-20DateDateCode日期N
:读主变量传感器信息
传感器序列号、极限/最小量程单位代码、传感器上限、传感器下限、主变量最小量程
1515:.
请求帧STX:
DelimiterAddressExpansionCommandBytesDataCheck
BytesCountByte
0x820x00|38bitsIDNULL140NULLXOR
响应帧ACK:
DelimiterAddressExpansionCommandBytesDataCheck
BytesCountByte
正常响应0x860x00|38bitsIDNULL1418状态+数据XOR
异常响应0x860x00|38bitsIDNULL142状态XOR
正常响应帧数据内容
字节数据类型值说明可更改
0-2Unsigned—24传感器序列号N
3Enum主变量单位,见附表1《单位代码》N
4-7Float传感器上限值N
8-11Float传感器下限值N
12-15Float传感器最小量程N
:读设备信息
报警码、传感器功能码、主变量单位、主变量上下限值、阻尼、写保护、产品发
行人、是否有模拟信号连接在通道上
请求帧STX:
DelimiterAddressExpansionCommandBytesDataCheck
BytesCountByte
0x820x00|38bitsIDNULL150NULLXOR
响应帧ACK:
DelimiterAddressExpansionCommandBytesDataCheck
1616:.
BytesCountByte
正常响应0x860x00|38bitsIDNULL1520状态+数据XOR
异常响应0x860x00|38bitsIDNULL152状态XOR
正常响应帧数据内容
字节数据类型值说明可更改
0Enum0xef主变量报警选择码(保持最后输出值)N
1Enum主变量传输特性N
0x00
0x00:线性输出
0x01
0x01:平方根输出
2Enum主变量单位,见附表1《单位代码》N
3-6Float主变量上限值N
7-10Float主变量下限值N
11-14Float主变量阻尼(单位:秒)N
15Enum写保护,0=没有写保护;1=写保护;251=没有N
写保护功能
16Enum生产商标志码(同制造商ID)N
17Bits0x01如果该位为1则这个现场设备有一个ADC连接N
这个通道
:读最终装配号
请求帧STX:
DelimiterAddressExpansionCommandBytesDataCheck
BytesCountByte
0x820x00|38bitsIDNULL160NULLXOR
响应帧ACK:
1717:.
DelimiterAddressExpansionCommandBytesDataCheck
BytesCountByte
正常响应0x860x00|38bitsIDNULL165状态+数据XOR
异常响应0x860x00|38bitsIDNULL162状态XOR
正常响应帧数据内容
字节数据类型值说明可更改
0-2Unsigned—24装配号指定设备材料和电子构成N
:写信息
请求帧STX:
DelimiterAddressExpansionCommandBytesDataCheck
BytesCountByte
0x820x00|38bitsIDNULL1724数据XOR
请求帧数据内容
字节数据类型值说明可更改
0-23Packed写入的信息内容Y
响应帧ACK:
DelimiterAddressExpansionCommandBytesDataCheck
BytesCountByte
正常响应0x860x00|38bitsIDNULL1726状态+数据XOR
异常响应0x860x00|38bitsIDNULL172状态XOR
正常响应帧数据内容同响应帧
:写短标签、设备描述符和日期
请求帧STX:
DelimiterAddressExpansionCommandBytesDataCheck
1818:.
BytesCountByte
0x820x00|38bitsIDNULL1824数据XOR
请求帧数据内容
字节数据类型值说明可更改
0-5PackedTag短标签Y
6-17Packed设备描述符Y
18-20Unsigned-24日期Y
响应帧ACK:
DelimiterAddressExpansionCommandBytesDataCheck
BytesCountByte
正常响应0x860x00|38bitsIDNULL1826状态+数据XOR
异常响应0x860x00|38bitsIDNULL182状态XOR
正常响应帧数据内容同响应帧