整理Hart协议通讯基础知识.docx
- 文档编号:28839671
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:25
- 大小:45.84KB
整理Hart协议通讯基础知识.docx
《整理Hart协议通讯基础知识.docx》由会员分享,可在线阅读,更多相关《整理Hart协议通讯基础知识.docx(25页珍藏版)》请在冰豆网上搜索。
整理Hart协议通讯基础知识
现代工业生产中存在着多种不同的主机和现场设备,要想很好地使用他们,完善的通讯协议是必须的。
HART协议最初是由美国Rosemount公司开发,已应用了多年。
HART协议使用FSK技术,在4~20mA信号过程量上叠加一个频率信号,成功地把模拟信号和数字信号双向同时通讯,而不互相干扰。
HART协议参照了国际标准化组织的开放性互连模型,使用OSI标准的物理层、数据链路层、应用层。
HART协议规定了传输的物理形式、消息结构、数据格式和一系列操作命令,是一种主从协议。
当通讯模式为“问答式”的时候,一个现场设备只做出被要求的应答。
HART协议允许系统中存在2个主机(比如说,一个用于系统控制,另一个用于HART通信的手操仪),如果不需要模拟信号,多点系统中的一对电缆线上最多可以连接15个从设备。
物理层
附件:
您所在的用户组无法下载或查看附件物理层规定了信号的传输方法、传输介质。
采用Bell202标准的FSK频移键控信号,在低频的4~20mA模拟信号上叠加一个频率数字信号进行双向数字通信。
数字信号的幅度为0.5mA,数据传输率为1200bps,1200Hz代表逻辑“1”,2200Hz代表逻辑“0”。
数字信号波形如上图所示。
数据链路层数据链路层规定HART协议帧的格式,可寻址范围0~15,“0”时,处于4~20mA及数字信号点对点模式,现场仪表与两个数字通信主设备(也称作通信设备或主设备)之间采用特定的串行通信,主设备包括PC机或控制室系统和手持通信器。
单站操作中,主变量(过程变量)可以以模拟形式输出,也可以以数字通信方式读出,以数字方式读出时,轮询地址始终为0。
也就是说,单站模式时数字信号和4~20mA模拟信号同时有效。
“1~15”处于全数字通信状态,工作在点对多点模式,通信模式有“问答”式、“突发”式(点对点、自动连续地发送信息)。
按问答方式工作时的数据更新速率为2~3次/s,按突发方式工作时的数据更新速率为3~4次/s。
在本质安全要求下,只使用一个电源,至多能连接15台现场仪表,每个现场设备可有256个变量,每个信息最大可包含4个变量。
这就是所谓的多点(多站)操作模式。
这种工作方式尤其适用于远程监控,如管道系统和油罐储存场地。
采用多点模式,4~20mA的模拟输出信号不再有效(输出设在4mA使功耗最小,主要是为变送器供电,各个现场装置并联连接),系统以数字通信方式依次读取并联到一对传输线上的多台现场仪表的测量值(或其它数据)。
如果以这种方式构成控制系统,可以显著地降低现场布线的费用和减少主设备输入接口电路,这对于控制系统有重要价值。
HART协议根据冗余检错码信息,采用自动重复请求发送机制,消除由于线路噪声或其他干扰引起的数据误码,实现数据无差错传送。
能利用总线供电,可满足本质安全防爆要求。
HART协议信息帧的格式如下图所示。
HART协议的帧格式以8位为一个字节进行编码,对每个字节加上一个起始位、一个奇偶校验位和一个停止位以串行方式进行传输。
通常采用UART(通用异步接收/发送器)来完成字节的传输。
由于数据的有无和长短不恒定,所以HART数据的长度不能超过25个字节。
消息结构
如下所示,一条消息包括源地址、目的地址和一个校验位。
每一个应答消息中包括现场设备状态,用于确保持续通讯的顺畅进行。
数据位可有可无,视具体情况而定。
一般每秒种可以传输2~3条消息。
PREAMBLESTARTADDRCOMBCNTSTATUSDATAPARITY序文定界符地址命令号数据长度响应码数据字节奇偶校验
HART5.0以前版本的设备一般采用“短结构”,单一的现场设备如果只利用4~20mA电流信号进行测量时,从设备的地址都是0;否则,对于多设备而言,从设备的地址是从1~15,这种短结构的地址采用“随选”的方法,随机分配1~15中的一个。
HART5.0版本推出了“长结构”,这种格式的从设备地址具有独一无二性,如同每个网卡中物理地址一样,全世界范围内都没有重复,一般占5个地址字节中的38位。
这38位地址信息包含了生产厂家的代码、设备型号码和设备识别码。
这种格式减少了误传输和误接收的可能性。
现在大多数主机设备既能支持长结构又兼容短结构,当从机的应答信号中没有“唯一”标识码时,HART5.0及其以上的版本提供的0号命令,就可以用于短帧中的设备地址识别。
也就是说,主机将根据应答信号中是否具有“惟一”标识码来决定结构格式为“长”还是“短”。
一般消息帧的组成,其中:
(1)PREAMBLE 导言字节,一般是5~20个FF十六进制字节。
他实际上是同步信号,各通讯设备可以据此略做调整,保证信息的同步。
在开始通讯的时候,使用的是20个FF导言,从机应答0信号时将告之主机他“希望”接收几个字节的导言,另外主机也可以用59号命令告诉从机应答时应用几位导言。
(2)START 起始字节,他将告之使用的结构为“长”还是“短”、消息源、是否是“突发”模式消息。
主机到从机为短结构时,起始位为02,长帧时为82。
从机到主机的短结构值为06,长结构值为86。
而为“突发”模式的短结构值为01,长结构为81。
一般设备进行通讯接收到2个FF字节后,就将侦听起始位。
(3)ADDR 地址字节,他包含了主机地址和从机地址,如前所述,短结构中占1字节,长结构中占5字节。
无论长结构还是短结构,因为HART协议中允许2个主机存在,所以我们用首字节的最高位来进行区分,值为1表示第一主机地址,第二主机用0表示。
“突发”模式是特例,0,1值将交替出现,也就是说,在该模式下,赋予2个主机的机会均等。
次高位为1表示为“突发”模式,短结构用首字节的0~4位表示值为0~15的从机地址,第5,6位赋0;而长结构用后6位表示从机的生产厂商的代码,第2个字节表示从机设备型号代码,后3~5个字节表示从机的设备序列号,构成“唯一”标志码。
MA主机地址
BM突发模式
0
0
SA从
SA机
SA地
SA址
短帧地址结构另外,长结构的低38位如果都是0的话表示的是广播地址,即消息发送给所有的设备。
(4)COM 命令字节,他的范围为253个,用HEX的0~FD表示。
31,127,254,255为预留值。
(5)BCNT 数据总长度,他的值表示的是BCNT下一个字节到最后(不包括校验字节)的字节数。
接收设备用他可以鉴别出校验字节,也可以知道消息的结束。
因为规定数据最多为25字节,所以他的值是从0~27。
(6)STATUS 状态字节,他也叫做“响应码”,顾名思义,他只存在于从机响应主机消息的时候,用2字节表示。
他将报告通讯中的错误、接收命令的状态(如:
设备忙、无法识别命令等)和从机的操作状态。
如果我们在通讯过程中发现了错误,首字节的最高位(第7位)将置1,其余的7位将汇报出错误的细节,而第2个字节全为0。
否则,当首字节的最高位为0时,表示通讯正常,其余的7位表示命令响应情况,第2个字节表示场设备状态的信息。
UART发现的通讯错误一般有:
奇偶校验、溢出和结构错误等。
命令响应码可以有128个,表示错误和警告,他们可以是单一的意义,也可以有多种意义,我们通过特殊命令进行定义、规定。
现场设备状态信息用来表示故障和非正常操作模式。
(7)DATA 数据字节,首先我想说明的是并非所有的命令和响应都包含数据字节,他最多不超过25字节(随着通讯速度的提高,正在要求放宽这一标准)。
数据的形式可以是无符号的整数(可以是8,16,24,32b),浮点数(用IEEE754单精浮点格式)或ASCII字符串,还有预先制定的单位数据列表。
具体的数据个数根据不同的命令而定。
(8)CHK 奇偶校验,方式是纵向奇偶校验,从起始字节开始到奇偶校验前一个字节为止。
另外,每一个字节都有1位的校验位,这两者的结合可以检测出3位的突发错误。
应用层操作命令处于应用层,包括通用命令、普通命令和特殊命令。
通用命令通用命令是所有现场装置都配备的包括1)读制造商码和设备类型2)读一次变量PV和单位3)读当前输出和百分量程4)读取多达4个预先定义的动态变量5)读或写8字符标签16字符描述符日期6)读或写32字符信息7)读变送器量程单位阻尼时间常数8)读传感器编号和极限9)读或写最终安装数10)写登录地址常用命令常用命令提供的功能是大部分但不是全部现场装置都配备的包括1)读4个动态变量之一2)写阻尼时间常数3)写变送器量程4)校准置零置间隔5)设置固定的输出电流6)执行自检7)执行主站复位8)调整PV零点9)写PV单位10)调整DAC零点于增益11)写变换函数平方根/线性12)写传感器编号13)读或写动态变量用途专用命令专用命令提供分别对特殊的现场装置适用的功能包括1)读或写低流量截止值2)起动停止或取消累积器3)读或写密度校准系数4)选择一次变量5)读或写结构材料信息6)调整传感器校准值通用命令的范围从0~30:
0,11:
设备识别(厂商、设备类型、版本)1,2,3:
读测量值6:
置随选地址12,13,17,18:
读、写用户输入文本信息14,15:
读设备信息(传感器序列号,传感限,报警操作,范围,传输结构)16,19:
读、写最终装配号普通命令是从32到126,提供了大多数设备的功能命令。
普通命令中的123和126号命令并非“公共”的,他们专用于生产厂家在生产设备时输入设备的特殊信息,一般用户是不会改动的,像设备识别号之类。
也可以用于直接读、写存储器。
33,61,110:
读测量值34~37,44,47:
设置操作变量(范围、时限、PV值、传输功能)38:
复位“结构变化”标志39:
EPROM控制40~42:
对话功能(固定电流模式、自测、复位)43,45,46:
模拟输入、输出整流48:
读附设备的状态49:
写传感器序列号50~56:
用传输变量57,58:
单元信息(标志、描述、数据)59:
写所需导言号60,62~70:
使用复合模拟输出107~109:
突发模式控制特殊命令的范围是从128~253,他提供给现场设备专用的功能。
早先的设备特殊命令常常将设备型号码作为数据中的第1个字节,以保证命令传输给正确的设备。
在HART5.0版本之后,由于惟一标识码的使用,就省略掉了这步骤。
用户若要使用不同设备的特殊命令时可以参照厂家提供的设备文档。
常用重要命令介绍
0,11:
用于识别现场设备。
我们知道无论采用长结构还是短结构都可以标识现场设备,应答0号命令的信息中就包含了对不同设备的标识;然后,主机建立不同的标志,为随后的长结构命令做准备。
在HART4.0版本及以前,传输类型码分为2字节:
一个是生产厂商代码,另一个是设备类型代码。
而两个字节还可以节略。
到了HART5.0版本就必须使用扩充的代码表示设备信息,还用ID号代替了最终流水线号。
一个主机通常以0号命令开始通讯,赋予随选地址0,然后扫描1~15地址,看谁期待操作,显然由于HART5.0版本后的设备,主机可以使用11号命令,再带一个全0的广播地址,外加命令中的标志作为数据,等待着具有相同标志的从机响应,而应答的11号命令等同于0号命令。
2,3:
用于读取不同形式中的测量变量。
命令2和3中有以mA为单位的电流值,电流值只有在设定输出范围内才可以作为主参量PV,而在其他时候,像复用模式、输出量可变、饱和或设备错误都不能如此使用。
尽管PV和其他动态变量不受设定输出范围的限制,但是却必须受限于传感设备。
6:
用于随选地址的设定。
设定为0,该设备就在点到点的模式工作,产生模拟输出信号;设61定为1~15,设备就工作在多点模式中,输出电流值固定为4mA。
12,19:
用于读、写一系列设备信息。
HART4.0版本及以前使用4号和5号命令实现此功能。
数据格式
如果传送的命令不成功,那么响应中就不包含数据。
然而响应值是从现场设备内存中取出的,是一个近似值。
数据所占的字节和格式视不同的命令而定,具体的规则可以查询相关的资料。
看实例了解HART消息结构例1:
主机到从机
FF
FF
FF
FF
FF
82
A6
06
BC
61
4E
01
00
B0
上面是主机到从机发送的一条消息。
前5个字节值都为FF,显然他是导言字节。
接着的82起始字节,表示主机到从机发出的长结构的消息。
后5个字节“A6,06,BC,61,4E”是地址字节化为二进制表示如下:
A606BC614E1010011000000110101111000110000101001110
可见首字节A6的最高位为1表示主机,次高位为0表示非突发模式,后面的38b表示设备的惟一标号:
“100110”是生产厂家代码,值为38,是Rosemount公司的代码;后一字节06是设备型号代码,06代表的型号是3051C;后面的3个字节是设备识别号,本例中的值为12345678;再接下来的01是命令字节,表示1号命令,即读取PV值后面的00是表示数据的长度;本例中无数据,值为0;最后是校验字节B0;例2:
从机到主机
FFFFFFFFFF
86
A606BC614E
01
07
0000
0640B00000
45
上面表示的是从机到主机的一条消息。
本例大部分与例1相似,不同的是数据字节不再为0,其中的06表示单位PSI;后面的4个字节是用浮点数表示的值,为5.5。
并且由于本例是由从机到主机的应答消息,所以存在着状态位,即本例中的“0000”,表示“OK”。
例3:
突发模式
FFFFFFFFFF
81
530304E6D7
03
1A
0060
413FA000
27
413FA000
39
42476000
06
BF066000
39
419500
00
D4
上面是突发模式发出的一条消息。
第1个字节81表示突发的长结构模式,与前例中相似的地方我们不再介绍。
注意到状态字节“0060”后的字节“413FA000”,他表示的是当前的电流值,计算后是11.9766;后面的27表示单位mA,像后面的39表示“%”一样。
数据字节中的“42476000”,“BF066000”,“41950000”分别表示“SV”,“TV”,“FV”表示方法与PV相同。
经过解释后的消息可以表示为:
“LBTXS/RdAllPv/026/0060/11.9766/mA/11.9766/%/49.8438/psi/-0.524902/%/18.625/D4”。
HART协议适配器的应用请将检测好的HART协议适配器按照说明连接好,并确定适配器处于工作状态。
按照说明启动串口调试程序或者由上位机发送相关的命令进行数据的转换,客户端可以将采集的数据进行分析,计算得到有用的数值。
在这里我们以K-TEK公司型号为AT100的HART协议的液位计为例进行详细说明。
命令及命令的格式标准的HART协议命令格式如下表所示读设备序号命令格式说明如下:
起始位
序文
定界符
地址
命令
数据长度
校验位
结束符
由于要确保待发的命令完整的发送,我们特意在标准命令格式序文前加了一个起始位“23”和在校验位后加了一个结束符“40”。
例如:
发送读取设备序号命令23FFFFFFFFFF028000008240命令注解如下表所示:
起始位
23
序文
FFFFFFFFFF
定界符
02
地址
80
命令
00
数据长度
00
校验位
82
结束符
40
返回的命令格式如下表所示:
序文
定界符
地址
命令
数据长度
数据
校验位
返回的数据为:
FFFFFFFFFF0680000E0040FE507F0605010108006B733A30返回数据命令注解如下表所示:
序文
ffffffffff
定界符
06
地址
80
命令
00
数据长度
0E
数据
0040FE507F0605010108006B733A
校验位
30
返回数据6B733A就是这台设备的序号。
起始位和结束符只在发送命令时做确定命令的完整发送,它不改变命令本身,更不会影响数据的转换。
发送读取液位计动态变量命令命令格式说明如下表所示:
(AT100)82907F固定
6B733A设备序号
03为命令
返回的数据为:
FFFFFFFFFF86907F6B733A0315004040D4E0002D3E091C2D2D3E92E39E2041D4B2B801返回数据命令注解如下表所示:
电流
40D4E000
液位
3E091C2D
界面
3E92E39E
温度
41D4B2B8
返回数据计算经过反复实验和推理论证而推导出了基于HART协议数据的计算公式。
下面以电流和液位为例加以说明。
电流值的计算:
dlH=((parseddataHart[13]+parseddataHart[12]*256.0+(parseddataHart[11]&127)*65536.0))/8388608.0+1;dlD=(((parseddataHart[10]*1)&127)*256+((parseddataHart[11]*1)&128))/128-127;液位值的计算:
ywH=((parseddataHart[18]+parseddataHart[17]*256.0+(parseddataHart[16]&127)*65536.0))/8388608.0+1;ywD=(((parseddataHart[15]*1)&127)*256+((parseddataHart[16]*1)&128))/128-127;启动串口调试程序或者由上位机发送相关的命令进行数据转换,客户端可以将采集的数据进行分析,计算得到有用的数值。
将计算所得的数据送到相应的存储区,客户可以根据自己的需要来处理这些数据。
也可以根据自己的需要来提取有用的数据量,具体的读取命令,请参阅相关的技术书籍或向HART仪表厂商和经销商获取仪表专用协议。
操作系统及上位机组态软件只要支持RS-232便可以轻松实现与HART仪表的通讯。
此HART协议适配器的转换是全透明的,它只处理HART信号与串口信号的互相转换问题,工作在应用层,只针对符合HART协议的产品,与具体的供货商无关,读取命令和数据也没有任何关系及影响。
HART协议简介
2008-02-1315:
35
//或许很多都人都不会接触到这个应用,即便我在大学时已经学得很多测控方面的东西,但是居然在图书馆和网上、论坛上一次都没遇见过这个技术,如果不是因为传感器(有些传感器有提到支持HART)的选型我可能还得过很长时间才会知道这个技术呢!
!
!
!
!
其外,我倒是很想把日常的基础技术资料放到这里供各位网友学习的,可惜这里贴图不方便又有字数限制............ 我都好久没贴东西上来了或者说没成功地贴上我想贴的东西!
!
可惜可惜......
//********************************************************************rufeng******************
HART协议简介
HART(HighwayAddressableRemoteTransducer),可寻址远程传感器高速通道的开放通信协议,是美国Rosemen公司于1985年推出的一种用于现场智能仪表和控制室设备之间的通信协议。
HART装置提供具有相对低的带宽,适度响应时间的通信,经过10多年的发展,HART技术在国外已经十分成熟,并已成为全球智能仪表的工业标准。
HART协议采用基于Bell202标准的FSK频移键控信号,在低频的4mA~20mA模拟信号上叠加幅度为0.5mA的音频数字信号进行双向数字通讯,数据传输率为1.2Mbps。
由于FSK信号的平均值为0,不影响传送给控制系统模拟信号的大小,保证了与现有模拟系统的兼容性。
在HART协议通信中,主要的变量和控制信息由4mA~20mA传送,在需要的情况下,另外的测量、过程参数、设备组态、校准、诊断信息通过HART协议访问。
HART通信采用的是半双工的通信方式。
HART协议参考ISO/OSI(开放系统互连模型),采用了它的简化三层模型结构,即第一层物理层,第二层数据链路层和第七层应用层。
第一层:
物理层。
规定了信号的传输方法、传输介质,为了实现模拟通信和数字通信同时进行而又互不干扰,HART协议采用频移键控技术FSK,即在4mA~20mA模拟信号上迭加一个频率信号,频率信号采用Be11202国际标准,数字信号的传送波特率设定为1200bps,1200Hz代表逻辑“0”,2200Hz代表逻辑“1”,信号幅值0.5A,如图1所示。
通信介质的选择视传输距离长短而定。
通常采用双绞同轴电缆作为传输介质时,最大传输距离可达到1500m。
线路总阻抗应在230Ω~1100Ω。
第二层:
数据链路层。
规定了HART帧的格式,实现建立、维护、终结链路通讯功能。
HART协议根据冗余检错码信息,采用自动重复请求发送机制,消除由于线路噪音或其他干扰引起的数据通讯出错,实现通讯数据无差错传送。
现场仪表要执行HART指令,操作数必须合乎指定的大小。
每个独立的字符包括1个起始位、8个数据位、1个奇偶校验位和一个停止位。
由于数据的有无和长短并不恒定,所以HART数据的长度也是不一样的,最长的HART数据包含25个字节。
第三层:
应用层。
为HART命令集,用于实现HART指令。
命令分为三类,即通用命令、普通命令和专用命令。
二、现场仪表HART协议远程通信硬件设计
某现场仪表的HART协议部分主要完成数字信号到模拟电流信号的转换,并实现对主要变量和测量、过程参数、设备组态、校准及诊断信息的访问。
图2是HART协议通信模块结构设计框图。
HART通信部分主要由D/A转换和Bell202MODEM及其附属电路来实现。
其中,D/A变换作用是直接将数字信号转换成4mA~20mA电流输出,以输出主要的变量。
Bell202MODEM及其附属电路的作用是对叠加在4mA~20mA环路上的信号进行带通滤波放大后,HART通信单元如果检测到FSK频移键控信号,则由Bell202MODEM将1200Hz的信号解调为“1”,2200Hz信号解调为“0”的数字信号,通过串口通信交MCU,MCU接收命令帧,作相应的数据处理。
然后,MCU产生要发回的应答帧,应答帧的数字信号由MODEM调制成相应的1200Hz和2200Hz的FSK频移键控信号,波形整形后,经AD421叠加在环路上发出。
D/A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 整理 Hart 协议 通讯 基础知识