Hart-IP协议
概要
为了满足体量增长快速的工业数据传输,最大限度的提高工业通信的速度和通信可靠性,通过成熟的以太网技术来访问工业现场数据数据,现场通信组织FCG(FieldCommGroup,即前HART通信基金会)的HART协议规范增添了新的功能HART-IP。Hart-IP基于现有的TCP/IP协议栈,为访问一些智能设备和过程信息提供了新的选项。
Hart-IP技术能够使:
- 满足标准化厂房部署;
- 从世界的任何角落远程访问设备层;
- 通过以太网或者WiFi管理智能设备;
- 更加容易集成入自动化系统。
Hart-IP是一个额外的连接选项,设备主机系统和资产管理应用程序使用工厂现有的网络基础设施,访问和收集来自现场设备的测量和诊断信息。
通过下图可以看出,Hart-IP能将有线和无线设备采集到的信息提供给更高级别的应用程序(SCADA,DCS,ERP和其他系统)。
Hart-IP的诞生是为了适应全球互联网技术的发展,让Hart协议运行在IP网络层上,以以太网的速度在适用Hart协议的设备上传输变量信息。这就意味着如今在各个工厂广泛使用的以太网基础设施可以被用于Hart协议的实现,不需要再额外搭建专用的接口和线缆。
Hart-IP使用简单、可靠、易用的HART协议搭建在IP协议基础之上,包括以太网、WiFi,传输层使用UDP或是TCP,可用于IPv4和IPv6。Hart-IP的应用层使用的技术要求同4-20mA的HART协议和WirelessHART技术,能够让产品快速得到推广,被用户所接受。相比RS485协议,它的过程数据和IT数据可以在一个共同的媒介上传播,不会和已经存在于TCP/IP信道上的通信相互干扰。拥有很大的地址空间,几乎可以容纳无限制的参与对象,满足可能的扩展网络。
协议剖析
图 (部分)Wireshark协议解析源代码
图 Wireshark协议解析结果
从Wireshark的源代码和解析结果中我们发现了一些协议的规律,基本确认了Hart-IP同HART协议的区别。以下就对Hart-IP增添的部分进行一个总结。
Hart-IP协议的报文头共有8个字节,分别为6个字段:Version, Message Type, MessageID, Status, Sequence Number和Message Length。
Version:协议的版本号,为0x01,这里不影响协议command的检测。
Message Type:消息类型可以是REQUEST_MSG_TYPE, RESPONSE_MSG_TYPE,PUBLISH_MSG_TYPE,ERROR_MSG_TYPE, NAK_MSG_TYPE,共五种。
Message ID:消息的功能共有四种,分别是Session initiate, Sessionclose, Keep alive, Pass through。这个字段对于检测command有至关重要的作用,当消息功能为Session close,和Keep alive时,应用层内容只有Header,而Body内容为空;当功能为Session initiate时,Body会包括1个字节的主机类型和4个字节的时钟信息,指出该段对话的失效时间;当功能为Passthrough时,Body部分就会是HART协议的内容,大多数情况下,这种报文的出现频率是最高的。
Status:通常情况下这个值为0x00。
Sequence Number:消息的序列号。
Message Length:该条Hart-IP报文应用层的总长,包括了Header部分和Body部分。由于Hart协议数据部分的长度是不固定的,所以可以根据长度字段判断出数据部分的长度。