劉華煒
(上海工業自動化儀表研究院有限公司,上海 200233)
電力是國民經濟發展的重要基礎產業。由于我國能源結構等情況,燃煤發電作為重要的電源種類,將在電力系統中長期存在。燃煤機組發電是用煤大戶,對燃煤的精度計量,不僅能夠進行成本核算,提高經營管理效益,而且對節約能源業具有十分深遠的意義。
傳統分爐分倉計量系統[1]是通過對輸煤皮帶的入爐煤電子皮帶秤瞬時量的采集,利用計算機控制技術,再結臺鍋爐上煤時各個原煤倉進煤口各相關設備的狀態信號,進行計算、處理,從而得到各煤倉及各臺機組的燃煤量,達到對各倉各爐入爐煤進行單獨計量的目的。這種方法技術含量高、投資費用低,并且具有很好的擴展性。但由于數據模型的大量累計計算處理及數據的存儲過程均在可編程邏輯控制器(programmable logic controllor,PLC)中實現,長期運行會導致PLC運行負荷加重,PLC編程復雜難于維護,并且隨著時間推移CPU運行效率降低,會導致生產運行的可靠、安全性存在隱患。針對傳統分爐分倉計量系統的這些缺點,對傳統的分倉計量系統進行了優化改進。優化設計數學模型的計算以及數據存儲過程和記錄方式,從而合理分配資源。在保證生產運行安全、可靠的前提下,對數據進行精確計算,完成數據存儲記錄,生成報表,使分倉計量系統更加可靠實用。優化設計實現了輸煤系統真正的管控功能,為發電效益的計量提供智能化數據分析的依據,從而指導燃燒、降低煤耗、節約成本。
分爐分倉計量系統設計思路是以總輸煤皮帶上的入爐煤皮帶秤的稱重信號為基礎,利用計算機控制技術,再結臺鍋爐上煤時各個原煤倉進煤口各相關設備的狀態信號,進行邏輯編程、計算處理,形成數學計算模型。數學模型由PLC編程[2]實現,對各爐各倉入爐煤進行單獨計算處理。再利用上位機監控軟件的VBA編程[3]功能及自帶的SQLServerExpress數據庫軟件,構建新的SQLServer數據庫實例[4],創建SQLServer存儲過程和觸發器。通過參數傳遞的方式,實現分倉計量數據的高效存儲,利用PLC計算的實時數據得到各煤倉各臺機組的燃煤量。通過上位機監控軟件VBA編程實現分倉計量的報表功能,不僅為現場管理人員提供方便靈活的查詢方式,并且可以快速、高效地展示報表。操作界面為數據庫提供必要的維護接口,以保持數據庫在計算機中的一個可控狀態。只需維護工程師在操作界面上進行簡單的操作,就可以實現對數據庫[5]的維護。
某電廠有2臺機組,每臺機組有6個煤倉,加倉皮帶為左側12A輸送皮帶和右側12B輸送皮帶,并通過安裝在輸送皮帶上的犁煤器對各個煤倉進行加倉。除了2#鍋爐的最后一個煤倉(2-F)作為尾倉,不采用犁煤器控制加倉外(相當于常開狀態),其他每個煤倉都分別對應2個犁煤器(12A和12B輸送帶上面各1個)。犁煤器抬起和落下到位信號通過行程開關來檢測。在加倉皮帶的上游皮帶11A和11B上分別安裝一個計量皮帶秤,煤流經皮帶秤后由電動三通送到12A或者12B皮帶上。運行過程中,由操作人員通過輸煤程控系統的操作界面來選擇運行路線。輸送皮帶將煤經煤場經皮帶秤由三通輸送至相應加倉皮帶上,運行人員通過操作輸煤程控系統的操作界面控制相應犁煤器的抬、落,把煤流加倉進犁煤器落下位置的煤倉中。本系統為典型的單秤加倉輸煤系統,入爐煤皮帶秤到各個煤倉間存在一定的距離。在加倉運行過程中,經過皮帶秤稱重后,煤流經過一定的時間分別到達各個煤倉的入口。圖1為輸煤系統加倉示意圖。

圖1 輸煤系統加倉示意圖
傳統的分爐分倉計量[1]系統構架原理如圖2所示。皮帶秤儀表瞬時煤量、犁煤器接近開關和三通的狀態信號以硬接線方式進入PLC。這些信號和在PLC處理器中計算后得到的數據,都可以在上位機組態軟件的數據庫中讀到,并可以實時監控其狀態。在上位機組態軟件中對這些數據信息進行數據歷史記錄配置,利用SE VBA編程[3]即可自動生成報表,并可以在規定時間自動打印輸出。由于上位機組態軟件歷史數據僅支持簡單的記錄存儲而缺乏管理功能,所以所需要的數據處理均要在PLC中進行計算處理后,發送給上位機。這樣就導致以邏輯控制功能為強勢,而模擬量控制功能為弱勢的PLC處理器[6]負荷過重,會導致CPU速度變慢甚至死機現象的發生,嚴重影響生產運行。

