0.引言

很多年以来,4~20mA信号一直成为现场仪表信号传输标准,在过程自动化设备之间信息通信受到了极大的限制,仅能得到与过程变量成正比的电流信号。1989年Rosemount首先制订了HART高速可寻址远程传感器协议,引起了现场仪表通讯标准的技术革命,在工业过程中作为现场智能仪表数字通讯标准广为应用。

为满足工业过程对HART协议的日益需求,在1993年成立HART通讯基金会。HART基金会是一个独立的、非盈利机构,它的主要职责是制订、维护及升级HART协议标准,登记注册会员、提供对应用HART技术在全球范围内的技术支持和培训。目前,世界上已有60%的智能仪表采用了HART协议,主要的仪表供应厂商都提供支持HART协议的智能仪表,如HONEYWELL、FOXBORO、ABB、E&H、SMAR等仪表制造商。专家预测到2000年约有75%的智能仪表支持HART协议,开发符合HART协议的新类型仪表和制造厂商正持续快速增长。

1.HART协议

HART协议采用在4~20mA模拟信号上叠加音频数字信号进行双向数字通讯,而不影响传送给控制系统模拟信号的大小,保证了与现有模拟系统的兼容性。HART协议遵循ISO制订的OSI开放式系统互连参考模型,采用了OSI模型的第一层、第二层和第七层,即物理层、数据链路层和应用层。

1.1物理层

物理层规定了信号的传输方法、传输介质,HART信号传输是基于BELL202通讯标准,采用FSK(频移键控)方法,数字信号的传送波特率设定为1200b/s,数字信号“0”和“1”分别用1200Hz和2200Hz的正弦波表示,这些频率的正弦波叠加在模拟信号上一起传送。由于FSK信号平均值为零,对模拟信号不会产生任何影响。通常采用双绞同轴电缆作为传输介质时,最大传输距离可达到3000m。

1.2 数据链路层

数据链路层规定了HART帧的格式,实现建立、维护、终结链路通讯功能,HART协议根据冗余检错码信息,采用自动重复请求发送机制,消除由于线路噪音或其它干扰引起的数据通讯出错,实现通讯数据无差错传送。

(1)  HART帧

HART协议规定了数据通讯按帧的格式传送,HART帧由链路同步信息、寻址信息、用户数据以及校验和组成,HART帧又被分为请求帧、应答帧和阵发帧。请求帧和应答帧的主要差别在于应答帧包含了数据通讯状态和变送器的工作状态。

链路同步码

定界符

地址

命令号

字节长度

数据字节

校验和

链路同步码

定界符

地址

命令号

字节长度

响应码

数据字节

校验和

HART请求帧/应答帧格式

链路同步码:HART协议采用2到20个十六进制的“FF”字节作为接收设备的同步信息,主设备或控制系统可通过链路层管理命令设定同步字节个数。

定界符:表示HART帧的开始,定义了帧的类型及寻址格式。根据定界符的低3位b2b1b0可以把HART帧分为请求帧、应答帧和阵发帧。根据定界符的最高位b7可以把HART帧寻址信息分为长格式和短格式,如表1所示。

帧类型

长 帧b7=1

短 帧b7=0

阵发帧

0x81

0x1

请求帧

0x82

0x2

应答帧

0x86

0x6

地址:短格式地址长度为一个字节,低4位b3b2b1b0表示从设备的地址号,HART协议规定了地址号的范围为0~15,在总线上最多只能挂15台变送器。长格式地址长度为五个字节,由第一字节的低6位及其后连续四个字节共38位构成,由仪表唯一标识码的低38位表示,由6位仪表制造厂商标识代号,8位仪表类型代码及24位仪表序列号组成。使用长格式地址寻址,原理上在总线上所挂变送器的数量可以不受限制,可根据通讯扫描频率、通讯介质、功耗等决定在总线上所挂变送器的数量。地址第一字节的最高位b7表示主设备地址位,b7=1时表示第一主设备;b7=0时表示第二主设备,如:手持器。第一字节的b6位表示现场仪表的阵发允许位,b6=1时表示现场仪表允许阵发;b6=0时表示现场仪表不允许阵发,HART协议规定在总线上只允许一台变送器以阵发方式通讯。

命令号:表示现场仪表所要执行的功能,命令号的有效范围为0~255。

字节长度:表示后续数据的长度,表示HART帧的结束位置。

响应码:应答帧包含长度为两个字节的响应字,第一字节表示数据通讯状态及现场仪表命令执行结果,当b7=1时,数据通讯出错,后续位代表了错误类型,如:奇/偶校验错,水平校验和错,数据帧错等;当b7=0时,表示现场仪表命令执行结果状态,如:命令未执行,命令执行出错,命令执行警告。第二字节表示现场仪表的工作状态,如:变量超限、模拟输出饱和、仪表误操作等,保证了现场仪表数据的可靠性及仪表工作的安全性。

