基于Modbus/TCP工业以太网的自动化控制系统★

2011-07-12 12:29关学进刘娟
电子测试 2011年4期
关键词:汽包字节控制算法

关学进,刘娟

(重庆邮电大学教育部网络控制技术与智能仪器仪表重点实验室,重庆 400065)

0 引言

随着计算机和网络技术的迅速发展,信息技术已逐步进入工业自动化领域[1]。新型工业以太网技术Modbus/TCP是Modbus家族中应用于自动控制装备上的开放的通信协议,广泛应用于电力、水利、冶金、化工、机械、制造业等控制系统。它利用TCP/IP协议将Modbus消息封装成IP包,使用通用的网络部件在Intranet/Internet上传输[2]。

国际互联网编号分配管理机构专门为其赋予TCP502端口。2004年1月,法国召开的SC65C工作组会议中将Modbus/TCP列入IEC标准[3]。我国也已经把Modbus/TCP列为工业网络的标准。本文通过分析Modbus/TCP协议构成,设计出了一套基于Modbus/TCP协议的工业以太网自动化控制系统的可行性实施方案。

1 Modbus/TCP协议

Modbus是一种应用层报文传输协议,用于实现不同类型的总线或网络连接的设备之间的客户机/服务器通信。Modbus/TCP协议是Modbus家族中应用于自动控制装置上的开放的通信协议。它支持C/S模式,将应用层的Modbus消息封装成IP包,通过通用的网络部件在Intranet/Internet上传输[4-5]。Modbus通信协议栈如图1所示。

1.1 客户机/服务器模型

Modbus/TCP是采用C/S模式来进行报文传输,此模式基于4 种类型报文,即请求(Modbus Request)、指示(Modbus Confirmation)、响应(Modbus Indication)和证实(Modbus Response)。请求是客户机在网络上发送用来启动事务的报文;指示是服务端接收的请求报文;响应是服务器发送的响应信息;证实是在客户端接收的响应信息[6]。Modbus/TCP通信模式如图2所示。

1.2 Modbus/TCP协议帧格式

Modbus协议定义了一种与基础通信层无关的协议数据单元(PDU,Protocol Data Unit)。特定总线或网络上的Modbus协议映射能够在应用数据单元(ADU,Application Data Unit)上引入一些附加数据域。Modbus数据帧由附加地址、功能代码、数据域和校验域组成。而TCP/IP协议可以保证数据包传递的正确性,因此在TCP/IP上使用一种专用报文头识别Modbus应用数据单元。将这种报文头称为MBAP报文头(Modbus协议报文头)。Modbus和Modbus /TCP数据帧格式如图3所示。

图3 Modbus和Modbus TCP/IP数据帧格式

图3中的ADU(Application Data Unit)为应用数据单元,如图3_b的Modbus /TCP ADU中,MBAP报文头占有7个字节,包括四个域:事务元标识符(占用2字节)、协议标识符(占用2字节)、长度(占用2字节)和单元标识符(占用1字节)。事务处理标识符占用2字节,用于事务处理配对;协议标识符占用2字节,用于系统内的多路复用,通过值0识别Modbus协议;长度占用2字节,长度域是下一个域的字节数,包括单元标识符和数据域;单元标识符占1个字节,为了系统内路由,使用这个域专门用于通过以太网TCP/IP网络和Modbus串行链路之间的网关对Modbus或Modbus+串行链路从站的通信。

功能码则指出此数据帧要进行的操作,常用的公共功能码如表1所示。

表1 常用公共功能码

数据域最多可达248字节,具体格式与功能码相关。当客户机发送请求报文时,数据域给出要操作的寄存器的起始地址(2字节)和数量(2字节),当服务器发送应答报文时,数据域给出被操作的寄存器个数N(1字节)及各寄存器状态值。

2 Modbus/TCP工业以太网控制系统的体系结构

本文所设计的控制系统分为3层:企业生产管理层;过程管理层和现场控制层。

企业生产管理层:主要用于产品规划,信息集成以及完成一系列的优化功能,实现厂部(以及各职能部门)与车间、车间与车间、车间与工段等互通信息,可使生产控制系统与MIS(经营信息系统)相互联系,实现综合自动化。

