辅控系统模块化设计应用

2022-04-07 09:06
水电站设计 2022年1期
关键词:控制程序顶盖模块化

张 磊 磊

(雅砻江流域水电开发有限公司,四川 成都 610051)

0 前 言

常规水电站机组技术供水系统用户主要包括水导轴承、推力、下导轴承、上导轴承、发电机空冷器及主轴工作密封等。技术供水程序设计时一般以水泵出口压力和排水总管流量作为控制量。当压力或流量降低至设定值时进行泵组切换。若切换后压力流量仍不满足要求,则两台或多台泵组同时运行,以满足设备运行需要。常规水电站油气水系统等辅助具有一定的通用性,其控制逻辑和程序也同样如此,相互之间可以借鉴。本文以某电站技术供水系统控制程序为例,提出了控制程序模块化设计的意义。

1 技术供水系统简介

某电站技术供水系统包括顶盖取水方式和水泵尾水取水方式。顶盖取水方式与水泵取水方式通过三通阀相连。三通阀排水位置以顶盖取水方式退出,供水位置顶盖以取水方式投入。同时,顶盖取水管上还设计了辅助泄压管,当管路压力过高时进行泄压。此外,供水管路上还设计了四通阀实现管路正反向供水切换。

控制部分系统主要采集了出水总管的压力、流量及顶盖泄压管泄压阀前压力。水泵供水时,当管路压力和流量低于设定值时,轮换另外一台泵,同时两台水泵会定期轮换。顶盖取水时,当泄压阀前管路压力高于设定值时,泄压旁路电动阀打开。当供水总管压力和流量不满足要求时,运行方式切换为水泵供水,期间涉及到三通阀的关闭控制。

2 程序变量定义

为了将程序模块化、流程化,便于其他系统移植,技术供水系统控制程序将变量也进行了模块化设计。程序中定义了4个结构数据类型,分别是模拟量定值结构(AI_LIMITS)、水泵参数结构(PUMP_STR)、触摸屏设定结构(SETTING_STR)和时间统计结构(TIME_COUNT_STR)。以水泵结构参数为例,其导出的数据类型见表1。

表1 水泵结构参数

变量定义时,利用以上导出结构类型定义了一个包括5台水泵结构参数的数组,数组元素的类型即是上述导出的结构类型。无论被控制设备是2台还是2台以上,相关内容可以直接移植,按需使用(见表2)。

表2 5台水泵结构参数的数组

3 控制程序设计

程序设计部分包括主程序MAIN、IO-SCAN函数以及各类子程序程序,结构见图1,程序的控制主要流程见图2。

图1 主程序MAIN、IO-SCAN函数以及各类子程序

主程序MAIN函数根据不同的控制需要,按照不同的循环周期对子函数进行调用。如模拟量采样AI_PROC函数,每1 s调用一次,输出函数OUTPUT每100 ms调用一次,状态监视函数则是一直调用。这样处理既能满足系统控制要求,又能很好节省CPU内存和处理时间。

子程序中主要包含了初始化程序INIT、状态判断STATUS、启泵PUMP_START、停泵PUMP_STOP、四通阀控制STF_CONTROL等程序。

初始化程序INIT很重要,特别是对于系统设定值来源于触摸屏的控制系统,如果不在INIT程序中将原始值写入CPU内部寄存器,那么在系统掉电重启的情况下,相关参数可能丢失。技术供水系统INIT函数中主要对主泵的号数、水泵台数、运行状态所在的点号、水泵的启动步骤号、流量低定值和压力低定值进行了初始化,防止系统启动后的混乱。

状态判断STATUS程序主要是判断水泵是否存在故障、水泵是否需要轮换、技术供水方式的选择、水泵运行时间统计,并根据状态判断开出水泵启动或轮换信号,最终输出启泵PUMP_START中变量PUMP_START_STEP[START_MAIN_PUMP_NO]的值。

启泵PUMP_START程序则利用CASE OF函数,对设备进行顺控,CASE函数主要包括5个标签:

1:PUMP[START_MAIN_PUMP_NO].STARTING:=1;(*置主泵正在启动标志*)

IF DI[45]THEN(*机组顶盖取水三通阀处排水位置*)

PUMP_START_STEP[START_MAIN_PUMP_NO]:=3;

(*机组顶盖取水三通阀处排水位置,直接起泵*)

ELSE

OUT[5]:=5000;(*机组顶盖取水三通阀正转*)

PUMP_START_STEP[START_MAIN_PUMP_NO]:=2;

END_IF;

