刘瑞霞,张玉霞
(天津钢铁集团有限公司设备部,天津 300301)
结构化及面向对象编程在综合原料场的应用
刘瑞霞,张玉霞
(天津钢铁集团有限公司设备部,天津 300301)
天钢综合原料场输送系统上百条胶带机构成了一个复杂的运输网络。为了提高输送效率,提高控制的可靠性,针对原料场胶带机群控的特点,提出了将胶带机的控制功能模块化、采用结构化及面向对象的编程方法,编制原料场控制软件。该软件具有程序简练、编程和调试效率高,易于理解维护、可扩展性强等优点,该软件目前已在线运行6年,达到了理想的效果。
关键词 原料场 过程控制 结构化编程
冶金企业的原料场一般存贮1~2个月的原料使用量,高炉生产所需的成分均匀的精料是在原料场通过对多种含铁进行混匀而得到的。天钢二期综合原料场承担着为烧结、高炉、炼钢及活性石灰车间所用的原料、燃料、副原料的贮存、加工、混匀和输送等任务。其工艺流程可分为受卸、储存、混匀、输送及取制样等5个系统。二期原料场储存占地25万m2;有汽车和火车受卸系统、3台堆取料机、1台混匀堆料机、1台混匀取料机;二期原料场的输送系统共有81条胶带机,全长13 km,这些胶带机与一期胶带机一起组成了一个复杂的运输网络;共设计了86个输送模式,570个流程,完成物料的输送任务。其全部采用计算机控制及管理,是一个高度机械化、自动化的大型综合原料场。
由于二期料场工艺设计了570个流程,采用线性化编程方法,尽管可以完成控制要求,但线性化编程会使程序规模大、复杂程度高、重复代码多,浪费PLC系统资源;同时,程序的修改对所涉及的胶带机前后互相影响、调试效率低;随着生产条件改变,增加流程会十分复杂。结合一期原料场控制系统软件编制的经验及体会,经过分析,我们决定在二期原料场尝试采用模块化、结构化及面向对象的编程方法编制控制软件。2005年12月,完成了软件的功能规格书;2006年1月,完成了软件结构分析,4月完成了软件编制及模拟调试工作,在设备的无负荷试车过程中,仅修改顺序逻辑时间参数,未占用软件修改及调试时间。该系统已运行6年多,为生产维护带来了极大的便利。
根据原料场的组成、设备的分散性、操作要求和特点,原料场的自动化系统和控制方式都是集中监视和操作,即在中控室进行监视和控制,同时,由于原料场设备的分布范围较大,为节省电缆和便于维护,将设备按区域划分,设置多个电气室,按电气室分布PLC设备。天钢二期原料场共设置了7个电气室,分别是B1~B5电气室、槽上电气室、喷洒除尘电气室。其中,B4电气室设在主控楼三层,主控室设在主控楼4层。
整个原料场控制系统采用2台Modicon Quantum PLC系统,2台CPU型号均为140CPU65160,安装在B4电气室,用于原料场的主控系统。1#PLC通过同轴电缆RIO连接到B1电气室的远程站,再通过B1电气室安装的490NRP954光纤中继器RIO连接到B5电气室和槽上电气室的远程站,其中,最远端的槽上电气室到B4电气室的光缆距离大约4.2 km;2#PLC通过安装在B4电气室的490NRP954光纤中继器RIO连接到B3、B2电气室的远程站;喷洒除尘水泵房的I/O点数较少,为节省投资,采用了总线I/O,通过光纤收发器与2#控制器上的140CRP81100通讯卡连接,实现对水泵房设备的控制。
本系统设有6个操作站,用于生产操作和监视。
由于6台操作站同时访问2台PLC,以太网的特性决定了这种访问会集中大量的数据通讯,影响画面的刷新速度。因此,采用客户端/服务器的C/S结构,系统设置了2台服务器,作为操作站和PLC之间的桥梁,提供I/O服务,操作站与PLC之间的信息交换均通过服务器进行,从而有效地减少数据通讯量、提高通讯效率。在服务器上运行iFIX监控软件,2台服务器处于热备份状态,即一台主机,另一台从机,当其中一台发生故障时,另一台自动接替工作。
由于原料场控制系统监视及操作的数据量较大,每台服务器上安装两个以太网卡,一个用于与PLC之间的数据通讯,另一个用于为客户端提供数据服务,数据各行其道,互不干扰。
由于PLC、服务器和操作站之间均通过网络传递数据,网络作为系统的重要组成部分,本系统设置了2台冗余交换机,两台交换机均在线运行,当一台发生故障时,另一台交换机也能确保操作和监视的正常运行。
系统的拓扑结构如图1所示。
图1 原料场控制系统拓扑结构
原料场的监视和操作是通过设在主控室的6台操作站上进行的,为了避免对受控设备的“争用”情况,对各种操作进行分类,再给各操作站分配不同的操作权限,只有具备操作权限的操作站才可以进行操作。一期经过使用后,操作人员认为不方便。因此,二期软件中我们将这6台操作站设为具有同等的权限。为了避免操作“争用”情况,软件设计为当某一台操作站对某一个流程进行操作生效后,该流程即进入选择状态,其他操作站均不能操作已被选择的设备,从而避免设备“争用”的发生。
控制系统对受卸系统、储料系统、混匀配料系统、高炉用焦矿输送系统、高炉用杂矿系统、高炉用烧结矿系统、烧结及石灰窑供料系统、返焦返矿系统等所涉及的所有单体电气设备的启动/停止/故障处理以及所有模式和流程进行集中管理。
2台PLC的分工为:PLC1负责从受卸开始到储料过程以及混匀配料过程;PLC2负责从储料场、混匀料场开始到各用户的原料配给过程。
任何一台单体设备均设有3种状态:备妥状态、运行状态及故障状态。
备妥状态:该设备已被某流程选中,并满足进行该流程运行的条件。
故障状态:该设备由于故障无法运行,可能是选择机旁操作、拉绳或二级跑偏或失速动作、电气设备故障等。
本文所称的模式是指具有同一个受料起点到同一个堆取料机终点,或同一个取料起点到同一个输送目的地的受料终点称为一个模式。天钢二期料场设有86个模式。流程则是指同一个模式下的不同输送路径,每一个输送路径称为一个流程。天钢二期料场共有570个流程。如从翻车机-斗轮-2#混匀配料槽为一输送模式,该模式对应24个不同的输送路径,称为流程。
根据生产的需要还会增加其他模式和流程。
操作人员通过图形化的界面选择起点和终点,确定“模式”,系统自动地列出该模式下所有的流程,并指出可用的流程和不可用的流程,供操作人员选择。操作人员从HMI界面上选择某一“流程”,系统会自动地出现该流程所有设备的模拟路径图,确认后,所选择的设备均被置为选择状态,不能被其他流程选用。
点击“流程启动”按钮后,该流程所选择的设备按规定的顺序启动运转。这样,PLC系统接收各操作站的指令,自动完成流程归集、流程选择、流程连锁、流程起动、顺序停止、一齐停止、净化停止、紧急停止、流程报警、流程切换、流程合流等功能。
施耐德的Concept提供了IEC1131-3标准兼容的全部5种编程语言,即功能块语言FBD(功能块图)、LD(梯形图)、顺序语言SFC(顺序功能图)、指令表IL以及结构化文本ST。
PLC厂家提供了编程工具,但是如何应用编程工具,编制好用户程序,则是程序设计人员的考虑的工作。
线性化编程是采用“平铺直叙”的方法,将所有570个流程的逻辑顺序编入程序中,程序结构如图2所示。
图2 采用梯形图线性化编程的程序结构图
针对原料场设备控制,这种线性化的编程方式存在以下3个方面的缺点。
4.1.1 浪费PLC资源
PLC运行时,在一个扫描周期内循环执行输入采样、用户程序、输出刷新三个阶段。在用户程序执行阶段,CPU不断循环整个程序(流程1~流程570),不管该流程是否被选择,均被扫描执行,而实际上,生产作业过程中平均运行的流程大约30个左右,只需对被选择的大约30个流程进行扫描执行即可,如果全部扫描执行,会大量浪费机器资源。
4.1.2 参数调整较困难
由于胶带机不是专用的,一条胶带机往往要被多个模式和多个流程使用,程序中将会有多个流程涉及到同一条胶带机的控制,在修改参数时,要将涉及到同一条胶带机的所有流程的程序都修改一次,而不是修改一个流程,一个参数。如一条胶带机,共有39个流程用到该胶带机,如要修改此胶带机的延时停车时,需要将这39个流程的延时时间都修改一次。
4.1.3 可读性差
原料场胶带机的群控不仅要考虑所选设备的顺控与连锁,还要进行“优先”及“占用”的判别等问题。由于各设计人员的设计习惯不同,使得程序总是带着某种个人色彩,导致程序的可读性差,为今后的维护和功能扩展带来很大麻烦。
4.1.4 程序庞杂,可扩展性差
在使用线性化编程时,流程越多,各种条件和判断就越多,程序越庞杂,各个设备之间互相牵涉的关系越复杂。根据生产需要增加流程时,程序的编制需要考虑各设备之间的关系,有可能考虑不全,极容易出现意想不到的后果。
因此,原料场胶带机群控软件复杂程度高,采用线性化编程存在缺陷,分析原料场控制要求,结合一期原料场软件编程的经验和体会,原料场的设备多,但设备种类并不多,同样的设备有同样的控制要求,并具有相同的控制逻辑和同样的管理方式。在二期原料场工程中,我们采用了模块化、结构化及面向对象编程的思想方法,编制2#料场用户程序,下面介绍这种编程思想,供读者参考。
本文所述的结构化编程并不是指用结构化文本语言(ST)进行编程,而是借用软件工程中广泛应用的结构化和面向对象编程的思想,具体来说,就是对整个受控设备的控制动作和功能进行分析,抽象出整个控制过程中的类似或相关的功能,并通过编程向整体提供可以用于多个任务的通用解决方案,同时通过特定的程序存储和数据管理程序,向指令块提供有关数据(参数),即每一个模块有相同的控制功能,有标准的数据接口,实现通用模块的重复使用,从而简化程序设计。面向对象的程序设计要求有两项重要工作。
4.2.1 类的抽象
在原料场的设备中,将具有类似的控制设备分别相同的类,抽象出共同点加以控制,从而有效减少程序的数量,如胶带机、给料机、卸矿车等。每一个抽象出来的“类”编制一个功能模块,通过调用该功能模块,完成所有符合此“类”设备的功能控制。模块化是结构化的基础。
胶带机控制功能模块功能示如图3所示。
图3 胶带机控制功能模块
再对各输入/输出管脚进行定义,如DOWN1管脚的定义是,HMI传给PLC的控制字,DOWN1的可能值及含义如表1所示。
表1 DOWN1的可能值及含义
4.2.2 参数管理
为满足面向对象的程序设计的需要,根据各设备的不同点,如I/O地址、运行状态、延时时间等,在调用公用类模块时,必须对其中的变量不同的设备赋以不同的值。因此,对这些参数的管理就显得极为重要。对应于某对象的某一类模块,这些数据有必要专门编成一个数据模块。这些数据模块与设备有一一对应的关系。
在Concept中,DFB变量有“内部变量”和“形参”2种形式,在编程中要注意它们的区别。在分清设备控制要求后,程序的编写较简单,这里不做详细阐述。根据对被控设备事先抽象出来的“类”,编制符合该“类”设备要求的功能模块,不同的功能模块有不同的功能。每一种模块有若干个输入端和输出端,通过软连接的方式,分别连接到所需的其他端子,完成所需的控制运算或控制功能。功能模块可以分为不同的类型,在同一种类型中,也可能因功能参数的不同而使功能或应用范围略有差别。
由于采用软连接的方式进行功能模块之间及功能模块与外部端子的连接,因此控制方案的更改、信号连接的替换等操作可以很方便地实现。
而各流程设备之间的联接即是按工艺要求对这些功能模块的连接和组合,主循环程序和被调用程序间没有数据交换,因此各模块间相互独立,没有冲突。采用结构化编程的方法,主程序有目的地调用被选择的流程,只有被选择的流程才进行扫描,最大限度地节省机器资源。
由于原料场流程多,而且对每一条胶带机来说,其控制动作是相同的,根据这一特点,软件采用了模块化和结构化编程。将每类设备所要求的各种功能封装在一个模块中,模块有标准的数据接口,根据不同的流程组合,调用这些功能模块。
采用结构化及面向对象编程的优势总结如下:(1)从控制功能入手,使控制方案的分析和理解变得容易,具有较好的操作性;(2)参数修改变得极其容易;(3)大大方便了设计人员的编程,编程和调试效率高;(4)程序简练,可读性好;(5)增加和修改流程容易。
本项目于2006年实施,与前期实施的原料场相比,采用结构化及面向对象编程的方法,在编程时间上节省了50%,软件在现场调试时间减少了70%,一次性上线成功。该软件从投产到现场,运行良好。
[1]刁成嘉.面向对象技术导论[M].北京:机械工业出版社,2004.
[2]邵维忠,杨芙清.面向对象的系统设计[M].北京:清华大学出版社,2003.
[3]Marilyn B,Maria R.结构化与面向对象程序设计[M].张光庭,马国富,王崧,译.北京:电子工业出版社,2001.
Application of Structurization and Object-oriented Programming in Stock Yard
LIU Rui-xia and ZHANG Yu-xia
Equipment Division,Tianjin Iron and Steel Group Company Limited,Tianjin 300301,China
Over one hundred belt conveyers of conveying system form a complicated transportation network at TISCO stock yard.In order to improve conveying efficiency and control reliability,the authors,focusing on the characteristic of converter group control,propose the programming principle of function modulization and structurization and object-orientation.Simple,highly effective,understandable and expandable,the process control system for stock yard was put into service only after one month's programming and commissioning and has been running for six years with satisfactory effect.
stock yard;process control;structurized programming
刘瑞霞(1963—),女,河南永城人,工程师,主要研究方向为过程控制技术在冶金企业生产中的应用,E-mail:lrx_5902@126.com。
(收稿 2011-05-27 编辑 潘娜)