调相压水与治理抬机合成程序设计与程序编制说明
时间:2011-01-17 阅读:1499
程序设计[16>[17>
总体思路
控制程序采用分块结构。设子程序SBR0控制机组调相压水系统;子程序SBR1控制机组甩负荷时立即不延时向转轮室补入恰当量气体[08>。主程序OB1分别调用SBR0、SBR1子程序块,对两个不同时事件分别控制。
主程序中的具体控制流程
采用子程序调用和甩负荷治抬PID算法中断程序,构建分块结构,在水轮发电机组运行过程中,本小系统主程序只要不间断查询两个子程序的起动条件,并根据起动条件决定是否调用调相压水子程序或治理甩负荷抬机子程序。
控制算法
应用算法控制甩负荷后向转轮室的进气量,从而控制转轮室状态空间量水位或者压强,调相压水时用的是乒乓策略,甩负荷治抬机时则是PID算法,PID的输出值用来控制主给气阀(电动调节阀)的开通大小。
控制程序
·OB1·(主程序)
LD SM0.0
A I0.0 //导水叶处于全关位置
A I0.2 //发电机出口断路器处于合闸状态
S M0.0,1 //机组调相运行状态标志置位
S Q0.0,3 //给主给气阀、电极式水位信号器加工作电源;开启主给气阀。
= Q0.3 //开启辅给气阀
CALL SBR_0
LD SM0.0
A I0.1 //导水叶开度位置在空载以上
AN I0.2 //断路器已跳闸
S M0.1,1 //机组甩负荷已发生标志置位
S Q0.0,2 //立即不延时给主给气阀加工作电源并开启主给气阀
= V5000.0 //发送上位机启动机组事故停机指令
CALL SBR_1
LD V5000.1
O V5000.2
R M0.0,1 //机组调相运行状态标志复位
R Q0.1,2 //关闭主给气阀、DSX切除电源
= Q0.4 //关闭辅给气阀
LD Q0.1
TON T37,50 //延时5S
LD T37
R Q0.0,1 //切除主给气阀电源。
LD SM0.0
A V5000.2
R Q0.1,1 //关闭主给气阀。
LD Q0.1
TON T37,50 //延时5S
LD T37
R Q0.0,1 //切除主给气阀电源
R M0.1,1 //机组甩负荷发生标志在停机完成后复位
END
·SBR0·(调相时供气压水子程序)
LDN I0.4 //转轮室水位低于下限值
R Q0.1,1 //关闭主给气阀
LD I0.3 //转轮室水位高于上限值
S Q0.1,1 //开启主给气阀
LD V5000.1 //机组进入发电运行状态
O V5000.2 //机组停机复归
CRET //供气压水子程序有条件返回
·SBR1·(甩负荷时输气治抬机子程序)
LD M0.1
LPS
S Q0.0,1 //电动进气调节阀加上工作电源
LRD
A SM0.1 //扫描置1
S Q0.1,1 //主给气阀立即开至全开
LPP
XORD AC0,AC0 //清空累加器AC0
XORD AC1,AC1 //清空累加器AC1
XORD AC2,AC2 //清空累加器AC2
XORD AC3,AC3 //清空累加器AC3
MOVW AIW6,AC3 //把4号压力传感器信号(模拟量)存入累加器AC3
/I 4,AC3 //取4号压力传感器信号量的1/4
MOVW AIW4,AC2 //把3号压力传感器信号(模拟量)存入累加器AC2
/I 4,AC2 //取3号压力传感器信号量的1/4
MOVW AIW2,AC1 //把2号压力传感器信号(模拟量)存入累加器AC1
/I 4,AC1 //取2号压力传感器信号量的1/4
MOVW AIW0,AC0 //把1号压力传感器信号(模拟量)存入累加器AC0
/I 4,AC0 //取1号压力传感器信号量的1/4
+I AC1,AC0
+I AC2,AC0
+I AC3,AC0
ITD AC0,AC0 //把16位整数转换成32位整数
DTR AC0,AC0 //把32位整数转换成实数
/R 32000.0,AC0 //标准化AC0中的值作为PID运算设定值SPn(0.0~1.0之间)
LD SM0.1
A M0.1
CALL SBR_2 //调用初始化(回路表赋值)子程序
LD V5000.2 //机组停机复归
R Q0.1,1 //主给气阀立即全关
·SBR_2·(初始化/回路表赋值子程序)
LD SM0.0
MOVR AC0,VD104 //装入回路表设定值SPn(0.0~1.0之间)/甩前压强大小值
MOVR Kc,VD112 //装入回路增益Kc(常数)
MOVR 0.004,VD116 //装入采样时间0.004s
MOVR Ti,VD120 //装入积分时间Ti分钟
MOVR Td,VD124 //装入微分时间Td分钟
MOVR 4,SMB34 //设定定时中断0的时间间隔为4ms
ATCH INT_0,10 //设置定时中断以定时执行PID指令
ENI //允许中断
LD V5000.2 //机组停机复归
CRET
·INT_0·(中断程序)
LD SM0.0
XORD AC0,AC0
XORD AC1,AC1
XORD AC2,AC2
XORD AC3,AC3
MOVW AIW6,AC3
/I 4,AC3
MOVW AIW4,AC2
/I 4,AC2
MOVW AIW2,AC1
/I 4,AC1
MOVW AIW0,AC0
/I 4,AC0
+I AC1,AC0
+I AC2,AC0
+I AC3,AC0 //此时AC0中的数值为转轮室顶盖下压强之平均值
ITD AC0,AC0 //把16位整数转换成32位整数
DTR AC0,AC0 //把32位整数转换成实数
/R 32000.0,AC0 //标准化AC0中的值作为PID运算过程变量PVn(0.0~1.0之间)
MOVR AC0,VD100 //将AC0中的值存入回路表VD100
LD M0.1
PID VB100,0 //执行PID指令
LD SM0.0
XORD AC0,AC0 //清空累加器AC0
MOVR VD108,AC0 // 把PID运算输出送到AC0(输出Mn,在0.0~1.0之间)
*R 32000.0,AC0 //将AC0中的值刻度化
ROUND AC0,AC0 //四舍五入将实数转换成32位整数
DTI AC0,AC0 //将32位整数转换成16位整数
MOVW AC0,AQW0 //将16位整数值写到模拟量输出寄存器,去控制调节阀进气开度
LD V5000.2 //机组停机复归
CRETI //中断返回
程序编制说明
采用主程序、子程序、中断程序的程序结构形式,起到优化程序结构,减小扫描周期时间的效果。主程序OB1的功能是完成本合成神经元小系统控制,一级子程序SBR0、SBR1的功能是分别完成调相压水控制和甩负荷防治抬机控制;SBR2是一级子程序SBR1下嵌套的二级子程序,其功能是初始化给PID回路表赋值;INT0则是一级子程序SBR1下对甩负荷后向转轮室的进气量进行PID控制。
辅给气阀由不带电工作的ZT电磁铁驱动,故安排Q0.3、Q0.4分别控制开启、关闭;主给气阀是需工作电源的电动调节阀,为防止阀关闭进程中未到全关位置失电,采取关阀启动后延时5S再切除电源;为防止不调相期间向转轮室“乱”给气,程序中在调相结束时切除电极式水位信号器DSX电源;主给气阀在甩负荷治抬机时初始化即开启至全开,以后各扫描周期由PID输出控制其开度;使用AC0、AC1、AC2、AC3时先清零,读入采样数值后取其1/4再累加得到平均值,是为了防止数值溢出;SBR1中使用LPS、LRD、LPP是为了减小扫描时间[20>。
也许您还对我公司的转子流量计感兴趣。