欢迎浏览杂志社官方网站
科技论文

PLC在水厂预处理中的控制逻辑与调试经验

摘要:以某核电厂水厂预处理自动控制系统为例,对水厂预处理PLC自动控制的逻辑、调试问题及运行实践进行探讨。


0引言
可编程控制器(PLC)是一种含有微处理器的数字式电子设备,具有编程方便、快速、可靠性高等优点。可编程控制器控制系统由于其功能完善、应用灵活、可靠性高等特点,有着广泛的应用[1]。本文将以某核电厂水厂预处理自动控制逻辑为例,对PLC的应用进行探讨,并对调试中出现的问题进行分析。
1简介
水厂预处理自动控制系统使用了Allen-Bradley公司出产的PLC5/20(可编程逻辑控制器),所有的逻辑和数据处理、控制信号均由控制间内的PLC进行管理。整个水厂预处理系统由PLC进行自动或半自动控制,通过HMI上提供的各种软操作,运行人员可以在控制室实现对整个系统的操作和监控。
水厂预处理系统通过混凝、澄清、过滤等生产工序,生产出满足生活饮用水标准的生活水并存储在3个生活水箱中。生活水在电厂中有两个主要用途:通过生活水分配系统向1、2号机组提供生产、设备冷却和厂区生活用水;为水厂除盐系统生产除盐水提供足量的生产水。
2澄清池和双料过滤器的控制逻辑
以预处理中澄清池和双料过滤器的控制逻辑为例,对本控制系统在逻辑上采用的安全措施进行一些介绍。
2.1澄清池在运行时逻辑上的安全控制
把所有影响澄清池运行的因素都作为输入信号,在梯形图逻辑中对这些信号进行处理,判断澄清池是否具备投运条件;对能够导致澄清池运行失效的信号进行监控,在这些出现前系统给出报警信息,提醒运行人员关注,如为了提前预知澄清池的耙泥机是否会发生故障,在梯形图逻辑中对耙泥机的扭矩进行监测,一旦出现高扭矩的情况控制系统在HMI发出警告提示;在澄清池运行期间,全程监控化学药品的投加、耙泥机、提升搅拌机的运行,一旦出现问题立即改变澄清池的运行状态。

2.2双料过滤器在运行时逻辑上的安全控制
和澄清池安全逻辑相似,双料过滤器的梯形图也提供了对投运条件的逻辑判断,控制系统会在HMI上给出相关的提示信息,如投运条件不满足,HMI上的部分功能会被屏蔽,运行人员无法进行操作。
2.3报警逻辑
在控制系统中有一整套完善的报警逻辑,它在每次扫描周期里都会收集生产过程中的异常信号,并和在上次扫描周期内收集的数据进行比较,判断系统是否存在新的报警信号,对于新出现的报警信号报警系统会有5min的声音提示。同时,在HMI给出相关信息。
由于在梯形图内编制了大量的安全逻辑,整个控制系统的可靠性大大提高,运行人员在控制间通过HMI能够全盘了解系统运行情况,及时掌握系统出现的各种报警,根据报警信息及时做出处理,这样又进一步保证了控制系统的可靠性。
3PLC内部梯形图子程序的结构
3台双料过滤器的运行和反洗控制逻辑为例,对本控制系统PLC内部梯形图子程序的结构进行探讨。
梯形图子程序LAD28、LAD29、LAD30分别描述了1#双料过滤器、2#双料过滤器、3#双料过滤器的控制逻辑,而LAD31则描述了双料过滤器的反洗控制逻辑。这些子程序之间通过对PLC内部数据位或字节的读写来互相连锁,参与对方的逻辑控制。
正常运行时,水经过双料过滤器入口的流量调节阀(FCV),进入双料过滤器,然后通过SEVO(出口阀门)到达生活水箱。当双料过滤器运行时间达到24h,控制系统会停止双料过滤器的运行并开始进入反洗程序。双料过滤器反洗的主要步骤有:“排水”“空气擦洗”“充水”“反洗”“沉淀”“正洗”。
在双料过滤器进行“排水”步骤时,图1中的阀门BWO、BWI、SEVO、AIRI以及入口阀FCV都会被关闭,阀门AIRO和FRO被打开,双料过滤器中的水被排到地坑。
在进行“空气擦洗”步骤期间,擦洗风机运行,同时阀门AIRI和AIRO被打开,而阀门BWO、BWI、SEVO、FRO以及入口阀FCV都被关闭。在完成上一步骤后,双料过滤器进入“充水”步骤,此时阀门BWO、BWI、SEVO、FRO和AIRI被关闭,只有阀门AIRO和入口阀FCV被打开。此后,双料过滤器进入“反洗”步骤,系统关闭阀门SEVO、FRO、AIRI、AIRO以及入口阀FCV,同时阀门BWO和BWI被打开,系统启动反洗泵,生活水箱中的产品水被用来对双料过滤器进行反洗。
“反洗”步骤结束后,双料过滤器进入“沉淀”步骤,此时,阀门SEVO、FRO、AIRI、AIRO、BWO和BWI以及入口阀FCV都被关闭。反洗程序的最后一步是“正洗”,此时阀门FRO和入口阀FCV被打开,而其它阀门

