袁平路,张 捷,李天毅,杨 晋
(中国水利水电科学研究院,北京 100038)
随着硬件技术的不断提升,PLC的功能也越来越强大,编程手段也越来越向高级语言发展,基本上已经脱离了原始的梯形图程序。当编程语言和编程手段不再局限于传统的与、或、非之后,人们越来越多的将精力放在程序的智能化上。所谓“智能化”就是将原本需要通过人力计算或过程复杂的功能通过程序自动计算的方式解决。本文介绍了水电厂PLC智能化设计的原则、顺控流程的设计思想和功率调节的设计方法。
(1)命令防误动作:从PLC上电到稳定运行期间,程序应将命令区以及命令位清零,以防止上次停电前残留命令及其它误操作动作设备。
(2)命令时间比较功能:在厂站层下发命令到现地层后,程序会对厂站层所发命令时间与本套CPU接收命令时间进行比较,如果两个时间的差值在一定范围之内,则允许执行命令,否则将认为该命令为无效命令,予以丢弃。
(3)命令定时清除功能:为避免由于命令没有及时被清除,而造成对设备的重复操作及误操作,程序应在一定时间内对命令区所有命令进行清除操作。
(4)命令执行反馈功能:在厂站层下发命令之后,程序如果执行命令,则反馈命令执行代码给厂站层,如果未执行命令,则反馈相应的错误代码给厂站层,以便查找问题,同时也可防止命令意外丢失。
(5)数据长度监测功能:为防止因数据溢出而造成CPU负担过重,程序中对每一种数据的处理加入对数据长度及类型的判断,如果数据长度或类型错误,程序就会产生报警并上送厂站层。
(6)有功功率、无功功率调整限值处理功能:为了防止有功功率、无功功率调整限值超越限定值,程序设定了调整安全区域,有功功率、无功功率调整仅在该安全区域内进行调整,一旦发现数据超出了限定值,则按照规定的最大或最小限值进行调整。
(1)数据自动上送功能:程序可以根据上送数据的类型、长度,自动计算各数据的首地址。通过首地址及数据长度,自动上送各种类型数据,提高了数据上送的效率。
(2)CPU自动切换功能:当前大中型水电厂一般采用双机冗余热备结构,对设备实施控制。为了使冗余CPU 可以在特定情况下完成切换,保证厂站层采集数据的完整性,程序会自动监测冗余CPU的状态及其网络状态,并在适当的条件下自动对CPU进行切换。
(3)各种工况之间的自动转换功能:厂站层下发命令至现地层后,程序可以根据机组当前状态及下发命令完成不同工况之间的转换。
(1)编写程序应使用所有PLC均支持的语言,保证在任何CPU中均可良好移植。
(2)考虑变量定义区的位置和大小,以便在常用的PLC系列中均可使用。
(1)机组程序应具有手、自动控制功能:在对机组实施开、停机试验的过程中,先用手动流程控制,进行程序验证,当机组开、停机试验完成且程序测试无误后,方可容许操作人员进行自动流程试验。
(2)数据通道质量判别功能:对于所有类型的数据,均进行通道质量判别处理,在通道质量正常时允许数据进入控制,在通道质量异常时不允许数据进入控制。
(3)模拟量数据I/O控制状态判别功能:对于模拟量数据,增加对该类型数据的I/O控制状态判别功能,在该状态处于闭锁时,数据不许进入控制;在该状态处于闭锁解除时,数据可以进入控制;厂站层可以控制对该点的闭锁解除;例如:当在规定时间内温度增量≥规定数值,则该温度点应该视为不可信点并退出温度停机控制,只有当运行人员手动解锁之后,该温度点才可以重新回归控制点,作为事故停机的依据。
(4)数据量强制状态判别功能:对于所有类型的数据,均进行强制状态判别处理,数据可以通过厂站层进行强制,并返回强制状态。
(5)通信接收区及发送区的划分:通过对通信接收区及发送区的划分,确定合理区间,将PLC与外部通信的数据放在确定区域,避免数据重叠产生不可预知的后果。
由于现场程序架构没有统一标准,调试人员仅靠本身素质完成现场投运工作造成维护不便、风险加大等问题。为了规范现场控制流程,降低现场投运风险,对水电厂程序架构进行整体标准化。通过顺控流程的设计,调试人员应可以方便的在各种工况下进行转换,同时,通过对流程相关变量的控制和监视可以在相应的步数对外围设备进行控制,也可以监视每一步的运行时间等参数。
(1)步:步为SFC流程控制的基本元素,是流程执行中的分界点。
(2)步的执行条件:在该条件满足的时候,流程可以进入到下一步。
(3)选择分支:步的末端运行到下一步的顶端的传递路径链路,每一步至少对应一个选择分支,也可对应多个选择分支。
(4)链路:链路可以在步和转换等之间建立连接。
(5)跳转:跳转用于表示未完全显示的有向链路。
(1)手、自动顺控切换功能。
(2)跳转功能。
(3)单步计时功能。
(4)单步输出功能。
(5)单步超时报警功能。
(6)流程整体计时功能。
(7)工况转换功能。
(1)程序的最大步数:该变量定义了程序的最大运行步数。
(2)程序的最大运行时间:该变量定义了程序的最大运行时间,当程序到达最大时间尚未完成的时候,会自动报警。
(3)程序每步的最大运行时间:该变量定义了程序每步的最大运行时间,当每步的时间到达时,会自动报警。
(4)工况运行步数:该变量定义了程序中特定工况的步数,例如:空转在第4步,则定义该步数为4,程序可以根据步数自动跳转,完成工况的转换。
(5)分支结构的信息:分支结构信息包括:程序第几步有分支结构,本步分支结构的分支数,每个分支结构对应的跳转步数。
(6)流程手、自动模式:通过该变量可以控制流程的手、自动模式切换。
(7)步执行条件:通过该变量流程可以按步顺序执行。
(8)流程第X步启动:当流程在第X步启动时,该变量置1,工程人员可以通过该变量控制外部设备。
(9)流程第X步超时报警:当流程在第X步超时报警时,该变量置1,工程人员可以通过该变量控制流程报警或退出。
(10)流程总时间超时报警:当流程总时间超时报警时,该变量置1,工程人员可以通过该变量控制流程报警。
(11)流程第X步运行时间:记录流程第X步的运行时间。
(12)流程当前运行步号:记录流程当前运行步号。
功率调节是指对水电厂调速器和励磁系统的自动调节,它是水电厂发电过程中的重要一环。目前水电厂功率调节模式一般分为现地手动调节和远方自动调节两种方式。
手动调节就是通过传统把手由人工对功率进行调节;自动调节就是通过计算机下令的方式由PLC进行自动计算后对功率进行调节。现在大部分水电厂都会通过总线和变送器两种方式对功率进行采集后调节。PLC程序智能化设计后会自动对采集方式进行无扰动切换,保证机组对功率的调节。
通过对水电厂PLC程序的智能化设计,调试人员通过简便的方式就可以完成水电厂核心功能的控制,不仅可以降低调试人员的调试难度,同时也大大提高了调试的效率、减少了程序的问题。同时程序增加了对通道的判断、温度梯度闭锁等功能,使整套程序的功能更加多样,并提高了整套程序对外围设备控制的安全性。