过程管理层:在这一层上的过程管理计算机主要有操作站和工程师站。此层是本文介绍的重点,它运行在Windows环境下,从功能上主要划分为组态监控和网络管理模块两大部分。组态监控部分包括:图形化组态模块、工程编译仿真模块、通讯模块、数据管理模块和图元监控模块。组态模块与智能控制器上的算法相对应,使用户可以在上位机为各个智能控制器节点进行控制算法和控制参数设置。工程编译仿真模块,主要实现检查组态结果的语法错误与逻辑错误。上位机的通讯模块和智能控制器通讯模块对应,保证上位机与智能控制器节点的数据传输功能。数据管理模块和图元监控模块主要负责对控制器节点传来的实时数据进行存储、管理,同时显示实时、历史曲线和监控画面。网络管理部分主要用来实现各智能节点的参数设置,检测网内各智能控制器的工作状态是否良好。它综合监视过程各站的所有信息,集中显示操作,控制回路组态,参数修改,历史数据存取、优化过程处理等。系统中采用了Modbus/TCP作为整个车间级的通信网络,其设计旨在解决车间监控级通信。在这层间需要比现场层更大量的数据传输,而且其可靠性性要求高,Modbus/TCP可以满足其要求。

现场控制层使用由基板、电源卡件和CPU卡件组成的控制器。此控制器采用迅弛600CPU、128M内存、128M电子盘、双10/100M自适应以太网口、双高速RS485口、128K带电池保护的静态RAM、双DI、DO接口。采用WinCE系统平台。控制器类似一台PC ,可以与上位机通过以太网通信。各个控制节点之间、节点与上位机之间通过Modbus/TCP进行通讯,由上位机进行统一监控管理。

3 过程管理层软件各功能模块的设计

过程管理层系统软件是在Windows XP环境下基于Modbus/TCP协议使用Visua C++ 6.0开发的可视化组态、监控管理平台,主要分为两大部分:控制组态关系开发平台(工程师站)和控制系统监控平台(操作员站),当然两个平台也可以集中在同一个PC机上。结构如图5所示。

3.1 控制组态关系开发平台

控制组态关系开发平台主要由设备管理器模块和控制系统组态软件两部分组成。设备管理器模块主要功能是获得工程中所使用控制层和数据搜集层设备信息(包括控制站的基本信息、控制站参数以及下挂I/O通道的参数信息等)进行管理,以图形或列表形式将工程中各设备信息和资源显示出来以供用户选择操作。其另外一个功能就是实现对控制站进行在线调试、组态文件下载以及对下挂的I/O通道进行调试和参数设置。

控制系统的根本目的就是对工业过程的自动化控制,因此引入“算法”的概念来描述系统的基本控制功能。控制系统必须通过组态的形式生成各种适合现场需要的控制算法,而控制系统组态软件就是控制系统中用于组态工程师生成控制算法,并通过算法的执行来实现系统控制功能的一个平台[7]。组态软件是整个软件系统的核心部分。在组态软件中,控制算法是通过功能块类库中的功能块实例化完成的。功能块是控制算法的最小控制元素,控制算法以功能块的形式完成对实时数据库的操作,进而实现对现场设备的控制。

3.2 控制系统监控平台

控制系统监控平台主要实现现场操作人员与控制系统的人机交互功能,包括监控人机交互界面和实时数据库。在实际工程应用中,自动化组态设计人员和现场操作工程师为方便现场操作人员监控生产过程,需要用监控软件开发出友好的人机接口程序与实时数据库以方便现场操作人员监控生产过程[8]。

人机接口程序的监控界面通过与实时数据库的数据交互,获取受控设备实时数据,并以图形、动作或者曲线等形式形象地显示给现场操作人员。监控人机交互界面同时需要与实时数据库交互,使操作人员可以通过发送控制命令和相关数据来控制现场仪表的动作以达到干预生产过程的目的。监控人机交互界面还应具有的功能有:报警设置、报表生成及打印、历史数据检索与显示等。实时数据库是一个数据处理中心,是软件系统的一个重要组成部分,是构建分布式应用系统的基础。它负责实时数据运算与处理、历史数据存储、统计数据处理、报警处理、数据服务请求处理等。在系统运行过程中,各个软件系统独立地向实时数据库写入或读取数据。软件系统的其他部分以实时数据库为纽带,进行数据交换,形成互相关联的一个整体。因此,实时数据库是软件系统中各个部分及其各种功能性组件的公用数据访问区。

