工控网首页
>

应用设计

>

大型火电厂配套新型布袋除尘控制系统软件设计

大型火电厂配套新型布袋除尘控制系统软件设计

2005/10/14 15:58:00
摘要:   本文介绍了基于PROFIBUS总线的新型布袋除尘器控制系统软件设计,该系统软件设计分成四个子系统进行。为提高系统的可靠性和实用性,以及满足工艺要求,设计采用了先进的控制策略。通过实际运行证明,该系统达到了节约成本,降低粉尘排放浓度的控制目的。 关键词:   多重背景,顺序控制,布袋除尘器,面向对象 Absatract:   New-type Jet Filter control system based on Profibus Field Bus is introduced, the system’s software design is divided into 4 subsystems. Advanced control strategies that satisfy the control requirements are designed for every sub-system, all which make the whole system more flexible and reliable. It also betters the controllability and advancement of the system.Actual operation results prove that this system has reach the control targets of reducing the run cost and lowering the thickness of discharged dust. Keywords:   multiple instance, sequent control, Jet Filter, Object oriented 1.引言   随着锅炉化工技术的发展和各国工业水平的提高,粉尘污染已经成为最主要的大气污染源之一,这一点在大型火力发电厂尤为突出。原来广泛使用的电除尘器由于其对微小粉尘的除尘率偏低,加上国家环保指标的提高,所以具有极高除尘率的布袋除尘器势必成为除尘器的发展趋势。   采用新型的布袋隔离技术,使得带有粉尘的烟气在通过布袋时将粉尘过滤在布袋的外壁上,而清洁烟气通过布袋进入清洁烟气气室,并进而通过烟道排出;同时利用位于布袋出口的旋转臂上的反吹口,向布袋内部进行反吹,以达到使得固定在壁笼上的布袋进行抖动,将吸附于其上的粉尘抖落至灰斗,并进而经仓泵输出至灰库。   我国成功运行的几个火电厂布袋除尘系统,其技术和系统都依赖于国外进口。因此,自主的开发出适合中国工业的布袋除尘系统,尤其是控制系统就成为必然的选择。 2.系统介绍   图1所示为我们设计的布袋控制器的系统图,作为本项目的核心的布袋除尘控制器采用了PLC作为中央处理器,通过Profibu-DP 总线和I/O板卡ET200M连接。CPU和操作面板OP270之间的通讯采用了多点接口(MPI)。
  主控PLC则采用Siemens的S7-400系列CPU,配套编程工具STEP 7进行软件开发。Profibus-DP总线用于自动化系统中单元级控制设备和分布式I/O的通讯,具有精简的结构。它只使用OSI 七层标准模型中的三层,正是这种精简的结构确保了高速数据传送。传输速率为9.6~12Mbit/s,大大增强了现场级的信息继承能力,提高了系统的可靠性。Profibus总线上连接远程I/O模块ET 200M系列的IM153-1。整个系统包括16路AI,115路DI,55路DO以及4块RTD电阻测温信号端口,从而实现对现场工业量进行实时的监视和控制。   该接口是一种带光隔离的远程I/O板卡系统,不仅支持分布式的I/O配置模式,为系统提供了很好的可扩展性和灵活性,而且可升级为带电热拔插模式,使模块故障对系统的影响降低到最小。 3.系统软件结构设计   本系统软件设计由于工艺要求和对象具体情况不同,我们把它分成4个子系统来进行设计。包括烟气系统、清灰系统、风机系统、模拟量处理系统以及STEP 7和OP面板之间的通信,软件设计结构图如图2所示。   烟气系统包括4个气室,8个单元,主要设备为出口挡板、入口挡板和回转臂电机。气室的开启顺序为入口风档,出口风档,回转臂电机,关操作这是出口风档,入口风档,回转臂电机。 4个气室的操作可以同时进行,也可以逐步开启。根据工艺的要求,我们对气室采用了顺控的控制方式,根据生产的工况,按照上面规定的顺序,去启动和关闭各类设备。   清灰系统是软件设计中的核心部分,其功能是根据气室的压差,对布袋进行定时的反吹,以打落附在布袋上面的粉尘,防止布袋被堵死,从而达到延长布袋寿命的目的。但是反吹频率不能过高,这样容易对布袋造成伤害,反而缩短了它们的寿命。8个脉冲阀门按照一定的顺序布袋进行循环反吹,反吹的频率由4个气室压差的平均值决定。为了消除压差扰动信号的影响,我们采用以气室10次采样求平均值作为有效的输出控制压差,这样可以消除短暂的压差抖动信号对脉冲阀反吹频率的干扰。   风机系统是本项目的前提条件:该系统有2台风机,一用一备。我们对风机采用了联锁的控制方式,当一台风机无法满足要求或是故障时,由程序自动启动备用风机,实现风机之间的自动切换。 模拟量处理单元主要实现的功能是采集现场的工业量,并且通过A/D转换单元存储。以供程序调用和OP面板进行监视。   STEP 7和面板之间的通信涉及到许多信息,为了和面板进行实时的通讯,避免数据通讯的延迟。我们开辟了一个通信专用模块,所有面板和底层通信需要的数据都放在这个数据块,这样OP可以直接访问该通讯模块,实时的将现场的信息反馈在面板上,有利于操作员进行监视和控制 。   其余特殊处理程序,包括回转臂转速脉冲计数等。   我们进行软件设计的时候,对每一个子系统都设计一个功能模块来控制,这样整个软件系统结构非常清晰,易于扩展。只要在烟气系统的控制流程添加通用模块,就可以很容易的把4室的系统扩展为16室。集成化强,有利于维护。
