HART通信协议V17C9C33C132之欧阳体创编.docx
- 文档编号:8839881
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:14
- 大小:39.87KB
HART通信协议V17C9C33C132之欧阳体创编.docx
《HART通信协议V17C9C33C132之欧阳体创编.docx》由会员分享,可在线阅读,更多相关《HART通信协议V17C9C33C132之欧阳体创编.docx(14页珍藏版)》请在冰豆网上搜索。
HART通信协议V17C9C33C132之欧阳体创编
HART通信协议
时间:
2021.02.03
创作:
欧阳体
VER1.6
一.概述
HART(HighwayAddressableRemoteTransducer)协议采用基于Bell202标准的FSK频移键控信号,在低频的4-20mA模拟信号上叠加幅度为0.5mA的音频数字信号进行双向数字通讯,数据传输率为1200bps。
由于FSK信号的平均值为0,不影响传送给控制系统模拟信号的大小,保证了与现有模拟系统的兼容性。
在HART协议通信中主要的变量和控制信息由4-20mA传送,在需要的情况下,另外的测量、过程参数、设备组态、校准、诊断信息通过HART协议访问。
在应用层,HART 规定了一系列命令,按命令方式工作。
它有三类命令,第一类称为通用命令,这是所有设备都理解、执行的命令;第二类称为普通应用命令,所提供的功能可以在许多现场设备(尽管不是全部)中实现;第三类称为设备专用命令,以便于工作在某些设备中实现特殊功能,这类命令既可以在基金会中开放使用,又可以为开发此命令的公司所独有。
二.含义
1、主机(Master):
分为第一主机和第二主机,它能连接在HART网络上,发出命令与从机通讯;
2、从机(FieldDevice):
连接在过程控制现场中,具有测量、计算多种变量功能,并能与主机进行HART通讯的设备;
3、长帧(LongFrame):
地址Address由5字节组成的HART数据帧,所有的HART命令都支持长帧数据帧。
长帧地址各字节含义如下图所示:
制造商ID号(ManufacturerID)由HART基金会分配;
在生产中,同类型设备序列号唯一,并且永不重复。
广播地址使用长帧结构,低38BIT全为0。
厂商指定的设备类型(DeciveType)与制造商ID满足下表要求;
4、短帧(ShortFrame):
地址Address由1字节组成的HART数据帧,短帧只有通用命令Command0能够使用,短帧字节含义如下:
所有的HART从机都支持长、短帧。
5、请求帧(STX):
由主机(如手抄器)向从机(现场设备)发出请求数据命令;
6、应答帧(ACK):
从机回复给主机的数据;
7、前导符(Preamble):
发起命令(数据)传输的设备在传输数据帧前发送的0xFF字符,发送该字符的数量一般为5—20个,该数量可以通过命令来改变;前导符的使用是为了使数据接收端在硬件电路上产生CD载波检测信号,以实现数据通讯的同步。
8、定界符(Delimiter):
表示数据帧传输的开始,指明数据的传输方向、物理层类型,同时它也指定了数据帧的帧类型(长、短帧),其含义内容如下:
定界符Delimiter字节含义
9、地址(Address):
由定界符Delimiter指定为短帧(1字节)或长帧(5字节)两种类型,长、短帧释义如前述;
10、扩展字节(ExpansionBytes):
本公司目前的HART协议版本保留,为0;
11、命令(Command):
功能码,指明一个数据帧的具体实现功能,命令有通用命令、普通应用命令、设备专用命令三大类;
12、数据字节数(BytesCount):
指实际的数据Data的数量;
13、数据(Data):
设置或读取指定从机的参数数据(通信的最终结果);
14、校验字节(CheckByte):
从定界符(Delimiter)到数据(Data)的所有字节的‘异或’值,即纵向校验。
三.HART通讯规范
1、通信帧格式:
由前导符和数据帧构成,各数据域释义如上
通信帧格式
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
处于写保护模式
0x08
1、更新失败2、设置为接近值3、延时响应
0x09
1、低限范围值太大2、不正确的电流模式
0x0a
1、低限范围值太小2、无效的就地锁定
0x0b
1、上限范围值太大2、多从机模式3、无效设备变量代码4、调整超范围5、不能就地锁定
0x0c
1、上限范围值太小2、无效单位代码3、无效的模式选择4、无效的插槽号
0x0d
1、上、下限范围值超标2、计算错误3、无效的命令号
0x0e
1、量程太小2、设置的下限值引起上限值改变而超出传感器极限
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码,拉丁字符每个字母占1个字节;封装格式的ASCII码每字母占1个字节的6位,因此,每4个字母封装在3个字节中,在使用过程中需要打包和解包操作。
2)浮点数:
满足IEEE754标准要求,单精度浮点数用4个字节表示,双精度浮点数用8个字节表示。
不可识别的浮点数用0x7f、0xa0、0x00、0x00表示。
11、设备变量状态(DeviceVariableStatus):
所有需要周期处理的数据(如设备变量和动态变量)都包含一个设备变量状态字节,其内容定义如下:
默认0xc0
设备变量状态字节含义
四.HART应用命令
命令有通用命令、普通应用命令、设备专用命令三大类,通用命令是所有的HART现场设备都必须响应的命令;普通应用命令只被设备部分应用;设备专用命令是生产商根据需要制定的命令。
(一)通用命令
1.Command0:
读唯一标识
1)短帧
请求帧STX:
Delimiter
Address
Expansion
Bytes
Command
Bytes
Count
Data
Check
Byte
0x02
0x00|00xxxxxx
NULL
0
0
NULL
XOR
响应帧ACK:
Delimiter
Address
Expansion
Bytes
Command
Bytes
Count
Data
Check
Byte
正常响应
0x06
0x00|00xxxxxx
NULL
0
19
状态+数据
XOR
异常响应
0x06
0x00|00xxxxxx
NULL
0
2
状态
XOR
注:
状态=通讯状态+设备状态,其含义如前述,以下不再赘述。
2)长帧
请求帧STX:
Delimiter
Address
Expansion
Bytes
Command
Bytes
Count
Data
Check
Byte
0x82
0x00|38bitsID
NULL
0
0
NULL
XOR
响应帧ACK:
Delimiter
Address
Expansion
Bytes
Command
Bytes
Count
Data
Check
Byte
正常响应
0x86
0x00|38bitsID
NULL
0
21
状态+数据
XOR
异常响应
0x86
0x00|38bitsID
NULL
0
2
状态
XOR
正常响应帧数据内容
字节
数据类型
值
说明
可更改
0
Unsigned—8
254
统一固定值
N
1-2
Enum
未定
产品设备类型ID,由厂商定义,HCF登记
N
3
Unsigned—8
>5
主设备到从设备的最少同步前导码数量
N
4
Unsigned—8
0x07
通用命令版本号,版本7
N
5
Unsigned—8
0x01
设备版本水平
N
6
Unsigned—8
0x01
设备软件版本(254和255保留)
N
7
Unsigned—5
Enum
0x01
高5位表示硬件版本号(31保留)
低3位表示物理信号为Bell202电流信号
N
8
Bits
0x08
保留
N
9-11
Unsigned—24
设备ID,同种类型设备的序列号
N
12
Unsigned—8
>5
从设备到主设备的最少同步前导码数量
N
13
Unsigned—8
0x01
最大设备变量数,主设备希望能读取的设备变量的个数。
N
14-15
Unsigned—16
配置改变记数器
N
16
Bits
0
0x01
0x02
扩展设备状态。
0设备正常
0x01设备没有故障但需要维护
0x02设备变量报警状态
N
17-18
Enum
未定
制造商ID,由HCF分配
N
2.Command1:
读主变量
请求帧STX:
Delimiter
Address
Expansion
Bytes
Command
Bytes
Count
Data
Check
Byte
0x82
0x00|38bitsID
NULL
1
0x00
NULL
XOR
响应帧ACK:
Delimiter
Address
Expansion
Bytes
Command
Bytes
Count
Data
Check
Byte
正常响应
0x86
0x00|38bitsID
NULL
1
7
状态+数据
XOR
异常响应
0x86
0x00|38bitsID
NULL
1
2
状态
XOR
正常响应帧数据内容
字节
数据类型
值
说明
可更改
0
Enum
对应的变量单位,见附表1《单位代码》
N
1-4
Float
单精度浮点数表示主变量的值
N
3.Command2:
读环路电流和量程百分比
请求帧STX:
Delimiter
Address
Expansion
Bytes
Command
Bytes
Count
Data
Check
Byte
0x82
0x00|38bitsID
NULL
2
0
NULL
XOR
响应帧ACK:
Delimiter
Address
Expansion
Bytes
Command
Bytes
Count
Data
Check
Byte
正常响应
0x86
0x00|38bitsID
NULL
2
10
状态+数据
XOR
异常响应
0x86
0x00|38bitsID
NULL
2
2
状态
XOR
正常响应帧数据内容
字节
数据类型
值
说明
可更改
0-3
Float
单精度浮点数表示环路电流值mA
N
4-7
Float
单精度浮点数表示主变量占量程的百分比
N
4.Command3:
读动态变量和环路电流
注:
本公司压力变送器只有1个动态变量,即主变量
请求帧STX:
Delimiter
Address
Expansion
Bytes
Command
Bytes
Count
Data
Check
Byte
0x82
0x00|38bitsID
NULL
3
0
NULL
XOR
响应帧ACK:
Delimiter
Address
Expansion
Bytes
Command
Bytes
Count
Data
Check
Byte
正常响应
0x86
0x00|38bitsID
NULL
3
11
状态+数据
XOR
异常响应
0x86
0x00|38bitsID
NULL
3
2
状态
XOR
正常响应帧数据内容
字节
数据类型
值
说明
可更改
0-3
Float
单精度浮点数表示主变量对应环路电流值mA
N
4
Enum
动态变量单位
N
5-8
Float
单精度浮点数表示动态变量的值
N
5.Command6:
设置轮询地址
请求帧STX:
Delimiter
Address
Expansion
Bytes
Command
Bytes
Count
Data
Check
Byte
0x82
0x00|38bitsID
NULL
6
2
数据
XOR
请求帧数据内容
字节
数据类型
值
说明
可更改
0
Unsigned—8
PollingAddr
设置的轮询地址(0~15)
Y
1
Enum
0、1
0=环路电流禁止;1=环路电流允许
Y
响应帧ACK:
Delimiter
Address
Expansion
Bytes
Command
Bytes
Count
Data
Check
Byte
正常响应
0x86
0x00|38bitsID
NULL
6
4
状态+数据
XOR
异常响应
0x86
0x00|38bitsID
NULL
6
2
状态
XOR
正常响应帧数据内容同请求帧
注:
现场设备在制造时就设置轮询地址为0,并且环路电流被允许,这是为了保证HART现场设备能够接到一个只有模拟信号的现场装置。
当轮询地址设置为0时,从设备必须同时工作在环路电流模式(一对一),电流和基本变量值相关联;当轮询地址设置其它值时,从设备必须同时工作在非环路电流模式(一对多),电流设置为能够维持操作的最小值。
6.Command7:
读环路配置
请求帧STX:
Delimiter
Address
Expansion
Bytes
Command
Bytes
Count
Data
Check
Byte
0x82
0x00|38bitsID
NULL
7
0
NULL
XOR
响应帧ACK:
Delimiter
Address
Expansion
Bytes
Command
Bytes
Count
Data
Check
Byte
正常响应
0x86
0x00|38bitsID
NULL
7
4
状态+数据
XOR
异常响应
0x86
0x00|38bitsID
NULL
7
2
状态
XOR
正常响应帧数据内容
字节
数据类型
值
说明
可更改
0
Unsigned—8
PollingAddr
设置的轮询地址
N
1
Enum
0、1
0=环路电流禁止;1=环路电流允许
N
7.Command8:
读动态变量分类
请求帧STX:
Delimiter
Address
Expansion
Bytes
Command
Bytes
Count
Data
Check
Byte
0x82
0x00|38bitsID
NULL
8
0
NULL
XOR
响应帧ACK:
Delimiter
Address
Expansion
Bytes
Command
Bytes
Count
Data
Check
Byte
正常响应
0x86
0x00|38bitsID
NULL
8
3
状态+数据
XOR
异常响应
0x86
0x00|38bitsID
NULL
8
2
状态
XOR
正常响应帧数据内容
时间:
2021.02.03
创作:
欧阳体
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- HART 通信协议 V17C9C33C132 欧阳 创编