李曉 沈海
摘要:火電廠中統(tǒng)計人員常常需從實時數(shù)據(jù)庫里導出數(shù)據(jù)作為統(tǒng)計報表的數(shù)據(jù)支撐,文章以國華徐州火力發(fā)電廠報表處理為例,闡述了在Excel中如何利用PI-Datalink系統(tǒng)對實時數(shù)據(jù)進行采集提取、統(tǒng)計計算的方法,以提高報表的可操作性和靈活性。
關鍵詞:統(tǒng)計;報表;Excel;PI數(shù)據(jù)庫;PI-Datalink
一、背景
(一)PI數(shù)據(jù)庫在火電廠統(tǒng)計應用現(xiàn)狀
目前,火電廠統(tǒng)計數(shù)據(jù)采集多為自動化數(shù)據(jù)采集和人工數(shù)據(jù)采集相結合模式。如今在自動化數(shù)據(jù)采集系統(tǒng)中,基于PI數(shù)據(jù)庫的廠級監(jiān)控信息系統(tǒng)、綜合統(tǒng)計系統(tǒng)等已廣泛應用。
PI系統(tǒng)具有強大的實時數(shù)據(jù)采集功能,可實時地采集來自不同數(shù)據(jù)源的原始數(shù)據(jù),并通過系統(tǒng)提供的用戶可配置報表、分析工具和Web軟件工具等,在遍布企業(yè)或管理部門的臺式計算機、便攜式電腦上,實時顯示當前和歷史的運行狀況,并隨時隨地連續(xù)不斷地為運行單元級、成套設施級、整個企業(yè)或管理機構級,提供實時數(shù)據(jù)與信息支持。
人工數(shù)據(jù)采集大多是作為自動化數(shù)據(jù)采集的補充方式或替代方式,適用于自動化采集實現(xiàn)難度較大、經(jīng)濟成本較高的現(xiàn)場。以國華徐州電廠(以下簡稱電廠)為例,人工采集數(shù)據(jù)方面包括有煤化驗指標和水耗指標。因為煤化驗目前均為人工化驗;岸邊泵房距廠較遠,自動傳輸成本較高。
(二)PI系統(tǒng)應用存在的問題
目前基于PI數(shù)據(jù)庫的,無論SIS系統(tǒng)(廠級監(jiān)控信息系統(tǒng))或是綜合統(tǒng)計系統(tǒng),均是技術服務供應商提供的成品模塊,一般是對數(shù)據(jù)進行24小時不間斷采集和計算,一旦出現(xiàn)啟停機或是設備、儀表故障等有異常數(shù)據(jù)或傳輸中斷出現(xiàn)時無法準確剔除無效數(shù)據(jù)使其不參與累計值或平均值的計算。
PI系統(tǒng)模塊一般以一日或一月為單位對指標進行統(tǒng)計計算,無法靈活調(diào)取某一時間段加以計算觀察。如電廠入爐煤化驗每天每8小時化驗一次,因無法準確得知該8小時期間相應的耗煤量,故每日入爐煤化驗指標只能簡單算數(shù)平均而無法進行加權平均計算,降低了采集數(shù)據(jù)的確定性。
另外對電廠而言,購買基于PI系統(tǒng)的監(jiān)控統(tǒng)計軟件的運維服務一般是有有效時間的,且軟件投入使用后再進行變更比較困難。如使用后期想更改增加界面或數(shù)據(jù)指標,或是需要臨時調(diào)取界面內(nèi)未顯示的數(shù)據(jù)時,實際實現(xiàn)起來費時費力,降低了工作效率。
(三)在Excel統(tǒng)計報表中應用PI-Datalink
PI數(shù)據(jù)庫系統(tǒng)擁有豐富的客戶端工具,其中PI-Datalink為PI數(shù)據(jù)庫與電子表格Excel提供連接,是在收集、分析PI 數(shù)據(jù)方面功能強大并易于使用的工具。
這樣可以在根據(jù)自身情況需求制定的報表中,靈活應用PI數(shù)據(jù)庫進行有針對性的數(shù)據(jù)定時定點采集和二次編輯,并結合電子表格程序的功能,實現(xiàn)報表需求功能,提高精確度,方便快捷,大大提高了工作效率。
二、PI-Datalink在統(tǒng)計Excel報表中使用的實現(xiàn)
(一)準備工作
由于PI-Datalink函數(shù)為Excel的外部函數(shù),使用時有其自己規(guī)則,諸如日期時間格式,單元格的調(diào)用規(guī)則等,因此在未安裝PI-Datalink的計算機上無法識別和顯示。
在安裝完Pl-Datalink軟件后,需在Excel中加載了PI-DataLink的插件后,就可以通過Excel的“工具”菜單中選擇“加載宏”菜單項中,找到文件HPC32.xll。完成加載后,此時Excel菜單欄將出現(xiàn)“PI”菜單。利用該菜單可以方便調(diào)用PI-Datalink函數(shù)。
PI-Datalink中的時間標簽有指定的格式,下列均是有效的時間格式:“dd-mmm-yy hh:mm:ss”;“yyyy/mm/dd hh:mm:ss”;“yyyy-mm-dd hh:mm:ss”;“yyyy年mm月dd日 hh時mm分ss秒”,如“2019年5月1日晚八點半”寫作“2018/5/1 20:30:00”,如只輸入日期不輸入時間如“2018/5/1”,則默認為“2018/5/1 00:00:00”。
(二)使用PI-Datalink讀取數(shù)據(jù)
在Excel中取用PI數(shù)據(jù)庫中的數(shù)據(jù),最直接的方式是使用Pl-Datalink提供的PIArcVal查詢函數(shù)。在要顯示數(shù)據(jù)信息的單元格內(nèi)先輸入等號,并在等號后輸入查詢函數(shù)的公式PIArcVal(tagname, timestamp, outcode, PIServer, mode)。其中常用的“返回值outcode”為0,僅返回讀取值。
在電廠實際運用中,查詢采集值的函數(shù)為“=PIArcVal(數(shù)據(jù)點KKS碼,查詢時間,PI服務器地址,取值方式)”。如表1皮帶秤統(tǒng)計表單元格Q3需取用#1機C9A皮帶秤2019年3月1日0時的累積煤量,則需輸入“=PIArcVal("SM_DA160922_MC_SW",P3,0,"10.2.8.163","auto")”,其中“SM_DA1-
60922_MC_SW”為C9A皮帶秤的KKS碼,“P3”為單元格P3所輸入的“2019/3/1”由于缺少時間則默認為3月1日0時,返回值outcode為“0”,“10.2.8.163”為PI服務器地址。
將查詢時間寫入某一單元格并鏈接取用的好處是,這樣可以利用Excel的單元格拖放功能迅速查詢并顯示之后每一天的相同時間點的該數(shù)據(jù)點數(shù)值,比如可以將第一個單元格更換日期至下一個月或是歷史的某個月,后續(xù)單元格將一并更換至相應值,既直觀顯示又方便快捷地進行批量讀取。
(三)使用PI-Datalink計算數(shù)據(jù)
讀取采集值之后往往需要對其進行二次計算,這時會用到PI-datalink中的PICalcDat數(shù)據(jù)計算函數(shù)。它可以求取在一段指定的時間間隔內(nèi)采集點數(shù)據(jù)的計算值,包括取總和、最值、平均值、計數(shù)等。格式為:“PICalcVal(tagname,stime,etime,cfactor,mode,outcode,PIServer)”。
例如電廠要計算從2018年11月19日到22日三日主汽壓平均值,需輸入“=PICalcDat($D$1,A3,B3,"720h","average",1,0,"10.2.8.163")”,如表2運行參數(shù)表。其中cfactor參數(shù)經(jīng)驗證若大于等于所取時間段小時數(shù)均為有效且相等的數(shù)值,故表格中常取一個月小時數(shù)720;常用的“返回值outcode”為0,僅返回讀取值。
三、PI-Datalink在電廠統(tǒng)計Excel報表應用的實例
(一)通過PI-Datalink讀取函數(shù)計算入爐煤熱值的加權平均值
電廠之前入爐煤為每日采制一個綜合樣,每日化驗一次,并未按值(電廠為一日三值)劃分采制樣單元,綜合統(tǒng)計系統(tǒng)中的入爐煤化驗值錄入和計算也是相應的每日一次。本年度進行改進,將入爐煤按每班(值)的上煤量為一個采樣單元進行采制化驗。
改進措施實施后,采制化驗已按值劃分一日三次,但由于化驗班無法獲得該采樣單元時段對應的入爐煤量,只能將三個值的化驗值簡單算術平均,可如此計算與整改前的值并無實質(zhì)性差別。現(xiàn)應用PI讀取函數(shù)在原入爐煤分析月報表的基礎上,制作了增加入爐煤量參與計算的月報模板供化驗班填報,如表3入爐煤日報分析表。
其中C9A,C9B兩條輸煤皮帶表底值使用了PIArcVal查詢函數(shù),如單元格L6=PIArcVal("SM_DA160922_MC_SW",K6,0,"10.2.8.163","auto"),含義如前文描述。日期輸入為“2019/5/1”,默認為“2019-5-1 00:00:00”,下一行輸入為“=K6+8/24”含義為“2019-5-1 00:08:00”,之后自動拖放K列值均為上一行時間點的8小時后。當下月填報該表時只需改動第一行時間的月份即可。于是可計算出2018年5月1日當班入爐煤量為L列和M列相鄰兩行差值的和,三個值的煤量相加得出當日總入爐煤量P8。那么當日加權熱值O8=(G6*N6+G7*N7+G8*N8)/(P8-IF(G6=0,N6)-IF(G7=0,N7)-IF(G8=0,N8)),加入IF函數(shù)是當某值采制樣或化驗儀器故障時,該值數(shù)據(jù)均不參與加權平均計算。
如此得到的日加權平均化驗值再輸入綜合統(tǒng)計系統(tǒng)進行月度匯總計算,將大大提高生成月報入爐煤化驗值的精確度。而且本模板直觀易懂,且與之前表格相比不增加任何人工錄入部分,現(xiàn)已在班組間順利推行。
(二)通過PI-Datalink計算函數(shù)計算有效時間的周發(fā)電煤耗
目前電廠SIS系統(tǒng)和綜合統(tǒng)計系統(tǒng)可以計算日、月、年的發(fā)電煤耗,但無法選擇其他時間段計算煤耗。而且一旦碰上開停機,系統(tǒng)則直接剔除開停機日,使其不參與煤耗的累計計算。而從統(tǒng)計分析的角度,開停機日耗煤率較大,反而更需要計入累計計算,統(tǒng)計分析出機組真實的煤耗水平。另外,系統(tǒng)模塊的計算周期太固定,無法滿足周例會或是突發(fā)事件時期的煤耗統(tǒng)計分析的需求。
現(xiàn)已建立通過PI計算函數(shù)計算周發(fā)電煤耗的統(tǒng)計表格,并且結合Excel中的IF函數(shù),能比較精確地只剔除設定條件外小時段不參與煤耗計算。表4 周煤耗統(tǒng)計表顯示的是電廠2018年10月15日至10月21日的周發(fā)電煤耗計算表,期間2號機10月15日開機,1號機17日停機。
首行時間B3輸入“=TODAY()-7”,TODAY是實時日期函數(shù)含義是當前日期0時的7天前,這樣可以每日滾動計算前一周的平均煤耗,隨時進行監(jiān)控和分析。A列是以每增加1小時為一次采集點,下一行時間單元格B4輸入“=B3+A4”,1號機發(fā)電量C3輸入“=PICalcDat($C$1,B3,B4,"1h","average",1,2,"10.2.8.163")”,取得1號機該一小時內(nèi)發(fā)電量的平均值,1號機發(fā)電煤耗F3輸入“=PICalcDat($F$1,B3,B4,"1h","average",1,2,"10.2.8.163")”,取該小時對應發(fā)電煤耗的平均值,則1號機發(fā)電標煤量H3“=F3*C3”,若某臺機處于停機狀態(tài)時,其發(fā)電煤耗為無效數(shù)據(jù)不參與計算。啟停機過程中,負荷大于350MW方進入穩(wěn)態(tài),采集數(shù)據(jù)放能有效說明機組耗煤能力,故負荷值小于350的不參與計算。1號機周發(fā)電量C174輸入“=SUMIF(C3:C171,">350",C3:C171)”,含義是只取C列中大于350的值的和,1號機發(fā)電標煤量H174輸入“=SUMIF(C3:C171,">350",H3:H171)”,只取C列值大于350的行的H列值之和。D174、I174同理輸入,于是I176=(H174+I174)/E174得出該周全廠發(fā)電煤耗。
四、PI-Datalink使用中注意的問題
(一)表格中PI數(shù)據(jù)的刷新
(二)字符串參數(shù)的輸入
對于函數(shù)中要輸入的字符串參數(shù),需要給它們加雙引號。例如表4中的L6=PIArcVal("SM_DA160922_MC_SW",K6,0,"10.2.8.163","auto"),KKS碼、獲取地址、輸出模式均是字符串參數(shù),均需加上雙引號。如果將代碼和地址輸入單元后再引用,如時間戳值輸入K6,則直接鏈接即可,不再需要加引號。
(三)重要數(shù)據(jù)需用另一采集方式雙向驗證
在采集讀取重要數(shù)據(jù),如電廠發(fā)電量通過PI函數(shù)采集讀取關口表表底數(shù),計算取得的兩臺機組發(fā)電量,可以和SIS系統(tǒng)兩臺機組的均值負荷累計計算出的發(fā)電量進行相互比對,以防關口表的表計故障或通訊中斷。如SIS系統(tǒng)采集出錯,也可以以此反向驗證。同樣在目前電廠應用PI數(shù)據(jù)庫的統(tǒng)計報表中,還有通過化水石灰處理系統(tǒng)采集的補水量與岸邊泵房人工上報耗水量進行雙向驗證;通過發(fā)電煤耗、發(fā)電原煤耗反算的入爐煤熱值與化驗班所報送熱值雙向驗證等。
參考文獻:
吳志強,陳軍,朱云.基于VBA和PI-Datalink批量數(shù)據(jù)導出的設計和實現(xiàn)[J].企業(yè)技術開發(fā),2013(Z3).
(作者單位:國華徐州發(fā)電有限公司)