数据字节:表示与命令相关的数据。

校验和:表示从定界符开始对所有字节进行异或操作运算,确保通讯数据无差错传送。

(2) HART帧编码

HART帧以8位为一字节进行编码,对每一字节加上起始位,奇/偶校验位及1位停止位共11位传送,保证了对每个字节进行数据传输同步。

(3) 数据链路层服务

HART协议采用类似“令牌”方式访问通讯链路,它不是在通讯链路上循环转发令牌,只有得到令牌的站点可以访问链路,而是采用设定定时器时间常数保证所挂设备能够访问链路。

HART协议把链路上所挂设备分为三类:第一类为第一主设备,如:控制系统和第二主设备,如:手持器;第二类为从设备表示现场仪表按请求/应答方式进行数据通讯;第三类为阵发设备表示现场仪表可以按请求/应答方式数据通讯,还支持阵发功能以阵发方式周期性地广播数据,HART协议把阵发功能作为现场仪表的一种可选功能,设备联接拓扑结构图如下图所示。通常HART协议按主/从方式通讯,通讯由主设备发起,从设备先“听”后“答”,第一主设备和第二主设备以相同的优先权轮流访问通讯链路,但设定了不同的定时时间常数以防止“死锁”,避免两个主设备同时访问链路。当某一主设备通讯结束后,需要首先侦听载波,等待一段时间以确保另一主设备能够访问通讯链路,若链路上有载波存在,该主设备放弃使用链路;若定时时间溢出,该主设备可以继续访问通讯链路。当通讯链路上存在阵发设备时,一主设备只有在阵发设备阵发给另一主设备通讯结束之后,方可访问通讯链路。

1.3 应用层

应用层执行主设备所请求的命令,HART协议把命令分为通用命令、常用命令及专用命令,通用命令表示符合HART协议的现场仪表所必须执行的功能,在一定程度上保证了现场仪表的互操作性,常用命令表示大多数现场仪表所执行的功能,专用命令表示现场仪表所实现的特殊功能,如:传感器特征化、过程积算、PID运算实现就地控制。按功能又可把命令分为现场仪表管理命令,仪表变量相关信息读写命令,操作方法相关命令。

(1) 现场仪表管理命令获取现场仪表的管理信息,如:读取仪表的制造厂商及设备型号,仪表的硬件、软件版本号,工位号,装配号,描述符(如说明仪表的安装位置),日期(如校验、安装维护时间)。仪表的轮询地址等。

(2) 仪表变量相关信息读写命令按设定单位返回仪表检测过程变量,输出电流及百分数,对于多传感器变送器,执行一次通讯,主设备可以获取至多4个变量数值;读取传感器信息如:传感器序列号,单位代码和极限值;读取变量信息如:变量单位、变量运算函数代码、量程范围和阻尼值,可以设定或校正变送器零点和量程,设定变量的阻尼时间常数及运算方式如:线性运算、平方运算、开方运算、按特定曲线进行运算处理等。

(3) 操作方法相关命令设定模拟电流固定输出进行回路测试,对模拟电流输出零点和增益微调,仪表自诊断、自校正等。

1.4 设备描述(DD)

HART协议通用命令、常用命令在一定程度上保证了现场仪表的互操作性,设备描述DD详细地描述了现场仪表的外部特性:变量,命令集,操作方法如:仪表校正、模拟输出微调、变量关系、变量集合、人机界面等。它相当于OSI参考互联模型的顶层“用户层”,在主设备中类似于设备驱动程序,真正地实现了仪表互操作性,同时DD解决了现场仪表与主设备开发的相互依赖关系,仪表更新换代、新型仪表开发及主设备升级互不影响,主设备只需升级DD的版本或装入新型DD,如同升级打印机驱动程序一样简单。

首先开发人员应详细了解仪表特性,然后根据设备描述语言语法编写DD源文件,并和标准DD一起编译生成DD二进制格式文件以供主设备或手持器如本公司代理的ViT 公司制造的 USB HART modem对其进行组态。网络应用层用郑州波特电子有限公司www.hnbaud.com(HART/RS-232)适配器连到网络上,兼作网络管理器,实现监控功能,综上所述,HART为全分散式的现场设备提供了可互操作的控制网络。

转载于:https://www.cnblogs.com/victor6611/archive/2008/03/15/1106853.html

