本节介绍一个三泵生活/消防双恒压无塔供水的实例。如图9-10所示,市网自来水用高低水位控制器EQ来控制注水阀YV1,自动把水注满储水水池,只要水位低于高水位,就自动往水池注水。水池的高/低水位信号也直接送给PLC,作为高/低水位报警。为了保证供水的连续性,水位上下限传感器高低距离较小。生活用水和消防用水共用三台泵,平时电磁阀YV2处于失电状态,关闭消防管网,三台泵根据生活用水的多少,按一定的控制逻辑运行,维持生活用水低恒压。当有火灾发生时,电磁阀YV2得电,关闭生活用水管网,三台泵供消防用水使用,维持消防用水的高恒压值。火灾结束后,三台泵再改为生活供水使用。
图9-10 生活消防双恒压供水系统构成图
对三泵生活/消防双恒压供水系统的基本要求是:
(1)生活供水时,系统低恒压值运行,消防供水时高恒压值运行。
(2)三台泵根据恒压的需要,采取“先开先停”的原则接入和退出。
(3)在用水量小的情况下,如果一台泵连续运行时间超过3h,则要切换下一台泵,即系统具有“倒泵功能”,避免某一台泵工作时间过长。
(4)三台泵在启动时都要有软启动功能,要有完善的报警功能。
(5)对泵的操作要有手动控制功能,手动只在应急或检修时临时使用。
一、控制系统的I/O点及地址分配
根据图9-10及以上控制要求统计控制系统的输入/输出信号的名称、代码及地址编号如表9-7所示。水位上下限信号分别为I0.1、I0.2,它们在水淹没时为0,露出时为1。
表9-7 输入输出点代码及地址编码
二、PLC系统选型
从上面的分析可以知道,系统共有开关量输入点6个、开关量输出点12个、模拟量输入点1个、模拟量输出点1个。如果选用CPU224PLC,也需要扩展单元;如果选用CPU226PLC,则价格较高,浪费较大。参照西门子S7-200产品目录及市场实际价格,选用主机为CPU222(8入/6继电器输出)一台,加上一台扩展模块EM222(8继电器输出),再扩展一个模拟量模块EM235(4AI/1AQ)。这样的配置是最经济的。整个PLC系统的配置如图9-11所示。
图9-11 恒压供水PLC系统组成
三、电气控制系统原理图
电气控制系统原理图包括主电路图、控制电路图及PLC外围接线图。
1.主电路图
图9-12所示为电控系统主电路。三台电机分别为M1、M2、M3。接触器KM1、KM3、KM5分别控制M1、M2、M3的工频运行;接触器KM2、KM4、KM6分别控制M1、M2、M3的变频运行。
图9-12 电控系统主电路
FR1、FR2、FR3分别为三台电机过载用的热继电器;QS1、QS2、QS3、QS4分别为三台泵电机主电路的隔离开关;FU1为主电路的熔断器;VVVF为通用变频器。
2.控制电路图
图9-13所示为电控系统控制电路图,图中SA为手动/自动转换开关,SA打在1的位置为手动控制状态,打在2的位置为自动控制状态。手动运行时,可用按钮SB1~SB8控制三台泵的启/停和电磁阀YV2的通/断;自动运行时,系统在PLC程序控制下运行。
图中HL10为自动运行状态电源指示灯。对变频器进行复位时只提供一个干触点信号,由于PLC的4个输出点为一组且共用一个COM端,而本系统又没有剩下单独的COM端输出组,因此通过一个中间继电器KA的触点对变频器进行复频控制。图9-13中的Q0.0~Q0.5及Q1.0~Q1.5为PLC的输出继电器触点,它们旁边的4、6、8等数字为接线编号,可结合图9-12一起读图。
图9-13 电控系统控制电路
3.PLC外围接线图
图9-14所示为PLC及扩展模块外围接线图。发生火灾时,火灾信号SAI被触动,I0.0为1。
本例忽略了以下因素:
(1)直流电源的容量。
(2)电源方面的抗干扰措施。
(3)输出方面的保护措施。
(4)系统保护措施。
图9-14 恒压供水控制系统PLC及扩展模块的外围接线
四、系统程序设计
硬件连接确定之后,系统的控制功能主要通过软件实现,结合前述泵站的控制要求,对泵站的软件设计分析如下:
1.由“恒压”要求出发的工作泵组数量管理
前边已经说过,为了恒定水压,在水压降落时要提高变频器的输出频率,且在一台泵工作不能满足恒压要求时,需启动第二台泵或第三台泵。判断是否启动新泵的标准是变频器的输出频率达到设定的上限值。这一功能可通过比较指令实现。为了判断变频器工作频率达上限值的确实性,应滤去偶然的频率波动引起的频率达到上限的情况,在程序中考虑采取时间滤波。
2.多泵组泵站泵组管理规范
由于变频器泵站希望每一次启动电动机均为软启动,又规定各台水泵必须交替使用,多泵组泵站泵组的投运要有个管理规范。在本例中,控制要求中规定任一台泵连续变频运行不得超过3小时,因此每次需启动新泵或切换变频泵时,以新运行泵为变频泵是合理的。具体操作时,将现行运行的变频泵从变频器上切除,并接上工频电源运行,将变频器复位并用于新运行泵的启动。除此之外,泵组管理还有一个问题就是泵的工作循环控制,本例中使用泵号加1的方法实现变频泵的循环控制(3再加1等于零),用工频泵的总数结合泵号实现工频泵的轮换工作。
3.程序的结构及程序功能的实现
由于PLC在恒压供水系统中的功能较多,模拟量单元及PID调节都需要编制初始化及中断程序,因此本程序可分为三部分:主程序、子程序和中断程序。
系统初始化的一些工作放在初始化子程序中完成,这样可节省扫描时间。利用定时器中断功能实现PID控制的定时采样及输出控制。主程序的功能最多,如泵切换信号的生成、泵组接触器逻辑控制信号的综合及报警处理等都在主程序中。生活及消防双恒压的两个恒压值是采用数字方式直接在程序中设定的。生活供水时系统设定值为满量程的70%,消防供水时系统设定值为满量程的90%。在本系统PID中,只是用了比例和积分控制,其回路增益和时间常数可通过工程计算初步确定,但还需要进一步调整以达到最优控制效果。初步确定的增益和时间常数为:
增益Kc=0.25;
采样时间Ts=0.2 s;
积分时间Ti=30 min。
程序中使用的PLC元件及其功能如表9-8所示。
表9-8 程序中使用的PLC机内器件及功能
双恒压供水系统的梯形图程序及程序注释如下。因为程序较长,所以读图时请按网络标号的顺序进行。
程序注释:双恒压供水
Network1
//上电初始化,调初始化子程序
LD SM0.0
CALL SBR0
Network2
//消防/生活压力给定
LD I0.0
MOVR 0.9, VD104
NOT
MOVR 0.7, VD104
Network 3
//故障结束时重新激活
LD SM0.1
O M0.0
INCB VB300
Network4
//增泵、滤波
LD I0.0
AD>= VD250, VD212
LDN I0.0
AD>= VD250, VD208
OLD
AN M0.1
TON T37, 50
Network 5
//工频泵加1
LD T37
AB<= VB301, 1
EU
= M0.1
INCB VB301
Network 6
//减泵、滤波
LDD<= VD250, 1800
AN M0.2
TON T38, 100
Network 7
//工频泵减1
LD T38
AB> VB301, 0
EU
= M0.2
INCB VB301
Network 8
//增泵或倒泵时置位
LD M0.1
0 M0.3
S M2.0, l
Network 9
//复位变频器频率,准备软启动
LD M2.0
TON T33, 1
= Q1.5
Network 10
//关断当前变频泵
LD T33
EU
= M0.4
Network 11
//变频泵号加1
LD M0,4
S M2.1, l
INCB VB300
Network 12
LD M2.1
TON T34, 2
Network 13
//产生当前泵工频启动脉冲信号
LD T34
EU
= M0.5
R M2.1, 1
Network 14
LD M0.5
S M2.2, 1
Network 15
LD M2.2
TON T39, 30
Network 16
//下一台泵变频运行启动信号
LD T39
EU
= M0.6
R M2.2, 1
R M2.0, 1
Network 17
//变频泵号转移
LDB> VB300, 3
MOVB 1, VB300
Network 18
//计时
LDB= VB301, 0
A SM0.4
EU
INCD VD310
Network 19
//3 h到,倒泵
LDD>= VD310, 180
EU
= M0.3
MOVD 0, VD310
Network 20
//有工频泵运行时,复位VD310
LDB<> VB301, 0
MOVD +0, VD310
Network 21
//1号泵变频运行逻辑
LD SM0.1
0 M0.0
0 M0.6
AB= VB300, 1
O Q0.1
AN M3.0
AN M0.4
AN Q0.0
= Q0.1
Network 22
//2号泵变频运行逻辑
LD M0.6
AB= VB300,2
O Q0.3
AN M3.0
AN M0.4
AN Q0.2
= Q0.3
Network 23
//3号泵变频运行逻辑
LD M0.6
AB= VB300, 2
O Q0.5
AN M0,3
AN M0.4
AN Q0.4
= Q0.5
Network 24
//1号泵工频运行逻辑
LD M0.5
O Q0.0
LDB= VB300, 2
AB> VB301, 0
LDB= VB300, 3
AB> VB301, 1
OLD
ALD
AN Q0.1
= Q0.0
Network 25
//2号泵工频运行逻辑
LD M0.5
O Q0.2
LDB= VB300, 3
AB> VB301, 0
LDB= VB300, 1
AB> VB301, 1
OLD
ALD
AN Q0.3
= Q0.2
Network 26
//3号泵工频运行逻辑
LD M0.5
O Q0.4
LDB= VB300, 1
AB> VB301, 0
LDB= VB300, 2
AB> VB301, 1
OLD
ALD
AN Q0.5
= Q0.4
Network 27
//发生火灾时,打开YV2阀
LD I0.0
= Q1.0
Network 28
//水池低水位处理
LD I0.1
O M3.1
A I0.2
= M3.1
Network 29
//水池水位下限信号灯
LD SM0.5
O M3.2
A M3.1
O I0.5
= Q1.1
Network 30
LD SM0.5
O M3.3
A I0.3
O I0.5
= Q1.2
Network 31
LD SM0.5
O M3.3
A I0.0
O I0.5
= Q1.3
Network 32
LD I0.4
O M3.2
A M3.1
= M3.2
Network 33
LD I0.4
O M3.3
A I0.3
= M3.3
Network 34
LD I0.4
O M3.4
A I0.0
= M3.4
Network 35
LD M3.1
N M3.2
LD I0.3
AN M3.3
OLD
LD I0.0
AN M3.4
OLD
O I0.5
Q1.4
Network 36
LD M3.1
O I0.3
= M3.0
MOVB 0, VB300
MOVB 0, VB301
ED
= M0.0
初始化子程序:
Network 1
LD SM0.0
MOVD +1800, VD204
MOVD 22400, VD208
MOVD 28800, VD212
MOVR 0.25, VD112
MOVR 0.2, VD116
MOVR 30.0, VD120
MOVR 0.0, VD124
MOVR 20.0, SMD34
ATCH INT1, 10
Network 1 //PID中断子程序
LD SM0.0
ITD AIW0, AC0
DTR AC0, ACO
/R 32000.0, AC0
MOVR AC0, VD100
PID VB100, 0
MOVR VD108, AC0
MOVR VD108, AC0
*R 32000.0, AC0
Network 2
LDR<= AC0, VD204
OW> T39, 25
MOVD AC0, AC0
Network 3
LD SM0.0
ROUND AC0, AC0
MOVD AC0, VD250
DTI AC0, AC0
MOVW AC0, AQW0
END_INTERRUPT_BLOCK