劉華煒
(上海工業(yè)自動(dòng)化儀表研究院有限公司,上海 200233)
電力是國民經(jīng)濟(jì)發(fā)展的重要基礎(chǔ)產(chǎn)業(yè)。由于我國能源結(jié)構(gòu)等情況,燃煤發(fā)電作為重要的電源種類,將在電力系統(tǒng)中長期存在。燃煤機(jī)組發(fā)電是用煤大戶,對(duì)燃煤的精度計(jì)量,不僅能夠進(jìn)行成本核算,提高經(jīng)營管理效益,而且對(duì)節(jié)約能源業(yè)具有十分深遠(yuǎn)的意義。
傳統(tǒng)分爐分倉計(jì)量系統(tǒng)[1]是通過對(duì)輸煤皮帶的入爐煤電子皮帶秤瞬時(shí)量的采集,利用計(jì)算機(jī)控制技術(shù),再結(jié)臺(tái)鍋爐上煤時(shí)各個(gè)原煤倉進(jìn)煤口各相關(guān)設(shè)備的狀態(tài)信號(hào),進(jìn)行計(jì)算、處理,從而得到各煤倉及各臺(tái)機(jī)組的燃煤量,達(dá)到對(duì)各倉各爐入爐煤進(jìn)行單獨(dú)計(jì)量的目的。這種方法技術(shù)含量高、投資費(fèi)用低,并且具有很好的擴(kuò)展性。但由于數(shù)據(jù)模型的大量累計(jì)計(jì)算處理及數(shù)據(jù)的存儲(chǔ)過程均在可編程邏輯控制器(programmable logic controllor,PLC)中實(shí)現(xiàn),長期運(yùn)行會(huì)導(dǎo)致PLC運(yùn)行負(fù)荷加重,PLC編程復(fù)雜難于維護(hù),并且隨著時(shí)間推移CPU運(yùn)行效率降低,會(huì)導(dǎo)致生產(chǎn)運(yùn)行的可靠、安全性存在隱患。針對(duì)傳統(tǒng)分爐分倉計(jì)量系統(tǒng)的這些缺點(diǎn),對(duì)傳統(tǒng)的分倉計(jì)量系統(tǒng)進(jìn)行了優(yōu)化改進(jìn)。優(yōu)化設(shè)計(jì)數(shù)學(xué)模型的計(jì)算以及數(shù)據(jù)存儲(chǔ)過程和記錄方式,從而合理分配資源。在保證生產(chǎn)運(yùn)行安全、可靠的前提下,對(duì)數(shù)據(jù)進(jìn)行精確計(jì)算,完成數(shù)據(jù)存儲(chǔ)記錄,生成報(bào)表,使分倉計(jì)量系統(tǒng)更加可靠實(shí)用。優(yōu)化設(shè)計(jì)實(shí)現(xiàn)了輸煤系統(tǒng)真正的管控功能,為發(fā)電效益的計(jì)量提供智能化數(shù)據(jù)分析的依據(jù),從而指導(dǎo)燃燒、降低煤耗、節(jié)約成本。
分爐分倉計(jì)量系統(tǒng)設(shè)計(jì)思路是以總輸煤皮帶上的入爐煤皮帶秤的稱重信號(hào)為基礎(chǔ),利用計(jì)算機(jī)控制技術(shù),再結(jié)臺(tái)鍋爐上煤時(shí)各個(gè)原煤倉進(jìn)煤口各相關(guān)設(shè)備的狀態(tài)信號(hào),進(jìn)行邏輯編程、計(jì)算處理,形成數(shù)學(xué)計(jì)算模型。數(shù)學(xué)模型由PLC編程[2]實(shí)現(xiàn),對(duì)各爐各倉入爐煤進(jìn)行單獨(dú)計(jì)算處理。再利用上位機(jī)監(jiān)控軟件的VBA編程[3]功能及自帶的SQLServerExpress數(shù)據(jù)庫軟件,構(gòu)建新的SQLServer數(shù)據(jù)庫實(shí)例[4],創(chuàng)建SQLServer存儲(chǔ)過程和觸發(fā)器。通過參數(shù)傳遞的方式,實(shí)現(xiàn)分倉計(jì)量數(shù)據(jù)的高效存儲(chǔ),利用PLC計(jì)算的實(shí)時(shí)數(shù)據(jù)得到各煤倉各臺(tái)機(jī)組的燃煤量。通過上位機(jī)監(jiān)控軟件VBA編程實(shí)現(xiàn)分倉計(jì)量的報(bào)表功能,不僅為現(xiàn)場管理人員提供方便靈活的查詢方式,并且可以快速、高效地展示報(bào)表。操作界面為數(shù)據(jù)庫提供必要的維護(hù)接口,以保持?jǐn)?shù)據(jù)庫在計(jì)算機(jī)中的一個(gè)可控狀態(tài)。只需維護(hù)工程師在操作界面上進(jìn)行簡單的操作,就可以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫[5]的維護(hù)。
某電廠有2臺(tái)機(jī)組,每臺(tái)機(jī)組有6個(gè)煤倉,加倉皮帶為左側(cè)12A輸送皮帶和右側(cè)12B輸送皮帶,并通過安裝在輸送皮帶上的犁煤器對(duì)各個(gè)煤倉進(jìn)行加倉。除了2#鍋爐的最后一個(gè)煤倉(2-F)作為尾倉,不采用犁煤器控制加倉外(相當(dāng)于常開狀態(tài)),其他每個(gè)煤倉都分別對(duì)應(yīng)2個(gè)犁煤器(12A和12B輸送帶上面各1個(gè))。犁煤器抬起和落下到位信號(hào)通過行程開關(guān)來檢測。在加倉皮帶的上游皮帶11A和11B上分別安裝一個(gè)計(jì)量皮帶秤,煤流經(jīng)皮帶秤后由電動(dòng)三通送到12A或者12B皮帶上。運(yùn)行過程中,由操作人員通過輸煤程控系統(tǒng)的操作界面來選擇運(yùn)行路線。輸送皮帶將煤經(jīng)煤場經(jīng)皮帶秤由三通輸送至相應(yīng)加倉皮帶上,運(yùn)行人員通過操作輸煤程控系統(tǒng)的操作界面控制相應(yīng)犁煤器的抬、落,把煤流加倉進(jìn)犁煤器落下位置的煤倉中。本系統(tǒng)為典型的單秤加倉輸煤系統(tǒng),入爐煤皮帶秤到各個(gè)煤倉間存在一定的距離。在加倉運(yùn)行過程中,經(jīng)過皮帶秤稱重后,煤流經(jīng)過一定的時(shí)間分別到達(dá)各個(gè)煤倉的入口。圖1為輸煤系統(tǒng)加倉示意圖。
圖1 輸煤系統(tǒng)加倉示意圖
傳統(tǒng)的分爐分倉計(jì)量[1]系統(tǒng)構(gòu)架原理如圖2所示。皮帶秤儀表瞬時(shí)煤量、犁煤器接近開關(guān)和三通的狀態(tài)信號(hào)以硬接線方式進(jìn)入PLC。這些信號(hào)和在PLC處理器中計(jì)算后得到的數(shù)據(jù),都可以在上位機(jī)組態(tài)軟件的數(shù)據(jù)庫中讀到,并可以實(shí)時(shí)監(jiān)控其狀態(tài)。在上位機(jī)組態(tài)軟件中對(duì)這些數(shù)據(jù)信息進(jìn)行數(shù)據(jù)歷史記錄配置,利用SE VBA編程[3]即可自動(dòng)生成報(bào)表,并可以在規(guī)定時(shí)間自動(dòng)打印輸出。由于上位機(jī)組態(tài)軟件歷史數(shù)據(jù)僅支持簡單的記錄存儲(chǔ)而缺乏管理功能,所以所需要的數(shù)據(jù)處理均要在PLC中進(jìn)行計(jì)算處理后,發(fā)送給上位機(jī)。這樣就導(dǎo)致以邏輯控制功能為強(qiáng)勢,而模擬量控制功能為弱勢的PLC處理器[6]負(fù)荷過重,會(huì)導(dǎo)致CPU速度變慢甚至死機(jī)現(xiàn)象的發(fā)生,嚴(yán)重影響生產(chǎn)運(yùn)行。
圖2 傳統(tǒng)的分爐分倉計(jì)量系統(tǒng)構(gòu)架原理圖
優(yōu)化設(shè)計(jì)是在傳統(tǒng)架構(gòu)的基礎(chǔ)上引進(jìn)SQLServerExpress數(shù)據(jù)庫軟件[4],并用數(shù)據(jù)庫編程語言SQL對(duì)數(shù)據(jù)存儲(chǔ)過程進(jìn)行編程。優(yōu)化后的分爐分倉計(jì)量系統(tǒng)構(gòu)架原理如圖3所示。
圖3 優(yōu)化后的分爐分倉計(jì)量系統(tǒng)構(gòu)架原理圖
從標(biāo)準(zhǔn)化角度考慮,PLC的編程采用梯形圖編程[2],因此PLC選用具有隨意性,上位機(jī)監(jiān)控軟件可以采用自帶SQLServerExpress數(shù)據(jù)庫軟件的組態(tài)軟件。入爐煤皮帶秤的稱重信號(hào)、犁煤器接近開關(guān)及三通的狀態(tài)先進(jìn)入輸煤程控系統(tǒng)的PLC,PLC進(jìn)行入爐煤分倉的累積計(jì)算,然后在上位機(jī)監(jiān)控軟件的數(shù)據(jù)庫中可以同步得到各個(gè)狀態(tài)值及計(jì)算數(shù)據(jù)。分爐分倉計(jì)量系統(tǒng)關(guān)鍵技術(shù):一是將入爐煤皮帶秤的稱重信號(hào)變化量、犁煤器狀態(tài)和三通的狀態(tài)作為輸入?yún)?shù)來構(gòu)造分爐分倉計(jì)量系統(tǒng)的數(shù)學(xué)模型,在PLC中編程實(shí)現(xiàn);二是在數(shù)據(jù)庫中編程實(shí)現(xiàn)對(duì)PLC數(shù)據(jù)進(jìn)行存儲(chǔ)過程及高效存儲(chǔ)的管理并在SE中用VBA進(jìn)行編程生成報(bào)表,同時(shí)實(shí)現(xiàn)自動(dòng)按時(shí)打印功能。 優(yōu)化的分爐分倉計(jì)量系統(tǒng)原理如圖4所示。
圖4 優(yōu)化的分爐分倉計(jì)量系統(tǒng)原理圖
在單秤加倉輸煤系統(tǒng)中,需要設(shè)計(jì)一個(gè)“單秤分爐分倉計(jì)量”數(shù)學(xué)模型。利用數(shù)學(xué)模型將一臺(tái)入爐煤皮帶秤的稱重信號(hào)分別擴(kuò)展到每個(gè)煤倉處,在每個(gè)煤倉的入口處虛擬安裝稱重裝置,因此每個(gè)煤倉入口處的虛擬稱重裝置的安裝位置是分爐分倉計(jì)量精確度的關(guān)鍵。
分爐分倉計(jì)量數(shù)學(xué)模型的難點(diǎn),是在輸煤系統(tǒng)的實(shí)際運(yùn)行過程中,由于煤量的計(jì)量是連續(xù)進(jìn)行的,11A、11B輸送皮帶上的皮帶秤到各煤倉有一段距離。在鍋爐換爐加倉時(shí),必須將這段距離的煤量算在下一個(gè)爐上,而上一個(gè)爐的煤量必須扣除這段煤量;另外,由于各鍋爐煤倉的位置不同,所以各鍋爐煤倉與皮帶秤的距離不一致,皮帶秤到煤倉這段距離的煤量、延時(shí)時(shí)間是不相等的。換煤倉時(shí),犁煤器先落后抬都會(huì)導(dǎo)致煤倉計(jì)量的誤差。分爐分倉計(jì)量系統(tǒng)的精度取決于計(jì)量模型的設(shè)計(jì),這就需要設(shè)計(jì)一個(gè)數(shù)學(xué)模型,將時(shí)間、距離等影響因素作為煤量計(jì)算的重要數(shù)據(jù)。
設(shè)計(jì)數(shù)學(xué)模型的關(guān)鍵是精確計(jì)算距離與時(shí)間的關(guān)系。因?yàn)楦髅簜}與進(jìn)倉電子皮帶秤之間存在不同長度的距離,所以煤流經(jīng)過電子皮帶秤到達(dá)各煤倉存在不同的延時(shí)。這段時(shí)間的延時(shí)在設(shè)計(jì)模型時(shí)至關(guān)重要,設(shè)計(jì)引入模擬量離散化處理的理念[7]。由于皮帶輸送煤流是連續(xù)的,但每累計(jì)達(dá)到1 t便可以送出一個(gè)脈沖,這樣就可以按照一定的采樣時(shí)間間隔入爐煤皮帶秤的稱重?cái)?shù)據(jù)進(jìn)行離散化。每個(gè)離散的稱重信息以入爐煤皮帶秤為起點(diǎn),至犁煤器落下位置的煤倉入口處為終點(diǎn),進(jìn)行連續(xù)的輸送。由于在輸煤系統(tǒng)中,雖然入爐煤皮帶秤至各個(gè)煤倉入口的距離是固定的,且皮帶的帶速也是固定的,但是煤流由皮帶秤至煤倉的輸送需要經(jīng)過皮帶和三通裝置落煤管,因此完全依賴工藝?yán)碚摂?shù)據(jù)來計(jì)算每個(gè)煤倉入口處的虛擬稱重裝置的安裝位置勢必會(huì)導(dǎo)致計(jì)量誤差。確定離散的稱重?cái)?shù)據(jù)后,需要現(xiàn)場實(shí)際測量煤流由皮帶秤至每個(gè)煤倉的輸送時(shí)間。當(dāng)采樣時(shí)間間隔和輸送時(shí)間確定后,每個(gè)煤倉虛擬稱重裝置的安裝位置就確定了:Position=Time/Interval。其中:Postion為虛擬稱安裝位置;Time為煤由入爐煤皮帶秤至煤倉入口的輸送時(shí)間;Interval為采樣時(shí)間間隔,此時(shí)間間隔在程序中進(jìn)行設(shè)定。因此,煤流由入爐煤皮帶秤至煤倉入口的輸送時(shí)間是建模的關(guān)鍵要素。
為了減小測量時(shí)產(chǎn)生的誤差,采用多次測量求平均值的方法。時(shí)間記錄表如表1所示。由于目前工業(yè)電視的高清度及實(shí)時(shí)性都非常高,因此可以利用工業(yè)電視攝像頭,記錄煤流由皮帶秤到各個(gè)煤倉的時(shí)間。這樣既可以避開到現(xiàn)場煤煙污染的環(huán)境,又可以遠(yuǎn)離現(xiàn)場運(yùn)行設(shè)備,避免危險(xiǎn)情況的發(fā)生。時(shí)間設(shè)為:煤倉1延時(shí)T1,煤倉2延時(shí)T2,…,煤倉12尾倉延時(shí)T12。
表1 時(shí)間記錄
當(dāng)前電子皮帶秤的煤量脈沖要經(jīng)過T1到達(dá)煤倉1,或者經(jīng)過T2到達(dá)煤倉2,或者經(jīng)過T12到達(dá)煤倉12。換言之,當(dāng)前進(jìn)入煤倉1的煤流是之前T1時(shí)刻計(jì)量到的電子皮帶秤的讀數(shù)并存儲(chǔ)至響應(yīng)對(duì)列中第T1位置,當(dāng)前進(jìn)入煤倉2的煤流是之前T2時(shí)刻計(jì)量到的電子皮帶秤的讀數(shù)并存儲(chǔ)至響應(yīng)對(duì)列中第T2位置,當(dāng)前進(jìn)入煤倉12的煤流是之前T12時(shí)刻計(jì)量到的電子皮帶秤的讀數(shù)并存儲(chǔ)至響應(yīng)對(duì)列中第T12位置。模型關(guān)鍵在于每個(gè)采樣時(shí)間都需要對(duì)隊(duì)列數(shù)組元素進(jìn)行更新維護(hù),并使隊(duì)列首位置數(shù)據(jù)為最新數(shù)據(jù)。再根據(jù)三通方向、犁煤器起落、皮帶的運(yùn)停,判斷是哪個(gè)煤倉加煤,然后把相應(yīng)時(shí)間點(diǎn)的煤流讀數(shù)累計(jì)到該煤倉。
煤量統(tǒng)計(jì)值的數(shù)學(xué)公式為:
式中:G(t)為時(shí)間t時(shí)刻保存至對(duì)列響應(yīng)位置的皮帶秤瞬時(shí)量;t1、t2分別為加倉計(jì)量開始與結(jié)束時(shí)刻。
利用模擬量離散化處理的原理[7],模型中設(shè)計(jì)雙整形數(shù)組對(duì)列Bunker[Length],數(shù)組對(duì)列具有雙重含義,時(shí)間與煤量脈沖。數(shù)組每個(gè)寄存器的每個(gè)位都會(huì)以離散值“0”或“1”對(duì)應(yīng)到輸煤路徑當(dāng)前位置,是否有由A/B側(cè)電子皮帶秤輸送來的每噸煤流。每位的數(shù)值是動(dòng)態(tài)變化的,是以采樣時(shí)間間隔為速度進(jìn)行相應(yīng)的左移位,仿真模擬現(xiàn)場煤流的輸送工況。
在輸煤控制系統(tǒng)PLC-CPU中,以梯形圖編程實(shí)現(xiàn)數(shù)學(xué)模型的計(jì)算。PLC程序流程如圖5所示。
圖5 PLC程序流程圖
首先設(shè)定皮帶秤采樣時(shí)間間隔。根據(jù)實(shí)際運(yùn)行情況,皮帶輸送煤量通常在3 000 t/h以下,但偶爾也會(huì)出現(xiàn)輸送煤量大于3 600 t/h的情況。這樣1 s內(nèi)輸送量要大于1 t,所以采樣時(shí)間要小于1 s,以防丟失稱重信息導(dǎo)致計(jì)量數(shù)值偏小。根據(jù)現(xiàn)場調(diào)試將采樣時(shí)間間隔設(shè)為500 ms。每當(dāng)皮帶秤稱質(zhì)量累計(jì)為1 t,就會(huì)產(chǎn)生一個(gè)脈沖。此時(shí),數(shù)列寄存器Bunker0.0置為1,同時(shí)啟動(dòng)數(shù)列移位功能塊,以采樣時(shí)間間隔連續(xù)左移到寄存器的下一位,并復(fù)位寄存器的前一位,為等待下一個(gè)一頓脈沖的到達(dá)更新作準(zhǔn)備。每個(gè)煤倉設(shè)置一個(gè)加法加數(shù)器。當(dāng)“1”移位到犁煤器落下位置即加倉煤倉的位置所對(duì)應(yīng)的數(shù)組相應(yīng)的位時(shí),啟動(dòng)相應(yīng)煤倉的累計(jì)計(jì)數(shù)器功能塊進(jìn)行加倉煤量的累加,同時(shí)將加倉煤倉的位置所對(duì)應(yīng)的數(shù)組相應(yīng)的位復(fù)位為“0”,即不再將“1”左移到數(shù)組寄存器的下一位。
在數(shù)據(jù)庫中,編程實(shí)現(xiàn)對(duì)PLC數(shù)據(jù)進(jìn)行存儲(chǔ)過程及高效存儲(chǔ)的管理,并在SE中用VBA進(jìn)行編程生成報(bào)表,同時(shí)實(shí)現(xiàn)自動(dòng)按時(shí)打印。
利用上位機(jī)監(jiān)控組態(tài)軟件的VBA、ADO及自帶的SQLServerExpress軟件,實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ),報(bào)表的生成。
構(gòu)建新的SQLServer數(shù)據(jù)庫實(shí)例。創(chuàng)建SQLServer存儲(chǔ)過程,通過參數(shù)傳遞的方式,存儲(chǔ)過程接受上位機(jī)監(jiān)控組態(tài)軟件發(fā)送的實(shí)時(shí)數(shù)據(jù),并通過倉號(hào)及煤種號(hào)實(shí)現(xiàn)了分倉計(jì)量數(shù)據(jù)的高速處理。為了解決數(shù)據(jù)不定期清零的問題,采用差值存儲(chǔ)法,確保數(shù)據(jù)的完整性、準(zhǔn)確性。存儲(chǔ)過程比較傳遞過來的數(shù)據(jù),與RealData表的存儲(chǔ)值進(jìn)行比較,如果大于上次數(shù)值,就把兩者的差值計(jì)入ReportData表,并加上時(shí)標(biāo),再把新的數(shù)據(jù)值存入RealData表。如果傳入的數(shù)據(jù)與RealData表的數(shù)據(jù)相等,則忽略這次數(shù)據(jù)更新。如果傳入的數(shù)據(jù)小于RealData表中的數(shù)據(jù),則表明已清零,此時(shí)需把新數(shù)據(jù)直接計(jì)入ReportData表,并用新數(shù)據(jù)更新RealData表。差值存儲(chǔ)法的變則寫,不變則不寫原則,以減少數(shù)據(jù)處理的頻繁,提高數(shù)據(jù)處理效率。
通過上位機(jī)監(jiān)控組態(tài)軟件自帶的VBA,調(diào)用ADO(ActiveXDataObject)對(duì)象,在數(shù)據(jù)發(fā)送函數(shù)里創(chuàng)建ADODB.Connection,ADODB.Command對(duì)象,創(chuàng)建相應(yīng)的變量獲取實(shí)時(shí)煤量,煤種、煤倉等數(shù)值,并通過ADODB.Command對(duì)象的參數(shù)集合賦值給存儲(chǔ)過程參數(shù)。
加倉開始后,PLC發(fā)送數(shù)據(jù)庫觸發(fā)條件,啟動(dòng)數(shù)據(jù)庫差值存儲(chǔ)功能,調(diào)用數(shù)據(jù)發(fā)送函數(shù),把數(shù)據(jù)寫入SQLServer。
通過上位機(jī)監(jiān)控組態(tài)軟件自帶的VBA編程,實(shí)現(xiàn)了分倉計(jì)量的報(bào)表功能,在操作界面上提供方便靈活的查詢方式,并可以在操作界面上快速高效展示報(bào)表。
首先通過Excel設(shè)計(jì)報(bào)表,建立好報(bào)表模板。然后,在上位機(jī)監(jiān)控組態(tài)軟件中,通過創(chuàng)建Excel對(duì)象,后臺(tái)打開報(bào)表模板,把通過ADO對(duì)象從SQLServer里查詢得到的報(bào)表數(shù)據(jù)填入相應(yīng)的表格中。查詢條件為可自由選擇班、天、月、年。通過sql語句的Sum函數(shù),可以快速查出并生成報(bào)表,輸出報(bào)表格式可以為xls、Html等。這里建議使用Html格式,以方便閱讀、禁止修改。再使用Webbrowser控件,在上位機(jī)監(jiān)控組態(tài)軟件畫面上顯示出剛剛生成的報(bào)表,并可以支持靈活的打印。VBA 生成表程序流程如圖6所示。
圖6 VBA生成報(bào)表程序流程圖
隨著系統(tǒng)的長期運(yùn)行,數(shù)據(jù)庫數(shù)據(jù)量會(huì)越來越大,數(shù)據(jù)存儲(chǔ)效率也會(huì)越來越低。為此,專門創(chuàng)建一個(gè)數(shù)據(jù)庫維護(hù)畫面,可以讓用戶按照選定的時(shí)間段清除對(duì)應(yīng)的歷史數(shù)據(jù),從而保證數(shù)據(jù)庫的快速、高效。
優(yōu)化的分爐分倉計(jì)量系統(tǒng)可以準(zhǔn)確計(jì)量每個(gè)煤倉、每個(gè)機(jī)組的加煤量及煤種情況;并可以靈活查詢?nèi)我鈺r(shí)間段的加倉數(shù)據(jù)信息,自動(dòng)生成班報(bào)、日報(bào)、月報(bào)和年報(bào);PLC-CPU計(jì)算負(fù)荷可控,運(yùn)行安全可靠,程序便于維護(hù)。維護(hù)管理工程師可以及時(shí)掌握設(shè)備的出力情況,便于設(shè)備的維護(hù)。