HART通讯协议及应用相关推荐

  1. xk3190串口通讯JAVA开发包_常用品牌plc通讯协议汇总学习

    一.美系厂家Rockwell ABRockwell的PLC主要是包括:PLC2.PLC3.PLC5.SLC500.ControlLogix等型号,PLC2和PLC3是早期型号,现在用的比较多的小型PL ...

  2. 西门子smart200以太网通讯协议

    西门子smart200具体的通讯文档在网上或者官网我都没有找到(哪位大仙有请给我留言发个感激不尽),本人是通过监听控制软件分析出其中的通讯协议. 连接是通过TCP/IP协议,我一般喜欢用Java写测试 ...

  3. ntrip获取源列表_Ntrip通讯协议怎么样?

    1 什么是Ntrip? CORS(Continuously Operating Reference Stations)就是网络基准站,通过网络收发GPS差分数据.用户访问CORS后,不用单独架设GPS ...

  4. AMF3通讯协议实例

    为什么80%的码农都做不了架构师?>>>    服务端: import java.io.BufferedOutputStream; import java.io.BufferedRe ...

  5. 上下位机通讯协议_上位机与下位机的区别通讯

    上位机是指可以直接发出操控命令的计算机,一般是PC/host computer/master computer/upper computer,屏幕上显示各种信号变化(液压,水位,温度等).下位机是直接 ...

  6. 2017-2018-1 20155327 实验五 通讯协议设计

    2017-2018-1 20155327 实验五 通讯协议设计 实验一: 实验要求: 在Ubuntu中完成 http://www.cnblogs.com/rocedu/p/5087623.html 中 ...

  7. 2018-2019-1 20165212 实验五 通讯协议设计

    2018-2019-1 20165212 实验五 通讯协议设计 OpenSSL简介 OpenSSL是为网络通信提供安全及数据完整性的一种安全协议,囊括了主要的密码算法.常用的密钥和证书封装管理功能以及 ...

  8. 网络编程2_网络通讯协议, socket(tcp, udp)

    一. 网络通讯协议     互联网协议的功能: 定义计算机如何接入internet, 以及接入internet的计算机的通信标准     互联网协议按照功能的不同分为osi七层或tcp/ip五层    ...

  9. php连接plc,PLC 几种常见的连接口和通讯协议

    四.ProfiBus 通讯作为众多现场总线家族的成员之一ProfiBus是在欧洲 工业界得到最普遍应用的一个现场总线规范,也是目前国际上通用的现场总线规范之一.ProfiBus是属 于单元级.现场级的 ...

  10. 上下位机通讯协议_嵌入式中自定义协议的一些典型例子

    关于自定义协议,对于会的人很简单,对于不会的人就摸不着头脑.下面分享一些关于自定义协议的笔记. 什么是协议? 协议这个概念我觉得挺杂的.就像嵌入式的概念一样,说法不一,比如大家常常争论FPGA是不是嵌 ...

最新文章

  1. JAVA 和JAVAC命令行
  2. koa+mysql+vue+socket.io全栈开发之web api篇
  3. 在ASP.NET MVC 模型中 选择最好的方法将多个model(数据模型)传递到视图
  4. linux常用运维命令【转】
  5. vnc移植_VNC远程控制软件使用说明
  6. 2013.5.21号面试心得
  7. 从桌面向手机移植Silverlight应用
  8. Facebook的GBDT+LR模型python代码实现
  9. P1829 [国家集训队]Crash的数字表格 / JZPTAB
  10. java链表list_java自定义List链表
  11. 江西小学计算机说课稿,2019江西教师招聘面试-小学数学-说课稿
  12. 三菱plc字高八位和低八位_三菱PLC如何传送高8位和低8位数据
  13. python 拼音识别_Python_语音合成
  14. HDOJ--1269--迷宫城堡
  15. JD-GUI(反编译工具)
  16. cocos2dx 基础
  17. dataframe分组并求平均
  18. 微信小程序注册入口和注册流程(完整版图文教程)
  19. 配色(转http://huaban.com/boards/13532082/)
  20. FI---SAP汇率损益处理方法

热门文章

  1. 生物信息学|用于预测药物-药物相互作用事件的多模态深度学习框架
  2. bugkuctf 论剑,图穷匕现,好多数值
  3. qt与excel 一去二三里整理
  4. Hbase按指定列族中指定列的列值查找数据Hbase命令
  5. python把多个人声分离_一段音频中判断多个人声?
  6. 倒立摆的simulink模型搭建
  7. 远程登陆windows设置分辨率
  8. EJB_开发EJB容器模型的WEB服务
  9. Unix 哲学的一些原则——《Unix 编程艺术》
  10. 64位windows7,安装selenium2library成功后,无法在robotframework加载