4.软件优化设计方法 4.1 面向对象的通用控制模块设计   在项目的开发中,对于一些常用的设备,采用了面向对象的设计方法。主要包括气室中挡板的控制,还有回转臂电机和风机的控制。 PLC作为一种方便、逻辑处理能力强大的工业控制设备已经广泛的运用于工业控制的各个领域。但是由于每个人的设计习惯不同,导致日后系统的维修和功能扩展比较困难。因此,借鉴已经成功运用于其他程序语言设计的面向对象的设计方法,可以提高PLC程序设计的质量,同时也提高程序的可读性和可移植性。   烟气系统中的挡板和回转臂电机,以及风机,都是具有双DO 、双 DI 的设备。所以在设计当中,我们利用开发工具STEP 7自带的FB(功能模块)和 DB(数据块)对这一类设备编写了一个相同的通用功能模块FB 256,专门对这一类设备进行控制。 如图3所示: 其中DB256是关联给FB的数据块,用于存储FB的所有输入、输出参数和中间变量。在模块当中定义好设备可能用到的故障、远方就地等信号。那么我们在烟气系统流程的设计时,只要在流程的程序模块里调用它所需要的所有设备的对象就可以了。对应设备的不同功能在输入参数上加以区别就可以实现对这一类对象的控制。这样一来,流程的实现就成了简单的重复的调用不同的功能模块而已。如果我们对每个设备都编写一个相应的功能模块,这样不仅增加了编程人员的劳动,而且大大的占用了系统的内存,造成资源的极大浪费,也给以后的维护和调试造成极大的困难。
  另外,S7-400系列PLC在控制设备的时候,必须给被控对象关联数据块,将被控对象的所有信息放在其关联的背景数据块里面。每个设备都有自己独立的数据区,可以通过不同的关联来实现对这些DB块的访问。但是同时产生了一个问题,例如在烟气气室的顺序控制当中,由于控制对象比较多,导致相应的数据块的数量大大增加。这样增加了程序开发和维修的难度,也容易出错。为了解决这个问题,同时为了降低程序代码的出错率,我们采用“多重背景”的控制方式。在这里我们控制的通用对象不再以设备为基本单位,而是气室。我们为气室的控制生成一个通用的功能模块,在这个通用模块里调用气室涉及的所有被控对象的通用设备,而我们关联的数据块也就不再以设备为单位,取而代之的是气室。这就是通用模块的嵌套使用,在系统中嵌套子系统,整个大系统的所有数据关联以气室为单位。把设备的单独控制作为二级系统嵌套在以气室为单位的一级系统里面,这种控制方式,我们称之为   “多重背景”控制。这样程序的结构就非常的清晰,功能的修改也就更加的容易,为系统的开发和调试带来了极大的方便。 4.2 用LAD语言实现顺序控制   顺序控制是一种特定的控制方式,与设备的启停、开关有关。它根据生产过程的工况和被控设备的状态等条件,按照预先规定的顺序去启停、开关被控设备。每一个顺序控制流程,按下了顺控开机的指令后,起始步骤就无条件的立即被执行,直到它后继的转移条件满足为止;而终止步骤在一个顺序的最后,所以没有后继的转移条件。 图4所示为我们一个气室的顺序控制的流程:如果采用专门处理顺序控制的SFC语言,整个控制的逻辑会很容易实现,但是由于SFC语言强大的顺控处理能力,其将耗费巨大的CPU资源,同时占用大量内存,也增加了成本。所以我们采用逻辑功能相对强大的LAD语言来实现顺控。由于每个设备都有运行和停止两种状态,而且每个设备之间都相互关联,比如入口挡板的控制行为取决于出口挡板的运行状态,同时入口挡板又决定后续的操作。由于这样的关联,导致控制的程序非常复杂,而且很冗长。所以在代码的优化实现上我们总结出了强制顺控的控制方式。
  我们对每一个控制对象都强制赋予一个控制位,这些控制位用于标志被控设备的当前受控状态,只有在对象相应的控制位为1时,才允许操作对象。反之,如果相应位为0,则表示设备处于不开或者开到位状态。例如顺控开机的时候,出
投诉建议

提交

查看更多评论