喻洋洋,單鵬珠,周嘉元,楊 斌
(1.南瑞集團(tuán)公司(國網(wǎng)電力科學(xué)研究院),江蘇 南京211106;2.華東宜興抽水蓄能有限公司,江蘇 宜興214200)
隨著我國電力系統(tǒng)的快速發(fā)展,可進(jìn)行調(diào)峰調(diào)頻,有利于電網(wǎng)安全穩(wěn)定運行的大型抽水蓄能電站也發(fā)揮著越來越重要的作用。我國在20世紀(jì)80、90年代建設(shè)的大型抽水蓄能電站計算機監(jiān)控系統(tǒng)基本采用ABB、阿爾斯通和西門子等國外進(jìn)口監(jiān)控產(chǎn)品,這些產(chǎn)品在長期運行過程中逐漸暴露出功能擴展困難,售后服務(wù)響應(yīng)慢,備品備件價格昂貴、外方技術(shù)保密等種種弊端。隨著響水澗、蒲石河等大型抽水蓄能電站監(jiān)控系統(tǒng)國產(chǎn)化投入商業(yè)運行,我國具備自主知識產(chǎn)權(quán)的國產(chǎn)化大型抽蓄監(jiān)控系統(tǒng)日臻成熟。因此,國產(chǎn)監(jiān)控系統(tǒng)與國外監(jiān)控系統(tǒng)的信息交互是對外方監(jiān)控系統(tǒng)進(jìn)行功能擴展或升級改造的關(guān)鍵技術(shù)問題[1]。
宜興抽水蓄能電站總裝機容量為100萬kW,安裝了4臺25萬kW的可逆式水泵水輪機組。宜興抽水蓄能電站計算機監(jiān)控系統(tǒng)采用ABB公司的800xA系統(tǒng),現(xiàn)地控制單元采用AC800M控制器及S800系列I/O模件,人機接口則采用基于Windows平臺的Power Generation Portal(PGP)軟件。宜興抽水蓄能電站與江蘇省調(diào)EMS系統(tǒng)的一平面104遠(yuǎn)動通信功能由ABB外包第三方公司實現(xiàn),江蘇省調(diào)智能電網(wǎng)調(diào)度系統(tǒng)D5000需要電站增加新的遠(yuǎn)動二平面104通信,由于ABB外包第三方公司已注銷,因此原通道不能增加新的遠(yuǎn)動通信鏈路,也就無法實現(xiàn)與D5000系統(tǒng)的遠(yuǎn)動通信。本文以南瑞集團(tuán)公司NC2000計算機監(jiān)控系統(tǒng)軟件為開發(fā)平臺,開發(fā)出與ABB公司800xA系統(tǒng)進(jìn)行數(shù)據(jù)交互的NARI OPC客戶端軟件,并采用IEC104實現(xiàn)與省調(diào)D5000系統(tǒng)的二平面遠(yuǎn)動通信。
南京南瑞集團(tuán)公司NC2000計算機監(jiān)控系統(tǒng)軟件采用多層分布式對象架構(gòu),全面支持異構(gòu)平臺,具有高效安全可靠的監(jiān)控內(nèi)核、功能強大的組態(tài)工具、實用方便的應(yīng)用界面及多種標(biāo)準(zhǔn)的接口[2]。
(1)NC2000監(jiān)控軟件可運行的操作系統(tǒng)包括IBM Unix、HP Unix、SUN Unix、REDHAT Linux、微軟Windows等多種平臺,充分滿足用戶對異構(gòu)平臺的數(shù)據(jù)共享需求。
(2)NC2000監(jiān)控軟件內(nèi)核運用快速高效的C語言代碼編程,確保應(yīng)用軟件的實時動態(tài)響應(yīng)特性。
(3)NC2000提供面向?qū)ο蟆⒐δ軓姶蟮慕M態(tài)工具,用戶可在不同操作系統(tǒng)上靈活的完成數(shù)據(jù)庫、畫面、報表和流程等的組態(tài)工作。
OPC(OLE For Process Control)是基于Windows平臺的現(xiàn)場過程控制技術(shù),OPC將各個硬件設(shè)備驅(qū)動程序和通信程序封裝成獨立的OPC服務(wù)器,OPC客戶端無需關(guān)心硬件的性能特點,可以直接通過標(biāo)準(zhǔn)的OPC接口訪問OPC服務(wù)器,從而使不同廠商的控制系統(tǒng)與用戶的應(yīng)用程序之間接口標(biāo)準(zhǔn)化[3]。
OPC技術(shù)是通過OPC服務(wù)器和OPC客戶端實現(xiàn)的,OPC服務(wù)器完成現(xiàn)場設(shè)備實時生產(chǎn)數(shù)據(jù)的采集,OPC客戶端與OPC服務(wù)器建立網(wǎng)絡(luò)鏈接,并通過OPC標(biāo)準(zhǔn)協(xié)議對OPC服務(wù)器中的生產(chǎn)數(shù)據(jù)進(jìn)行讀取。
ABB OPC技術(shù)可通過CSLib協(xié)議從ABB AC 800M控制器讀取實時生產(chǎn)數(shù)據(jù)和報警信息,其提供的數(shù)據(jù)信息符合OPC DA(Data Access)2.0及AE(Alarm & Event)1.02 規(guī)范。
NARI OPC客戶端采用微軟公司Visual C++語言編寫,其操作系統(tǒng)平臺為Windows Server 2008。NARI OPC客戶端用于實現(xiàn)與ABB 800xA系統(tǒng)的數(shù)據(jù)通信,獲取現(xiàn)場實時生產(chǎn)數(shù)據(jù),并將監(jiān)控系統(tǒng)的控制調(diào)節(jié)指令進(jìn)行轉(zhuǎn)發(fā)[4]。
NARI OPC客戶端應(yīng)用程序的主要編程實現(xiàn)如下所述。圖1為NARI OPC客戶端實現(xiàn)框圖。
圖1 NARI OPC客戶端實現(xiàn)框圖
(1)COM庫的初始化,注冊O(shè)PC組和OPC項。
HRESULT hndr;
hndr=CoInitializeEX(NULL,COINIT_MULTITHREADED);
hndr返回值有S_OK和S_FALSE,分別為初始化成功或初始化失敗。
OpcServerName = ABB.AC800MC_OpcDaServer.3;
ABB.AC800MC_OpcDaServer.3 為 ABB OPC 服務(wù)器的標(biāo)識名。
hndr=CLSIDFromProgID(L“OpcServerName”,&CLSID ABBOpcSver);
通過函數(shù)查詢OPC服務(wù)器的唯一CLSID。
(2)ABB OPC服務(wù)器創(chuàng)建實例及建立連接。
hndr=CoCreateInstanceEX(CLSID ABBOpcSver,NULL,CLSCTX_REMOTE_SERVER,NULL,IID_IUnknown,(void * *)&pKun);
hndr返回值有S_OK和S_FALSE,分別為實例創(chuàng)建成功和實例創(chuàng)建失敗。
pKun為接口指針,指向OPC服務(wù)器實例。
(3)ABB OPC添加組,實現(xiàn)對用戶具體OPC項的管理。
調(diào)用QueryInterface()函數(shù)獲取ABB IOPCServer接口指針pABBInst。
HRESULT r1r1=pKun->QueryInterface(IID_IOPCServer,(void**)&pABBInst);
通過AddGroup函數(shù)完成對ABB OPC服務(wù)器組名、激活狀態(tài)、刷新速率、死區(qū)等的設(shè)置。
hndr =pABBInst->AddGroup(GroupName,TRUE,1000,1,pTimeBias,pDeadBand,dwLCID,&hServerGroup,&dwRevisedUpdateRate,IID_IOPCItemMgt,&pItemMgt)
(4)ABB OPC添加項,完成對實時數(shù)據(jù)的處理。
通過AddItem函數(shù)完成OPC項的數(shù)量、屬性、結(jié)果信息及錯誤報警信息的設(shè)置。
hndr=pItemMgt->AddItem(dwCount,pItemArray,&pResults,&pErrors)。
(5)調(diào)用ReadItem()與WriteItem()數(shù)據(jù)同步函數(shù),實現(xiàn)NARI OPC客戶程序與ABB OPC服務(wù)器的數(shù)據(jù)交互。
hndr=pIOPCSyncIO->Read(OPC_DS_CACHE,ReadNumeber,hServerRead,&pItemValue,&pErrors);
hndr=pIOPCSyncIO->W(wǎng)rite(WriteNumeber,hServerWrite,WriteValue,&pErrors);
(6)最后,對ABB OPC組、項進(jìn)行移除操作,同時完成對內(nèi)存和指針的釋放。
hndr=pItemMgt->RemoveItems(1,pItemArray,&pErrors);
hndr=pABBInst->RemoveGroup(hServerGroup,F(xiàn)ALSE);
pItemMgt->Release();
pABBInst->Release();
CoUninitialize()。
NARI OPC客戶端運行于Windows服務(wù)器,NARI NC2000監(jiān)控系統(tǒng)運行于Linux服務(wù)器,OPC客戶端與NC2000監(jiān)控系統(tǒng)平臺的交互數(shù)據(jù)分為3類:開關(guān)量和模擬量、控制量和調(diào)節(jié)量以及報警信息。這3類數(shù)據(jù)采用UDP協(xié)議通過Windows服務(wù)器和Linux服務(wù)器進(jìn)行數(shù)據(jù)傳輸,每類數(shù)據(jù)的傳輸過程均經(jīng)過有效性檢驗。
兩臺Windows服務(wù)器和兩臺Linux服務(wù)器均為并列運行方式,每臺Windows服務(wù)器只與一臺Linux服務(wù)器進(jìn)行數(shù)據(jù)交互,兩條數(shù)據(jù)通道保持獨立狀態(tài)。圖4為NARI NC2000監(jiān)控平臺與OPC客戶端數(shù)據(jù)流向圖。
圖4 NARI NC2000監(jiān)控平臺與OPC客戶端數(shù)據(jù)流向圖
宜興抽水蓄能電站ABB 800xA系統(tǒng)布置有2臺OPC主機服務(wù)器,冗余方式配置[5],主機服務(wù)器與ABB AC800M冗余控制器通過TCP/IP協(xié)議進(jìn)行通信,AC800M控制器通過Modbus Bus光纖與S800 I/O采集單元獲取設(shè)備的實時生產(chǎn)數(shù)據(jù)。OPC服務(wù)器上安裝的MB300 OPC Server軟件負(fù)責(zé)獲取MB300網(wǎng)絡(luò)OPC服務(wù)器之間的數(shù)據(jù)傳輸。OPC服務(wù)器是典型的現(xiàn)場數(shù)據(jù)源程序,它收集現(xiàn)場設(shè)備的生產(chǎn)數(shù)據(jù),通過標(biāo)準(zhǔn)的OPC接口傳送給OPC客戶端使用。
南瑞遠(yuǎn)動通信系統(tǒng)實現(xiàn)了宜興抽水蓄能電站ABB監(jiān)控系統(tǒng)與江蘇省調(diào)D5000系統(tǒng)的數(shù)據(jù)中轉(zhuǎn)和交互。遠(yuǎn)動通信系統(tǒng)配置2臺Windows服務(wù)器和兩臺Linux服務(wù)器。Windows服務(wù)器通過OPC標(biāo)準(zhǔn)接口與ABB MB300網(wǎng)絡(luò)上的ABB OPC服務(wù)器進(jìn)行數(shù)據(jù)交互;Linux服務(wù)器通過遠(yuǎn)動IEC870-5-104規(guī)約將電站生產(chǎn)信息上傳至省調(diào),同時接收省調(diào)D5000系統(tǒng)對宜興電站的遙調(diào)指令。
江蘇省調(diào)D5000系統(tǒng)(智能電網(wǎng)電力調(diào)度技術(shù)支持系統(tǒng))采用了面向服務(wù)架構(gòu)(SOA)設(shè)計[6],能夠?qū)崿F(xiàn)對各個子站生產(chǎn)數(shù)據(jù)的高效率實時采集。南瑞NC2000計算機監(jiān)控系統(tǒng)通過IEC104遠(yuǎn)動通信規(guī)約實現(xiàn)與D5000系統(tǒng)的數(shù)據(jù)交互。
我國早期的大型抽水蓄能電站監(jiān)控產(chǎn)品基本是與ABB、西門子或阿爾斯通等主機捆綁購買,一方面由于投產(chǎn)時間較早,其監(jiān)控系統(tǒng)在遠(yuǎn)動通信、歷史數(shù)據(jù)分析等方面已經(jīng)不能滿足電站當(dāng)前生產(chǎn)運行的需求;另一方面,由于國外監(jiān)控廠家的技術(shù)封鎖和高昂的后期運維成本,使得電站往往要付出巨大的經(jīng)濟(jì)代價才能獲得監(jiān)控系統(tǒng)功能的部分升級[7]。因此,國內(nèi)早期抽水蓄能電站迫切需要一種功能可靠、運行穩(wěn)定、性價比高的監(jiān)控系統(tǒng)功能擴展方法。
本文針對江蘇宜興抽水蓄能電站D5000遠(yuǎn)動通信的功能擴充,以國內(nèi)主流計算機監(jiān)控產(chǎn)品南瑞NC2000為平臺,結(jié)合OPC現(xiàn)場過程控制技術(shù),提出了一種遠(yuǎn)動通信技術(shù)方案,有效地解決了電廠的技術(shù)難題,也為其他有監(jiān)控系統(tǒng)功能擴展需求的電站提供了很好的技術(shù)參考。