2:PUMP_KON(IN1:= DI[45],PT1:=T#180S);

IF PUMP_KON.Q1 THEN

PUMP_START_STEP[START_MAIN_PUMP_NO]:=3;

END_IF;

IF PUMP_KON.Q2 THEN

PUMP[START_MAIN_PUMP_NO].STARTING:=0;(*清主泵正在启动标志*)

PUMP_START_STEP[START_MAIN_PUMP_NO]:=1;

OUT[(START_MAIN_PUMP_NO-1)*2+1]:=0;(*开启泵脉冲清0*)

END_IF;

3:OUT[(START_MAIN_PUMP_NO-1)*2+1]:=5000;(*起泵*)

PUMP_START_STEP[START_MAIN_PUMP_NO]:=4;

4:PUMP_KON(IN1:=0,PT1:=T#20S);

IF PUMP_KON.Q2 THEN

PUMP_START_STEP[START_MAIN_PUMP_NO]:=5;

END_IF;

5:(*检测两组泵运行信号*)

PUMP_KON(IN1:=(DI[(START_MAIN_PUMP_NO-1)*6+4]),PT1:=T#50S);

IF PUMP_KON.Q1 THEN(*启动成功*)

PUMP[START_MAIN_PUMP_NO].STARTING:=0;

PUMP_START_STEP[START_MAIN_PUMP_NO]:=1;

END_IF;

IF PUMP_KON.Q2 THEN(*启动失败*)

IF NOT DI[(START_MAIN_PUMP_NO-1)*6+4]THEN(*泵启动异常*)

PUMP[START_MAIN_PUMP_NO].FAULT_CODE:=4;(*故障码*)

END_IF;

PUMP[START_MAIN_PUMP_NO].STARTING:=0;(*清主泵正在启动标志*)

PUMP_START_STEP[START_MAIN_PUMP_NO]:=1;

OUT[(START_MAIN_PUMP_NO-1)*2+1]:=0;(*开启泵脉冲清0*)

END_IF;

启泵程序中,首先判断三通阀是否处于排水位置,如果处于排水位置则直接启泵,即将泵启动步骤号赋值为3,执行CASE中的第三个标签。若三通阀处于供水位置,则即将泵启动步骤号赋值为2,执行CASE中的第2个标签,开启三通阀。标签4则是延时20 s后转到标签5,判断泵是否启动成功,并根据结果做相应处理。

在上述程序设计中,相关变量并未明确,如PUMP[START_MAIN_PUMP_NO].STARTING中的START_MAIN_PUMP_NO值是通过其他子程序进行判断的,无论系统有几台控制或轮换设备,启泵程序只需要这一段,不需要针对不同的主泵号重复编写程序,效率得到了明显提高。

4 关于控制程序的一些思考

技术供水系统控制程序涉及到多个设备,并且各设备运行状态和启动流程具有一定的先后关系,可以采用CASE函数对程序步骤化,且逻辑比较清晰。但对于不涉及多个设备的控制系统若采用这种结构,反而显得累赘。

水电站涉及的油水气系统众多,如果能做到程序化设计或直接将类似产品通用控制部分做成功能块,则对系统移植是有帮助的,能够提高现场工作效率。

随着模块化设计运用时间积累,当系统存在的问题逐渐暴露后,模块化设计的错误率会越来越低,通用性则越来越强,可以极大缩短新建厂站设备的设计和调试时间,并产生显著经济效益。

5 结 语

文章通过某电站技术供水系统控制程序的设计,运用结构化变量实现了多泵组参数的快速定义。主程序对多台泵组的启动优先顺序进行排序,利用顺控程序实现各台泵组的启停。程序的控制逻辑是针对某一特征条件,而非具体的某一泵组,因此,无需针对各泵组重复设计控制程序。本设计实现了程序的模块化,使程序更加紧凑,逻辑更加清晰;通过对某电站技术供水系统控制程序的设计分析,提出了其程序设计存在的一些优势,说明了程序化、模块化、流程化程序设计存在的意义。

(1)因程序的模块化设计,在设备调试过程中可以快速发现程序中存在的问题和不合理之处,只需一次修改就可实现同类问题的一次性处理,相比于针对各泵组重复设计的控制程序,具有便捷性。

(2)通过本文的解析,辅助设备控制程序的模块流程化设计,对水电站及其他工业系统中常用的辅助设备均是通用的。如水电站的中低压气系统、厂房的排水系统、机组油压装置的液压油泵控制系统、水厂的水泵取水系统等,各系统涉及的控制变量和设备的启停及轮换具有相似性,模块化设计程序在相关系统中均可根据需要进行移植。

(3)设备的控制程序应在使用中不断完善,以最精简的语句实现程序所需的功能。类似设备的控制程序模块化设计经过使用验证,应实现程序的固化,不断积累某一类工程的源程序。新用户只需在源程序中进行选择和适当修改便可使用,并将通用程序功能块化,降低人力物力,提高生产效率。

猜你喜欢
控制程序顶盖模块化
汽车天窗与顶盖匹配设计
模块化住宅
马勒推出新型模块化混动系统
汽车顶盖侧横梁内板开卷落料模设计
浅谈天窗版顶盖面品不良问题的解决
一种多功能顶盖总成开发的研究和应用
ACP100模块化小型堆研发进展
未成年人刑事案件撤回起诉制度立法思考
锅炉检验质量的控制体系与程序
重型车辆协同式自适应巡航控制系统的车际通信控制程序和信息交互