4 控制系统应用实例

以重庆某公司的锅炉汽包水位控制系统为例。

该锅炉汽包水位控制系统采用三冲量前馈-串级控制,以汽包的蒸汽流量为前馈信号,汽包给水流量和汽包水位串级的前馈加串级反馈控制方案。控制系统方框图如图6所示。根据现场需求设置水位控制的设定值,使汽包水位保持在预先设定范围之内。在DCS接收到识别信号之后,DCS控制程序设置延时为2min。因为2min后的锅炉汽包水位才是比较真实的水位,之后DCS再根据锅炉汽包真实水位进行控制。

此方案中的PID采用增量式PID,此PID控制算法数学表达式如下:

系统组态方案:进行前馈串级PID控制的组态,系统组态方案如图7所示。

(1)本次组态是对系统2#锅炉汽包水位控制对象进行组态,WATERL_Tag1为水位设定值作为PID串级控制中的外环PID输入,AI_01_1_2_02为AI通道,对应CS1#的第1通信卡第2槽第2路模拟量输入通道,为水位数据采集通道接入PID测量值端。

图7 控制算法功能块组态图

(2)AI_01_1_2_03对应CS1#的第1通行卡第2槽第3路AI通道,为管道流量数据采集通道接入内环PID的测量值端。

(3)AI_01_1_2_01对应CS1#的第1通行卡第2槽第1路AI通道,为蒸汽流量数据采集通道,作为内环前馈与外环PID功能块的输出相互作用接入内环PID的输入端。输出OUT连接到AO_01_1_5_01模拟量输出功能块,对应CS1#的第1通行卡第5槽第1路AO,第1路AO输出4~20mA到执行机构,进行控制调节。

5 结束语

本文首先对Modbus/TCP协议进行了简单扼要的介绍,在深入研究协议内容的基础上设计了一种基于Mobus/TCP的工业以太网的自动化控制系统,并详细叙述和设计了该控制系统的体系结构、软硬件结构等。最后,通过重庆某公司锅炉汽包水位控制系统应用实例的搭建,对本系统的相关功能进行了验证。验证结果表明,本控制系统各项功能稳定可靠,能够满足工业现场的应用需求,有一定的推广价值。

[1]冯冬芹,金建祥,褚健,等.工业以太网关键技术初探[J].信息与控制,2003,32(3):219-224.

[2]阳宪惠.工业数据通信与控制网络[M].北京:清华大学出版社,2002.

[3]王勇.Modbus应用协议在串行链路及TCP/IP上的实现[Z].施耐德电气公司,2002.

[4]魏庆福.现场总线技术发展的新动向[J].工业控制计算机,2000(1):11-12.

[5]W.Richard Stevens.TCP/IP Illustrated Volume 1:The Implementation [M].Beijing: China Machine Press,2001.

[6]SWALES.AOPEN MODBUS TCP/IP SPECIFICATION [Z].Schneider Electric, 1999.

[7]王亚民.组态软件设计与开发(Design and Development of Configuration Software) [M].西 安:西安电子科技大学出版社,2003.

[8]欧金成,欧世乐,林德杰,彭备战.组态软件现状与发展[J].自动化博览,2002,(2): 42-45.

猜你喜欢
汽包字节控制算法
非常规吊装火电厂锅炉汽包
No.8 字节跳动将推出独立出口电商APP
锅炉汽包蒸汽品质波动问题模拟分析及改造
No.10 “字节跳动手机”要来了?
基于ARM+FPGA的模块化同步控制算法研究
简谈MC7字节码
余热锅炉冬季汽包水位控制存在的问题及改进措施
一种优化的基于ARM Cortex-M3电池组均衡控制算法应用
滑模控制算法在在线式大功率UPS高频整流器中的应用
一种非圆旋转工件支撑装置控制算法