0319 2.1.png 

SEVO、AIRI、AIRO、BWO和BWI都会被关闭,双料过滤器在“正洗”步骤期间它的出水不进入生活水箱而是被排放到地坑。
为了实现上述控制过程,每个双料过滤器都有对应的梯形图子程序来实现自己的运行控制。考虑到3个双料过滤器的反洗过程完全相同,相关设备的控制已经在各自的梯形图子程序中完成。因此,3个压力过滤器的反洗单独作为一个控制子程序,每个压力过滤器在需要进行反洗时,通过自己运行状态的变化直接进入反洗控制。通过这种逻辑划分,提高了整个系统控制逻辑的执行速度,并且减少PLC内部存储单元的消耗。
1#双料过滤器所对应的子程序LAD28,从逻辑语句0000到0006,主要是PLC对1#双料过滤器监测信号的处理。如逻辑语句0000到0001,它为3台双料过滤器的进出口压差提供一个高压差报警逻辑,当现场的压差开关动作后,PLC会接收到一个高压差信号,此时PLC开始记时,一旦此信号存在时间超过30s,系统就会产生一个报警。而逻辑语句0002到0003为1#双料过滤器的流量提供监测处理,当PLC发现入口流量大于等于175m3/s或者小于等于50m3/s并且超过30s时,控制系统会给出流量报警。逻辑语句0004到0006,提供了对滤料捕捉器的压差和双料过滤器出口浊度的监测。
在子程序LAD28中,逻辑语句0008主要对双料过滤器是否具备投运条件进行逻辑判断。从逻辑语句0009到0014对双料过滤器的运行方式进行逻辑控制。从逻辑语句0015到0020对双料过滤器在运行中各种状态的确定和变换进行逻辑处理,并记录运行时间。逻辑语句0021到0024根据生活水箱液位和双料过滤器入口流量的控制关系,对双料过滤器不同状态下的入口调节阀进行逻辑运算。逻辑语句0025到0033,根据控制要求处理在每种运行状态下相关阀门的开/关。
双料过滤器反洗过程由子程序LAD31统一进行控制。在这个子程序中,PLC需要判断反洗过程是自动控制还是手动控制;反洗的条件是否具备;在反洗过程中是否存在需要暂停反洗的条件;在反洗过程暂停后还需要判断是否允许继续;对反洗过程中的每一步骤进行计时;判断反洗的每个步骤是否完成,是否允许进入下一步骤;在反洗的所有步骤结束后,对相关的控制文件初始化,以准备下一次双料过滤器的反洗。
PLC在对双料过滤器进行控制时,采用了顺序输出指令(SQO),利用SQO顺序输出功能对多个地址进行处理,同时,把SQO的控制文件中POS字节的值作为不同运行状态的标志,这样大大减少了PLC内部的逻辑语句,缩短了整个控制逻辑的扫描时间。PLC在梯形图中使用了大量控制文件、计时器和计数器,利用它们来表示设备的运行状态、以及设备运行状态允许时间。
在梯形图子程序中,逻辑语句构成3种主要功能:安全控制、逻辑处理/运算、设备状态控制。通过这3种功能保证了控制正确,避免了故障和异常工况的发生,减少人员不正确操作带来的异常。
本控制系统的内部逻辑在设计上以现场主要设备和工艺过程为主线,把整个系统的复杂控制分成35个相对简单的控制子程序,在梯形图子程序中,通过设备运行状态的控制语句集中了设备所有相关的逻辑关系。
4水厂预处理自动控制系统的调试及调试中出现的问题
1)PLC内部逻辑在编写时没有考虑到现场实际设备,导致现场设备的动作和控制要求不符。
厂家在对PLC内梯形图的编写和模拟调试期间,会忽略现场设备的实际情况,很少考虑到现场设备的输入/输出信号和设备动作的逻辑关系。一般在PLC内部逻辑中,都会默认一些常用规则,如对外输出信号。对于数字信号(开关量信号)来说,例如通断阀门的开、泵的启动等在PLC内部均会用“1”表示;而对于模拟量信号来说,它们的输出是一个具体的数值,如调节阀的开度,“100”对应全开,“0”对应全关。因此,在PLC的梯形图逻辑中,如果需要打开某个通断阀门,梯形图逻辑把相应文件地址赋值为“1”,PLC会对相应的I/O模块中的通道进行输出,相当于阀门控制回路中的常开接点闭合;如果是需要增加某个流量调节阀的开度,在梯形图逻辑中通过运算,会在相应的文件地址中进行赋值,PLC把这个数值传送到对应的模拟量输出I/O模块中,模块把这个数值转变成4mA~20mA的电流信号,并通过流量调节阀的控制回路送给阀门的信号接受部分,阀门定位器将根据这个电流信号控制流量调节阀的开度。
在通常情况下,在图2(A)中会选用失电排气类型的电磁阀,既电磁阀控制回路带电后,仪表用压缩空气正常供给通断气动阀,此阀门全开;当电磁阀的控制回路失电后,通断气动阀会失去阀门的驱动压缩空气,此阀门全关。图2(B)中的阀门定位器根据传送来的电流信号,通过处理输出相对应压力的压缩空气,控制调节阀的开度。通常都是4mA对应调节阀的0%开度,20mA对应调节阀的100%开度。但是,在实际应用中,为满足某些特殊要求,图2(A)中会选用带电排气类型的电磁阀。当PLC的控制逻辑需要打开通断气动阀时,阀门相应的输出I/O模块通道在PLC内的文件地址会被赋值“1”,I/O模块通道此时相当于一对闭合接点,电磁阀的控制回路带电,通断气动阀失气关闭,这样控制意图和现场设备的实际动作正好相反。

