程序設計[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>。
也許您還對我公司的轉子流量計感興趣。
免責聲明
客服熱線: 13199863987
加盟熱線: 13199863987
媒體合作: 0571-87759945
投訴熱線: 0571-87759942
下載儀表站APP
Ybzhan手機版
Ybzhan公眾號
Ybzhan小程序