3.4.6;遠程PC機 包括基于C#語言開發(fā)的實時數(shù)據(jù)獲取與發(fā)布模塊;監(jiān)測App采用Objective C語言在Xc〇de6 環(huán)境下編寫;本地服務(wù)器采用Dell PowerEdge R730Xeon E5-260型號的服務(wù)器,本地服務(wù) 器的數(shù)據(jù)采集模塊從下位機中獲取實時數(shù)據(jù),遠程傳輸模塊將數(shù)據(jù)采集模塊中的實時數(shù)據(jù) 進行序列化處理并將序列化的數(shù)據(jù)傳至Zooke印er群集;
[0047] 本發(fā)明實施例中,所述的N臺多功能電子測量儀分別用于采集N組風機運行過程中 各風機的實時數(shù)據(jù),各多功能電子測量儀的輸出端都與PLC的輸入端相連,所述的PLC用于 接收多功能電子測量儀發(fā)來的實時數(shù)據(jù),并將從多功能電子測量儀接收的實時數(shù)據(jù)通過 OPC通訊協(xié)議傳至本地服務(wù)器的數(shù)據(jù)采集模塊;
[0048] 本發(fā)明實施例中,PLC用于控制多功能電子測量儀的數(shù)據(jù)采集過程,接收多功能電 子測量儀發(fā)來的實時數(shù)據(jù),并將該實時數(shù)據(jù)通過OPC(工業(yè)標準OLE for Process Control) 通訊協(xié)議傳至本地服務(wù)器的OPC數(shù)據(jù)采集程序;
[0049]本發(fā)明實施例中,本地服務(wù)器的OPC數(shù)據(jù)采集模塊用于從PLC接收實時數(shù)據(jù),添加 風機組號和監(jiān)測數(shù)據(jù)時刻的時間戳后,將數(shù)據(jù)存儲到位于本地服務(wù)器的數(shù)據(jù)庫,同時通過 實時數(shù)據(jù)遠程傳輸模塊將數(shù)據(jù)發(fā)送到云服務(wù)器的Zookeeper群集的節(jié)點中;
[0050] 本發(fā)明實施例中,本地服務(wù)器的數(shù)據(jù)存儲,指利用JeasyOPC讀取OPC服務(wù)器的風力 發(fā)電機組及場內(nèi)變電站的設(shè)備運行情況及生產(chǎn)運行數(shù)據(jù),再加上風機組號和時間戳,通過 用戶名和密碼連接數(shù)據(jù)庫,將數(shù)據(jù)存入關(guān)系數(shù)據(jù)庫中;
[0051] 本發(fā)明實施例中,本地監(jiān)測網(wǎng)絡(luò)模塊用于接收實時數(shù)據(jù)供企業(yè)人員進行本地監(jiān) 測;
[0052]本發(fā)明實施例中,實時數(shù)據(jù)遠程傳輸模塊,在實現(xiàn)OPC客戶端讀取OPC服務(wù)器的數(shù) 據(jù)并存入數(shù)據(jù)庫的同時,判斷網(wǎng)絡(luò)通訊是否正常,是,則基于Zookeeper技術(shù)向云服務(wù)器的 Zookeeper群集傳送實時數(shù)據(jù),否,且等待網(wǎng)絡(luò)通訊恢復正常時,繼續(xù)向云服務(wù)器的 Zookeeper群集傳送實時數(shù)據(jù)。由于風機組采集的數(shù)據(jù)量過大,而移動終端往往只需監(jiān)測風 機部分數(shù)據(jù)項,為了減少后期數(shù)據(jù)處理的難度,根據(jù)監(jiān)測的功能需求,在Zookeeper中創(chuàng)建2 個根目錄節(jié)點,并分別在根目錄下創(chuàng)建N個子節(jié)點,如F1,F(xiàn)2,.. .FN。實時數(shù)據(jù)遠程傳輸模塊 根據(jù)風機組號將N臺風機組生產(chǎn)運行時的所有數(shù)據(jù)和移動監(jiān)測所需數(shù)據(jù)分別發(fā)送至對應(yīng)根 目錄的子節(jié)點中;
[0053]本發(fā)明實施例中,云服務(wù)器的Zookeeper群集中,存在2個根目錄節(jié)點,而每一個根 節(jié)點下均存在N個子節(jié)點,分別用于接收和存儲本地服務(wù)器中的實時數(shù)據(jù)遠程傳輸模塊發(fā) 送來的對應(yīng)風機的所有實時數(shù)據(jù)和監(jiān)測所需實時數(shù)據(jù)。所述Zookeeper客戶端還能自動處 理到服務(wù)器的網(wǎng)絡(luò)故障,當網(wǎng)絡(luò)連接中斷又恢復后,客戶端能自動重新與服務(wù)器建立連接, 從而簡化了分布式應(yīng)用程序?qū)τ跀嗑W(wǎng)的處理;
[0054]本發(fā)明實施例中,遠程PC機的數(shù)據(jù)獲取與發(fā)布模塊是基于ASP.NET開發(fā)的,可以將 從Zookeeper群集中獲取的實時數(shù)據(jù)發(fā)布到指定網(wǎng)頁,由于數(shù)據(jù)變化較快,因此有必要在程 序中添加緩存與自動刷新功能,每隔4s便將最新數(shù)據(jù)發(fā)布到網(wǎng)頁;當本地服務(wù)器與云端的 Zookeeper群集的網(wǎng)絡(luò)連接由于種種原因中斷時,實時數(shù)據(jù)的傳輸也會停止,此時遠程PC機 的網(wǎng)頁顯示的是傳輸中斷之前的Zookeeper節(jié)點中的最新數(shù)據(jù),當數(shù)據(jù)傳輸重新恢復后, Zookeeper節(jié)點數(shù)據(jù)更新與發(fā)布到網(wǎng)頁也重新恢復,但中斷時間段內(nèi)的實時數(shù)據(jù)不會顯示; [0055]本發(fā)明實施例中,移動終端安裝的監(jiān)測App是基于Objective C語言開發(fā)的,通過 URL讀取指定網(wǎng)址的JSON(JavaSCript對象表示法)格式的實時數(shù)據(jù),進行反序列化后顯示 在界面上,供企業(yè)人員或科研人員隨時隨地移動監(jiān)測,通過用戶名和密碼登錄監(jiān)測App對N 組風機的有功功率、無功功率、功率因素、風速、累計發(fā)電量、可利用率、故障累計時間進行 實時監(jiān)測,及時了解風機組的運行情況。
[0056]本發(fā)明實施例中,采用基于私有云的風電移動監(jiān)測系統(tǒng)進行的監(jiān)測方法,方法流 程圖如圖2所示,包括以下步驟:
[0057]步驟1、采用本地數(shù)據(jù)采集裝置采集多組風機實時數(shù)據(jù),并將實時數(shù)據(jù)發(fā)送至本地 服務(wù)器的數(shù)據(jù)采集模塊中;
[0058]本發(fā)明實施例中,PLC控制多功能電子測量儀的數(shù)據(jù)采集過程,接收多功能電子測 量儀發(fā)來的實時數(shù)據(jù);所述實時數(shù)據(jù)包括風力發(fā)電機組及場內(nèi)變電站的設(shè)備運行情況及生 產(chǎn)運行所有實時數(shù)據(jù);本實施例中對一組風機運行過程變量每4s-次進行周期性采樣,監(jiān) 測變量包括:當天發(fā)電時間(h)、總發(fā)電時間(h)、當天無故障時間(h)、總無故障時間(h)、當 天滿發(fā)時間(h)、總滿發(fā)時間(h)、當天無功功量(w)、總無功功量(w)、當天可利用率(%),總 可利用率(%)等209個;
[0059] 步驟2、連接本地服務(wù)器,采用數(shù)據(jù)采集模塊接收本地數(shù)據(jù)采集裝置發(fā)送的風機實 時數(shù)據(jù),添加風機組號和監(jiān)測數(shù)據(jù)時刻的時間戳后,將數(shù)據(jù)存儲至關(guān)系數(shù)據(jù)庫中并發(fā)送至 實時數(shù)據(jù)遠程傳輸模塊中;
[0060] 本發(fā)明實施例中,使用JeasyOPC實現(xiàn)OPC客戶端,建立與OPC服務(wù)器的連接,讀取 OPC服務(wù)器采集到的數(shù)據(jù);
[0061] 本發(fā)明實施例中實現(xiàn)OPC客戶端的一般步驟為如附圖3所示:
[0062] 步驟2-1 ·建立一個OPC服務(wù)器對象(OPCServer);
[0063] 步驟2-2.建立OPC組對象(OPCGroup)和OPC項對象(OPCItem);
[0064] 步驟2-3.將Item(項)對象添加到Group(組)對象下;
[0065] 步驟2-4.將Group對象添加到Server (服務(wù)器)對象下;
[0066] 步驟2-5.對這些對象進行注冊,注冊完成后就可以通過Group對象和Item對象進 行數(shù)據(jù)訪問;
[0067] 步驟2-6:斷開OPC服務(wù)器的連接,釋放資源;
[0068]本發(fā)明實施例中,可根據(jù)監(jiān)測系統(tǒng)功能的需求,建立2個Group對象,將監(jiān)測所需 Item對象和風機組運行所有Item對象分別添加到對應(yīng)的Group對象下,OPC項代表與OPC月艮 務(wù)器到數(shù)據(jù)源的一個連接,包括值(Value)、品質(zhì)(Qual i ty)、時間戳(Time Stamp) 3個基本 屬性;
[0069]本發(fā)明實施例中,OPC客戶端讀取到數(shù)據(jù)后,連接本地服務(wù)器上的MySQL關(guān)系型數(shù) 據(jù)庫,將風機組生產(chǎn)運行的所有數(shù)據(jù)存入數(shù)據(jù)庫中,以備歷史數(shù)據(jù)的查詢、分析時使用; [0070]步驟3、采用本地監(jiān)測網(wǎng)絡(luò)模塊將關(guān)系數(shù)據(jù)庫中存儲的風機實時數(shù)據(jù)發(fā)送至本地 用戶進行實時監(jiān)測;
[0071 ]本發(fā)明實施例中,實時數(shù)據(jù)通過OPC通訊協(xié)議傳至本地服務(wù)器的數(shù)據(jù)采集模塊,并 使用JeasyOPC連接OPC服務(wù)器,讀取數(shù)據(jù)采集模塊采集到的數(shù)據(jù),同時存儲到位于本地服務(wù) 器的MySQL關(guān)系型數(shù)據(jù)庫和發(fā)送至云服務(wù)器的Zookeeper群集;
[0072]步驟4、采用實時數(shù)據(jù)遠程傳輸模塊判斷網(wǎng)絡(luò)通訊是否正常,若是,則將風機實時 數(shù)據(jù)發(fā)送至云服務(wù)器中,否則,等待網(wǎng)絡(luò)通訊恢復正常時,將風機實時數(shù)據(jù)發(fā)送至云服務(wù)器 中;
[0073] 步驟5、連接云服務(wù)器上的Zookeeper群集,在Zookeeper群集下創(chuàng)建2個根目錄節(jié) 點,并在每一個根目錄節(jié)點下創(chuàng)建多個子節(jié)點;
[0074]步驟6、采用Zookeeper技術(shù)將風機所有實時數(shù)據(jù)和監(jiān)測所需實時數(shù)據(jù)分別傳送至 云服務(wù)器的Zookeeper群集對應(yīng)根目錄下的對應(yīng)子節(jié)點中,并實時更新子節(jié)點中的數(shù)據(jù);
[0075] 本發(fā)明實施例中,某一次采樣周期采集的9組風機移動監(jiān)測所需實時數(shù)據(jù)如表1所 示;
[0076] 表 1
[0079]本發(fā)明實施例中,連接云服務(wù)器上的Zookeeper群集,在Zookeeper群集下創(chuàng)建2個 根目錄節(jié)點,分別用于存儲風機組所有實時數(shù)據(jù)和監(jiān)測所需實時數(shù)據(jù),在每一個根目錄節(jié) 點下,創(chuàng)建N個子節(jié)點,以風機號命名,如FI,F(xiàn)2... FN,用來存儲對應(yīng)風機的實時數(shù)據(jù);基于 Zookeeper技術(shù)將風機所有實時數(shù)據(jù)和監(jiān)測所需實時數(shù)據(jù)分別傳送至云服務(wù)器的 Zookeeper群集對應(yīng)根目錄下的對應(yīng)子節(jié)點中,當數(shù)據(jù)發(fā)生變化時,實時更新子節(jié)點中的數(shù) 據(jù),保證子節(jié)點中只顯示當前最新數(shù)據(jù);
[0080