0319 2.2.png

在图2(B)中,阀门定位器的输入电流信号和输出的气压存在着正反比的关系,通常一般选用的是正比关系,既4mA对应最小输出压力,20mA对应最大输出压力。如果现场阀门定位器的输入和输出是反比关系,而PLC内的梯形图逻辑在进行阀位输出时依旧是正比关系,那么调节阀的开度会和控制要求相反。比如:水厂预处理双料过滤器的流量控制,梯形图子程序LAD28中逻辑语句0021,根据生活水箱的液位以及3台双料过滤器的运行状态,控制逻辑会把3台双料过滤器进水流量的运算结果分别放入3个数据地址。而梯形图中的其它子程序把这3个数据地址内的值作为设定值,分别对双料过滤器的入口流量调节阀进行PID控制,运算结果被传送到相应的模拟量I/O模块中,最终形成4mA~20mA的电流信号。如果此时阀门定位器的输入和输出是反比关系,那么,实际流量调节阀的阀门开度就等于100%减去逻辑控制要求的阀门开度。
为了避免可能存在的此类问题对系统运行造成的影响,在现场调试时,必须要检查、核实PLC内每个输出量在梯形图内的控制逻辑是正确的;对PLC每个输出信号所在的控制回路进行检查,确认没有反比关系存在,如果存在反比关系,那么,为保证控制意图和现场设备动作一致,在PLC的梯形图逻辑中进行相关输出前必须取反。
2)控制系统在HMI上存在错误,导致运行人员得到错误的现场信息。
HMI上显示的参数和报警以及设备状态和PLC内的数据文件存在着映射关系,PLC内这些被映射的数据文件一旦发生变化,在HMI上的相关显示内容也会跟着改变。这类问题在调试中相对来说是最好解决的,只要拥有组态软件的编辑权限,就能够直接对这些错误进行修改。
HMI上的所有显示信息都是以PLC内部的数据文件为依据的,如果在编写HMI的过程中发生错误,使得某个显示信息错误的映射到PLC内其它数据文件上,那么在运行中HMI上这个显示信息就会和现场实际情况不一致。在调试中需要对PLC内每个HMI上显示信息映射的数据文件进行测试,人为改变这些数据文件的值,确认HMI上显示信息能够正确反应PLC内这些数据文件的变化。或者在HMI上改变设备和系统的状态,在PLC内检查显示信息映射的数据文件能够发生正确变化。
5水厂预处理自动控制系统的运行实践
水厂预处理在正式运行后也逐渐暴露出一些问题,这些问题主要体现在以下几点:
1)在水厂预处理控制系统中,如果运行人员对某台双料过滤器进行反洗,并且在反洗完成后再次让此双料过滤器进入反洗过程,此时双料过滤器的控制会发生死锁。在系统自动控制的情况下,由于双料过滤器的运行、反洗、备用都是完全由系统控制的,这个死锁能够被避免。但是,在HMI上手动控制双料过滤器的运行状态时,由于人员的操作失误可能会导致双料过滤器反洗死锁。
查看两个梯形图子程序LAD28和LAD31,对双料过滤器的运行、反洗、备用之间的转换进行分析,查找死锁产生原因。
先对梯形图子程序LAD28中的逻辑进行分析:
从逻辑语句0000到0006,对双料过滤器的各类运行参数进行监测,这些逻辑不直接参与双料过滤器的控制,它们属于控制系统的安全控制部分。而逻辑语句0007对双料过滤器的投运条件进行判断,这个逻辑不参与双料过滤器的控制,但是和HMI的提示信息连锁,能够在HMI给运行人员提供警告的作用。
逻辑语句0008主要对双料过滤器是否存在投运需求进行逻辑判断。逻辑语句0009判断控制系统目前使用的控制方式,是自动模式还是半自动模式。逻辑语句0010判断是否1#双料过滤器处于OFF,并对相应的内部数据N13:0/0进行赋值。逻辑语句0011和0014,确定了1#双料过滤器是处于“LEAD”还是“LAG”或者两者都不是,并通过对内部数据N13:0/8和N13:0/9的赋值参与系统的自动模式控制。
逻辑语句0015是对1#双料过滤器的运行状态进行控制的主要部分,它和逻辑语句0016、0017、0018、0019、0020共同完成1#双料过滤器的状态控制。当1#双料过滤器在备用状态时,如果不是自动控制模式,只要按下HMI的"SERVICE"按钮,就会进行运行状态;如果是自动控制模式,只要存在投运的要求并且处于“LEAD”或“LAG”时,1#双料过滤器也能自动进入运行状态。只要1#双料过滤器处于运行状态,一旦出现运行超时信号,并且另外两台双料过滤器不处于反洗或存在反洗要求时,1#双料过滤器就会出现反洗要求。此时,如果系统是自动控制模式,1#双料过滤器会自动进入反洗状态,并在反洗结束后变成备用状态;如果不是自动控制模式,运行人员在HMI上按下“反洗要求”按钮后,在HMI的反洗操作界面上按下“反洗开始”按钮,1#双料过滤器进入反洗状态,当反洗结束时1#双料过滤器进入备用状态。
逻辑语句0021主要是根据工艺要求,当生活水箱液位从95%~50%发生变化时,3台双料过滤器总流量从250m3/h~370m3/h变化,并对每一台双料过滤器的允许流量进行计算。而逻辑语句0022、0023和0024,在自动控制模式下把这些计算值作为SP值,对双料过滤器的入口调节阀的开度进行PID控制。同时,控制反洗时双料过滤器的入口流量调节阀的开度。
从逻辑语句0025到0033,对1#双料过滤器在不同运行状态时的相关设备状态进行控制,实现1#双料过滤器的备用、运行、反洗以及水质取样。
继续对梯形图子程序LAD31中的逻辑进行分析:
逻辑语句0000确定了双料过滤器反洗控制模式,是自动还是半自动。逻辑语句0001对双料过滤器的反洗条件进行判断。逻辑语句0002确认双料过滤器反洗过程是否会被暂停。逻辑语句0003判断双料过滤器反洗过程是否继续。从逻辑语句0004到0009,对双料过滤器反洗状态的变换进行逻辑控制,其中,逻辑语句0006是反洗步骤顺序进行的关键。当1#双料过滤器进入反洗时,触发SQO指令,在N17:11内存放的时间值被输出到计数器C5:6.PRE,反洗进入第一步骤,同时计数器开始记数;当反洗处于第1到第6任何步骤时,控制系统在自动控制模式下每一步骤的时间完成后,或者在半自动模式下按“下一步骤”按钮,都会触发SQO指令,反洗进入下一步,同时把这一步骤的时间放入计数器C5:6.PRE。当反洗处于最后一步并触发SQO指令后,控制系统的控制逻辑对SQO指令进行复位,为下次双料过滤器反洗作好准备。
梯形图LAD28和LAD31能够按照工艺要求实现双料过滤器的运行控制逻辑,但是没有注意到梯形图子程序LAD28和LAD31之间的一个不在设计意图内的隐藏连锁,下面对这个隐藏的连锁进行解说。
1#双料过滤器反洗完成后,R6:5被复位,同时N13:0/7被锁定为1。如果此时直接手动进入反洗,在HMI上按下“反洗请求”按钮,N13:66/3会被赋值为1。根据LAD28中逻辑语句0019中描述,R6:2.POS将会被赋值为3,紧接着在逻辑语句0020中把N13:0/5赋值为1,双料过滤器进入反洗准备状态。
在按下双料过滤器反洗界面中的开始按钮后,当新的扫描周期开始并执行到LAD28中逻辑语句0015时,会触发一个SQO指令,使得R6:2.POS被赋值为4。当执行到逻辑语句0020时,N13:0/6会被赋值为1,此时双料过滤器进入正在反洗状态。随着程序执行到梯形图子程序LAD31中的逻辑语句0006时,由于条件满足,一个新的SQO指令被触发,使得R6:5.POS被赋值为1,反洗进入排水状态。
当新的扫描周期开始后,并再次执行到LAD28中逻辑语句0015时,由于N13:0/7一直被锁定在1,并且此时双料过滤器处于正在反洗状态,既N13:0/6为1。因此,SQO指令再次被触发,使R6:2.POS被赋值为5。当程序继续执行到逻辑语句0018时,由于R6:2.POS为5,导致R6:2被复位,R6:2.POS变成0。在执行逻辑语句0020后,N13:0/1会被赋值为1,双料过滤器的反洗状态变成备用状态,而N13:0/6同时变成0。
双料过滤器的反洗依旧在继续,随着一次次出现的扫描周期,LAD31中的逻辑语句0006不断的被执行,直到R6:5.POS变成7后,在执行本程序的逻辑语句0008时,由于N13:0/6为0,导致程序无法对R6:5进行复位,使得R6:5.POS在以后扫描周期中始终为7。此时,反洗死锁,其它的双料过滤器无法进行反洗。
通过上面的分析,发现死锁产生的主要原因是:在逻辑控制设计过程中忽略了程序扫描的先后顺序,导致双料过滤器在连续两次反洗后出现死锁。现在运行过程中已经采取相应措施避免死锁的发生,当某台双料过滤器在反洗结束后需要再次进行反洗时,必须先进入运行状态,此后允许双料过滤器进入反洗。一旦出现死锁,可以通过对R6:5.POS进行复位,使双料过滤器的反洗逻辑能够正常初始化,解除死锁状态。
PLC内部逻辑容易存在隐藏错误,在系统运行期间这些隐藏错误会导致局部控制出现死锁。自动控制系统需要处理的逻辑关系非常多,它不仅仅包含了设备正常运行的控制逻辑,还在其中设置了很多安全连锁,所有这些使得控制系统内部的逻辑非常复杂,也容易在这些正常的逻辑关系下隐藏少数不在设计意图内的非正常逻辑,这些非正常逻辑中有些是良性的,它们不会影响控制系统的运行;而有些是恶性的,它们在某些条件下能够被激活,影响控制系统的正常控制,甚至导致系统的死锁。对于这类PLC内部逻辑中存在的隐性错误在调试中是很难发现的,大多数是经过长期运行后才能逐渐暴露出来。
2)水厂预处理系统中的双料过滤器在采用反洗自动模式控制时,控制系统将按照界面上显示的时间自动执行每一步骤,但是由于计算错误或者其他原因,实际操作中反洗的第1步“排水”和第3步“充水”在界面上设定的时间是不合理的,如果双料过滤器的排水时间达到16min,双料过滤器内的水将会被排空,直接影响到反洗第2步“空气擦洗”的效果;而在进行反洗第3步“充水”时,必须要根据现场双料过滤器的排气管是否有水溢流来判断水是否真正的充满罐体。
为了解决上述问题,在实际运行中采用半自动控制模式来控制双料过滤器的反洗,运行人员直接参与控制过程。在进行反洗的第1步“排水”时,运行人员通过反洗地

0319 2.3.png 

坑液位的上升来判断是否结束“排水”。
由于双料过滤器的运行采用半自动模式,因此系统出水余氯的控制需要由运行人员根据出水流量,在HMI上调节次氯酸钠的行程,维持系统出水正常余氯含量。
6结束语
经过调试和多年运行的验证,水厂预处理控制系统是一套成功的自动控制系统,整个系统的设计方案安全可靠、经济实用、易于编程、操作及维修。PLC控制系统功能完善、结构简单、组态灵活并具有较强的抗干扰能力,已成为水厂现代化运行管理的重要组成部分,其先进的自控技术,不仅解决了以往水处理过程的工况复杂、成本高等难题,而且提高了生产效率,降低了能源消耗,使水处理的各操作环节更加精确化,提高了供水质量和生产效率。


热门期刊