圖2 傳統的分爐分倉計量系統構架原理圖
優化設計是在傳統架構的基礎上引進SQLServerExpress數據庫軟件[4],并用數據庫編程語言SQL對數據存儲過程進行編程。優化后的分爐分倉計量系統構架原理如圖3所示。

圖3 優化后的分爐分倉計量系統構架原理圖
從標準化角度考慮,PLC的編程采用梯形圖編程[2],因此PLC選用具有隨意性,上位機監控軟件可以采用自帶SQLServerExpress數據庫軟件的組態軟件。入爐煤皮帶秤的稱重信號、犁煤器接近開關及三通的狀態先進入輸煤程控系統的PLC,PLC進行入爐煤分倉的累積計算,然后在上位機監控軟件的數據庫中可以同步得到各個狀態值及計算數據。分爐分倉計量系統關鍵技術:一是將入爐煤皮帶秤的稱重信號變化量、犁煤器狀態和三通的狀態作為輸入參數來構造分爐分倉計量系統的數學模型,在PLC中編程實現;二是在數據庫中編程實現對PLC數據進行存儲過程及高效存儲的管理并在SE中用VBA進行編程生成報表,同時實現自動按時打印功能。 優化的分爐分倉計量系統原理如圖4所示。

圖4 優化的分爐分倉計量系統原理圖
在單秤加倉輸煤系統中,需要設計一個“單秤分爐分倉計量”數學模型。利用數學模型將一臺入爐煤皮帶秤的稱重信號分別擴展到每個煤倉處,在每個煤倉的入口處虛擬安裝稱重裝置,因此每個煤倉入口處的虛擬稱重裝置的安裝位置是分爐分倉計量精確度的關鍵。
分爐分倉計量數學模型的難點,是在輸煤系統的實際運行過程中,由于煤量的計量是連續進行的,11A、11B輸送皮帶上的皮帶秤到各煤倉有一段距離。在鍋爐換爐加倉時,必須將這段距離的煤量算在下一個爐上,而上一個爐的煤量必須扣除這段煤量;另外,由于各鍋爐煤倉的位置不同,所以各鍋爐煤倉與皮帶秤的距離不一致,皮帶秤到煤倉這段距離的煤量、延時時間是不相等的。換煤倉時,犁煤器先落后抬都會導致煤倉計量的誤差。分爐分倉計量系統的精度取決于計量模型的設計,這就需要設計一個數學模型,將時間、距離等影響因素作為煤量計算的重要數據。
設計數學模型的關鍵是精確計算距離與時間的關系。因為各煤倉與進倉電子皮帶秤之間存在不同長度的距離,所以煤流經過電子皮帶秤到達各煤倉存在不同的延時。這段時間的延時在設計模型時至關重要,設計引入模擬量離散化處理的理念[7]。由于皮帶輸送煤流是連續的,但每累計達到1 t便可以送出一個脈沖,這樣就可以按照一定的采樣時間間隔入爐煤皮帶秤的稱重數據進行離散化。每個離散的稱重信息以入爐煤皮帶秤為起點,至犁煤器落下位置的煤倉入口處為終點,進行連續的輸送。由于在輸煤系統中,雖然入爐煤皮帶秤至各個煤倉入口的距離是固定的,且皮帶的帶速也是固定的,但是煤流由皮帶秤至煤倉的輸送需要經過皮帶和三通裝置落煤管,因此完全依賴工藝理論數據來計算每個煤倉入口處的虛擬稱重裝置的安裝位置勢必會導致計量誤差。確定離散的稱重數據后,需要現場實際測量煤流由皮帶秤至每個煤倉的輸送時間。當采樣時間間隔和輸送時間確定后,每個煤倉虛擬稱重裝置的安裝位置就確定了:Position=Time/Interval。其中:Postion為虛擬稱安裝位置;Time為煤由入爐煤皮帶秤至煤倉入口的輸送時間;Interval為采樣時間間隔,此時間間隔在程序中進行設定。因此,煤流由入爐煤皮帶秤至煤倉入口的輸送時間是建模的關鍵要素。
為了減小測量時產生的誤差,采用多次測量求平均值的方法。時間記錄表如表1所示。由于目前工業電視的高清度及實時性都非常高,因此可以利用工業電視攝像頭,記錄煤流由皮帶秤到各個煤倉的時間。這樣既可以避開到現場煤煙污染的環境,又可以遠離現場運行設備,避免危險情況的發生。時間設為:煤倉1延時T1,煤倉2延時T2,…,煤倉12尾倉延時T12。

表1 時間記錄
當前電子皮帶秤的煤量脈沖要經過T1到達煤倉1,或者經過T2到達煤倉2,或者經過T12到達煤倉12。換言之,當前進入煤倉1的煤流是之前T1時刻計量到的電子皮帶秤的讀數并存儲至響應對列中第T1位置,當前進入煤倉2的煤流是之前T2時刻計量到的電子皮帶秤的讀數并存儲至響應對列中第T2位置,當前進入煤倉12的煤流是之前T12時刻計量到的電子皮帶秤的讀數并存儲至響應對列中第T12位置。模型關鍵在于每個采樣時間都需要對隊列數組元素進行更新維護,并使隊列首位置數據為最新數據。再根據三通方向、犁煤器起落、皮帶的運停,判斷是哪個煤倉加煤,然后把相應時間點的煤流讀數累計到該煤倉。
煤量統計值的數學公式為:

式中:G(t)為時間t時刻保存至對列響應位置的皮帶秤瞬時量;t1、t2分別為加倉計量開始與結束時刻。
利用模擬量離散化處理的原理[7],模型中設計雙整形數組對列Bunker[Length],數組對列具有雙重含義,時間與煤量脈沖。數組每個寄存器的每個位都會以離散值“0”或“1”對應到輸煤路徑當前位置,是否有由A/B側電子皮帶秤輸送來的每噸煤流。每位的數值是動態變化的,是以采樣時間間隔為速度進行相應的左移位,仿真模擬現場煤流的輸送工況。
在輸煤控制系統PLC-CPU中,以梯形圖編程實現數學模型的計算。PLC程序流程如圖5所示。

圖5 PLC程序流程圖
首先設定皮帶秤采樣時間間隔。根據實際運行情況,皮帶輸送煤量通常在3 000 t/h以下,但偶爾也會出現輸送煤量大于3 600 t/h的情況。這樣1 s內輸送量要大于1 t,所以采樣時間要小于1 s,以防丟失稱重信息導致計量數值偏小。根據現場調試將采樣時間間隔設為500 ms。每當皮帶秤稱質量累計為1 t,就會產生一個脈沖。此時,數列寄存器Bunker0.0置為1,同時啟動數列移位功能塊,以采樣時間間隔連續左移到寄存器的下一位,并復位寄存器的前一位,為等待下一個一頓脈沖的到達更新作準備。每個煤倉設置一個加法加數器。當“1”移位到犁煤器落下位置即加倉煤倉的位置所對應的數組相應的位時,啟動相應煤倉的累計計數器功能塊進行加倉煤量的累加,同時將加倉煤倉的位置所對應的數組相應的位復位為“0”,即不再將“1”左移到數組寄存器的下一位。
在數據庫中,編程實現對PLC數據進行存儲過程及高效存儲的管理,并在SE中用VBA進行編程生成報表,同時實現自動按時打印。
利用上位機監控組態軟件的VBA、ADO及自帶的SQLServerExpress軟件,實現數據的存儲,報表的生成。
構建新的SQLServer數據庫實例。創建SQLServer存儲過程,通過參數傳遞的方式,存儲過程接受上位機監控組態軟件發送的實時數據,并通過倉號及煤種號實現了分倉計量數據的高速處理。為了解決數據不定期清零的問題,采用差值存儲法,確保數據的完整性、準確性。存儲過程比較傳遞過來的數據,與RealData表的存儲值進行比較,如果大于上次數值,就把兩者的差值計入ReportData表,并加上時標,再把新的數據值存入RealData表。如果傳入的數據與RealData表的數據相等,則忽略這次數據更新。如果傳入的數據小于RealData表中的數據,則表明已清零,此時需把新數據直接計入ReportData表,并用新數據更新RealData表。差值存儲法的變則寫,不變則不寫原則,以減少數據處理的頻繁,提高數據處理效率。
通過上位機監控組態軟件自帶的VBA,調用ADO(ActiveXDataObject)對象,在數據發送函數里創建ADODB.Connection,ADODB.Command對象,創建相應的變量獲取實時煤量,煤種、煤倉等數值,并通過ADODB.Command對象的參數集合賦值給存儲過程參數。
加倉開始后,PLC發送數據庫觸發條件,啟動數據庫差值存儲功能,調用數據發送函數,把數據寫入SQLServer。
通過上位機監控組態軟件自帶的VBA編程,實現了分倉計量的報表功能,在操作界面上提供方便靈活的查詢方式,并可以在操作界面上快速高效展示報表。
首先通過Excel設計報表,建立好報表模板。然后,在上位機監控組態軟件中,通過創建Excel對象,后臺打開報表模板,把通過ADO對象從SQLServer里查詢得到的報表數據填入相應的表格中。查詢條件為可自由選擇班、天、月、年。通過sql語句的Sum函數,可以快速查出并生成報表,輸出報表格式可以為xls、Html等。這里建議使用Html格式,以方便閱讀、禁止修改。再使用Webbrowser控件,在上位機監控組態軟件畫面上顯示出剛剛生成的報表,并可以支持靈活的打印。VBA 生成表程序流程如圖6所示。

圖6 VBA生成報表程序流程圖
隨著系統的長期運行,數據庫數據量會越來越大,數據存儲效率也會越來越低。為此,專門創建一個數據庫維護畫面,可以讓用戶按照選定的時間段清除對應的歷史數據,從而保證數據庫的快速、高效。
優化的分爐分倉計量系統可以準確計量每個煤倉、每個機組的加煤量及煤種情況;并可以靈活查詢任意時間段的加倉數據信息,自動生成班報、日報、月報和年報;PLC-CPU計算負荷可控,運行安全可靠,程序便于維護。維護管理工程師可以及時掌握設備的出力情況,便于設備的維護。