Modbus通信协议研究及在油田控制系统中的应用
2014-02-18王超
王超
(中石化石油工程设计有限公司,东营 257026)
WANG Chao
(OFFSHORE OIL ENGINEERING CO.,LTD. Tianjin 300451, China)
(SINOPEC Petroleum Engineering Corporation, Dongying 257026, China)
0 引言
当前,在石油天然气上游行业,大型联合站数量不断增多,规模也越来越大,规模大的DCS系统测控点数可达上万点甚至几万点。而DCS作为目前工业控制的主要手段,技术已经相当成熟,以其强大的功能、多样化的软件和可靠的性能深得用户青睐[1]。同时企业作为投资方,希望用最小的投入获得最大的收益,一套好的自控系统不但能降低系统不稳定性,提高可用和可靠性,而且可以将前期资金投入、后期的运维费用降到最低。传统的DCS集成方式在提供优良控制性能的同时,往往伴随着高额的资金投入。随着总线和通信技术的发展,FCS(现场总线控制系统)越来越受到人们的关注,总线技术作为工业自动化的重要成员之一,在现代化的自控系统中也扮演者越来越重要的角色。同时,结合DCS和总线技术的多元化的组网方式也为站场自控系统的集成提供了更多的解决方案。
1 现场总线
1.1 工作原理及选型
IEC(International Electrotechnical Commission)对现场总线的定义为:Conceptually, a fieldbus is a digital, serial,multidrop, data bus for communication with industrial control and instrumentation devices such as – but not limited to –transducers, actuators and controllers. 从其定义可以看出,现场总线是一种支持多节点的数字式串行总线技术,用于工业设备及控制器之间的通信。具有可靠性好、抗电磁干扰、系统开放性高、通信速率快、造价及维护成本低廉等特点[2]。现场总线技术发展至今,技术比较成熟而且得以广泛应用的有FF(基金会现场总线)、PROFIBUS现场总线、ContrlNet、Interbus现场总线、基于Modbus的现场总线等等。其中基于Modbus协议的现场总线被广泛应用在石油天然气上游站场控制系统。
2 Modbus 协议
最初,Modbus是Modicon公司为其自动化设备开发的通信协议,经过三十多年的发展,现已成为自动化领域最流行的协议之一。作为典型的请求—应答协议,Modbus的通信基于客户机—服务器模型。从OSI(开放系统互连)七层模型来看,Modbus协议属于应用层协议,需要借助基础通信层提供的服务实现通信。它只对用于应用层的协议数据单元(PDU)作了定义[3],PDU包含功能码和数据,功能码长度为一个字节,有效范围是十进制1~255(128~255为异常响应保留),功能码向服务器指示将执行的操作类型。数据域在请求和应答帧中包含的内容是不同的,在请求帧中数据域包括离散量和寄存器地址以及字节数等;在应答帧中数据域包含了客户机请求的数据信息。Modbus简单协议数据单元PDU只提供了应用层功能服务,要实现在网络上的通信,需要在PDU上引入一些附加域,构成应用数据单元,从而使Modbus能够提供数据链路层服务,进而实现各种网络上的Modbus通信。
2.1 Modbus的通信实现方式
1)依托以太网的Modbus TCP/IP。
2)RS-485、光纤、无线等介质上的异步串行通信。
3)高速令牌网络Modbus PLUS[4]。
4)在实际应用中,不同的Modbus通信实现方式可存在于一个网络体系中,不同的通信结构之间通过Modbus网关设备实现互联。
2.2 Modbus在串行链路上的实现
在物理层,串行链路上的Modbus可以使用不同的物理接口,而工业上最常用的是两线制RS-485。串行链路上的Modbus协议基于主—从协议模型,在同一时刻总线上Modbus主站只允许有一台,但从站可以存在一台或多台。在Modbus通信过程中,请求由主站发起,从站只有接收到来自主站的请求时,才进行通信响应。主站同一时间只能发起一个事务处理请求且从站之间无法独立进行Modbus通信。串行链路上的Modbus帧是在PDU上引入地址域和差错检验域后形成的通用Modbus串行链路PDU,如图1所示,其中地址域占一个字节,也就是说串行链路Modbus寻址空间为28=256,寻址规则如下:0为广播地址;1~247用作从站地址;248~255为保留地址;串行链路中Modbus主站没有特定地址,从站有且有唯一确定的地址(1~247)。
在串行链路上进行Modbus通信时,数据有两种传输模式可供用户选择——RTU模式或ASCII模式。在对每个Modbus设备进行配置的时候,用户根据需要选择传输模式及波特率等串口参数,但须注意,同一个串行总线上的所有Modbus设备其传输模式和串口参数必须相同[5]。无论采用哪种传输模式,在数据传输过程中,数据收发设备都会按照设定的传输模式识别单个字节数据,拼接成为Modbus帧。
2.2.1 Modbus RTU模式
In traditional Chinese culture,there are many specified words and phrases with special meanings.Sometimes equivalent English words cannot be found.Translator must respect the history fact and choose the proper words,especially those related to royal family.
当数据在Modbus网络上以RTU模式进行传输时,消息帧中每个8位字节都是由两个4位十六进制字符(范围0~9,A~F)组成。RTU模数传输速率较快,在同样的波特率下,数据密度相对ASCII模式要高。
通信过程中,Modbus报文需要以数据帧的形式发送,这就要求对Modbus帧的起始和结束位置进行约定,使接收设备能够识别帧头帧尾,对于不完整的报文,接收设备能够检测识别,并且设置错误标志。
在RTU模式中,规定时长不少于3.5个字符的空闲时间将两帧报文间隔开来。即两个报文帧之间必须有不少于3.5个字符的空闲时间,接收设备才能识别为两个报文帧。如图2所示。
图2 Modbus RTU 报文帧
在RTU模式中,每帧报文都必须以连续的字符流进行传输,如果一帧报文中两个字符之间出现大于1.5个字符的空闲时间间隔,则此帧报文被识别为不完整报文,接收设备予以丢弃。
2.2.2 Modbus ASCII模式
当数据在Modbus网络上以ASCII模式进行传输时,报文中的每个8位字节需要用两个ASCII字符发送。例如要发送数据“0C”,需要先发送数据“0”(对应16进制ASCII编码为30),再发送数据“C”(对应16进制ASCII编码为43)。由于发送一个字节需要占用两个字符的时间,所以ASCII模式数据吞吐率要比RTU模式低。
与RTU模式不同,在ASCII模式下,规定报文的起始标志为一个“:”字符(十六进制ASCII 3A),结束标志必须为“CRLF”(十六进制ASCII 0D和0A)。在通信过程中,当Modbus设备监听到总线上出现“:”字符后,就开始译码后续字符直到出现“CRLF”为止。传输过程中同一报文两个字符间的允许间隔时间也比RTU模式要长,最长间隔时间可达1秒,如果出现大于1秒的间隔时间,则认为出现传输错误。如图3所示。
2.3 Modbus在TCP/IP上的实现
TCP/IP上的Modbus采用客户机-服务器模型进行通信,在同一个网络上的各个计算机是平等的关系,即同一网络上的各个计算机在不同时刻既可能是客户机又可能是服务器。
区别于串行链路上的Modbus应用数据单元,在TCP/IP上使用一种专用的报文头——MBAP报文头(Modbus应用协议报文头)来识别Modbus应用数据单元[6]。如图4所示。
图4 TCP/IP上的Modbus应用数据单元
在OSI七层模型应用层以下,Modbus/TCP沿用普通以太网技术。Modbus用户数据需要经过层层封装,形成以太网帧结构才能通过以太网进行传输。如图5所示,以太网的帧结构与封装过程。从图中可以看到,用户数据将按照以太网结构逐层添加首部信息,封装打包成以太网数据帧[7]。
图5 以太网帧结构与封装过程
3 伊朗雅达油田中心处理站系统构成
雅达油田中心处理站的功能是将Kushk和Hosseinieh两个区块输送的原油经过分离、处理,成为洁净的轻质、重质原油及天然气后计量外输,生产过程中产生的污水则进入污水处理系统。整个站场从工艺流程上大致可划分为轻重质原油处理、天然气处理、污水处理、配套辅助设施四个部分。中心处理站的控制系统称为ICSS(Integrated Control and Safety System),是一种全分布式的控制系统,由以下子系统组成:
1)过程控制系统 (PCS)
2)紧急停车系统 (ESD)
3)火气系统 (FGS)
4)高集成保压系统 (HIPPS)
5)机械监控系统 (MMS)
6)操作数据系统 (ODS)
7)资产管理系统 (AMS)
8)第三方软件应用
9)各橇块子系统
PCS进行主工艺监控、记录及报表,是一个基于微控制器技术的用高速数据通道连接的系统,为站场提供所有的图表和文字信息,并为ESD和FGS提供接口。PCS执行数据采集、控制、操作员界面等功能。而站场内众多的橇块子系统与PCS之间有大量的信息需要传输,比如橇块内部电机状态的采集、橇块状态指示等等。在系统设计上,这些信号可以通过硬线、网络或者串行链路实现,而硬线接入的成本较高,以太网口在通用性和可靠性上稍显逊色,而串行链路上的Modbus作为一种成熟的通信手段,不仅组网方便,实现成本低,而且由于其开放性,在石油行业的普及是其他一些总线和通信手段所不能比拟的。此外,站场分区域设置有4个现场辅助控制室,这就使得现场设备与PCS系统的距离大大缩短,为RS-485总线通信提供了有利条件,在没有中继器的情况下,一条RS-485总线可以挂接32个Modbus收发模块。在这样的情况下,用 RS-485总线上的Modbus协议进行橇块子系统与PCS之间的通信不失为一种经济可靠的解决方案。在生产过程中PCS系统要获取站场的各种输入信号,在人机界面实现工艺流程显示和报警、对设备进行远程操作等功能,因此对于经由Modbus传输的信号来说,PCS是请求的发起者,应当设置为Modbus主站,其他设备设置为从站,以Modbus-RTU模式进行通信。
硬件上Modbus通信模块采用COM741-S,该模块为4通道串行通信模块,每个通道可根据需要设置为RS-485/RS-232通信,亦可以由两个COM741-S连接成为冗余模式。COM741-S模块的软件设置集成在SUPCON ECS-700系统中,在用户界面中可方便的对COM741-S模块进行串行通信参数、命令设置及调试等操作。
4 结束语
基于Modbus协议的通信对于石油天然气站场自动化领域具有重要的意义,它为系统间、系统与设备间的通信提供了一种经济可靠的通信方式,在石油天然气开发上游的应用前景十分广阔;同时,在Modbus应用过程中也不能忽视协议本身的一些局限性和不足,比如通信速率不高,在TCP/IP上的Modbus设备访问的非实时性等。在自动化系统设计中应综合考虑各种实际情况,合理配置系统机构,扬长避短,提高系统可用性和可靠性。□
[1] 冯冬芹.石油化工自动化技术的应用与发展趋势[J].数字化工,2004,12:9.
[2] 姜涛.现场总线控制系统的应用优势[J].科学观察,2010,6:103.
[3] 张文君,基于MODBUS协议的工业有线/无线网关设计与实现[D].武汉:武汉理工大学,2011,4.
[4] 朱汉德.基于MODBUS/TCP的工业以太网现场控制站设计[D].广州:华南理工大学,2008,05.
[5] 赵钊.基于Modbus协议的DCS系统与PLC系统的通信[J].节能技术,2011,29(168):341.
[6] 郭永伟.基于Modbus协议的电力监控系统[D].成都:电子科技大学,2007.
[7] 阳宪惠.现场总线技术及其应用[M].徐用懋审,第2版.北京:清华大学出版社,2008,10: 235-238.