服務熱線
18971653633
風電場網絡通訊采用光纜傳輸,風機與風機之間的網絡拓撲結構采用可自愈式以太環(huán)網結構,風場級拓撲結構為多環(huán)結構。風機機艙與塔基之間的連接光纜為多模光纜。風機與風機之間及風機與監(jiān)控中心之間的連接均為單模光纜。風場通訊網絡環(huán)內采用100M光纖以太網絡。核心交換機與風場監(jiān)控系統(tǒng)服務器的接口采用1000M以太網。
硬件系統(tǒng)包括數(shù)采服務器2臺、數(shù)據(jù)服務器2臺、應用服務器2臺(應用服務器通常與數(shù)采服務器合二為一)、發(fā)布機1臺、I/O機1臺,操作員站1臺、若干安全隔離設備。其中,數(shù)據(jù)服務器存放歷史數(shù)據(jù),具體實施過程中,甲方可根據(jù)風場規(guī)模進行服務器配置,小規(guī)模風場可將數(shù)采服務器、數(shù)據(jù)服務器、應用服務器合而為一,對于大規(guī)模風場可部署多臺數(shù)采服務器、數(shù)據(jù)服務器及應用服務器,軟件采用模塊化設計,可部署于同一臺服務器也可分別部署。
服務器采用龍芯3C5000L服務器處理器芯片,2.2G/16核,基于*自主的LoongArch®龍芯指令系統(tǒng),支持雙路、四路機架式及塔式、高密度等多種服務器及存儲產品形態(tài)。雙路32核服務器具備高性價比,四路64核服務器性能好,算力強。龍芯3C5000L完善支持Docker、KVM等虛擬化應用,適合數(shù)據(jù)中心、云計算以及高性能計算等領域廣泛應用。詳細參數(shù)如下。
四、軟件設計說明
將軟件分為三層,其組成和框架如下圖2。
關于該系統(tǒng)開發(fā),軟件部署主要包括風機數(shù)采服務器程序、應用服務器程序、數(shù)據(jù)服務器程序、發(fā)布機程序、I/O機程序。
將該監(jiān)控系統(tǒng)程序根據(jù)功能結構劃分為三層,采集層、服務層、前端網站,每部分均可根據(jù)服務器分布情況獨立安裝部署,程序之間均采用標準UDP或TCP協(xié)議。
I/O機主要完成協(xié)議轉換及第三方接口通訊功能,主要通訊協(xié)議均部署在該服務器,在實際應用中,各技術協(xié)議是以應用的方式呈現(xiàn)的,可根據(jù)系統(tǒng)程序框架,自由添加協(xié)議,可對每個協(xié)議進程進行添加、關閉和配置。按照程序開發(fā)架構方式,各通訊協(xié)議均可部署至任何一臺服務器。
發(fā)布機包含了完整的網站服務、UI、網閘通訊、歷史數(shù)據(jù)記錄及查詢功能,將風機數(shù)據(jù)發(fā)布至公網,可遠程訪問查看該風場狀態(tài)。
(一)軟件架構
根據(jù)軟件的三層結構,軟件的設計框架如圖3所示。
1、SCADA展示層,首先需通過“檔案管理”模塊,錄入風機模塊信息,并導入模塊點表;
2、根據(jù)模塊信息組合出風機類型,配置風機相關的通信參數(shù);
3、數(shù)據(jù)服務的部分,根據(jù)配置的風機相關信息,生成數(shù)采所需的配置信息:如鏈路配置,IO點表信息,創(chuàng)建風機通信的模塊;
4、風機配置完成后,數(shù)采的部分開始工作:各個通信模塊通過點表信息,采集風機的數(shù)據(jù),并將數(shù)據(jù)寫入實時數(shù)據(jù)緩存;
5、實時數(shù)據(jù)rtdb緩存將數(shù)據(jù)進行整理,分發(fā)給不同的應用模塊
6、實時數(shù)據(jù)模塊:指令通道,用于單獨處理SCADA下發(fā)的指令,并將指令下發(fā)給數(shù)采來控制風機;emqx主要用于SCADA頁面的實時數(shù)據(jù)訂閱/發(fā)布;redis主要用于緩存實時數(shù)據(jù),并緩存一些統(tǒng)計信息;
7、能量管理算法模塊:處理風場本地調度、電網調度、集控調度;并將調度的過程進行記錄;
8、歷史數(shù)據(jù)的部分是通過實時數(shù)據(jù)的接口進行周期或者變位存盤;并定期做數(shù)據(jù)調度,處理統(tǒng)計信息;并需根據(jù)主控上傳的報警信息,處理報警數(shù)據(jù)的存盤;
9、SCADA展示層數(shù)據(jù)源從兩個方面獲?。簩崟r數(shù)據(jù)主要通過訂閱的方式從實時數(shù)據(jù)區(qū)獲??;歷史統(tǒng)計信息主要從歷史數(shù)據(jù)庫中獲?。?/p>
(二)通信層設計
1、風機設備模型:如圖4所示。
1).根據(jù)不同的風機類型點表,對點表進行抽象分類,并對分類的數(shù)據(jù)點進行編碼,并生成數(shù)據(jù)點表;
2).數(shù)據(jù)點表可以在檔案管理里面進行相關的處理;
3).展示層所有的標量數(shù)據(jù)顯示都是根據(jù)指標碼的形式反向查詢數(shù)據(jù)檔案進行顯示;
2、數(shù)據(jù)傳輸流程:如圖5所示。
1).數(shù)采的部分采用成熟的QTouch采集軟件框架,里面涵蓋豐富的設備通信驅動,保證現(xiàn)場所有的設備能夠正常聯(lián)網通信;所有的數(shù)據(jù)進入實時共享內存區(qū),供其它接口實時訪問;
2).在數(shù)采服務器與數(shù)據(jù)服務器分離的情況下,前置服務器用于接收數(shù)采傳輸?shù)膶崟r數(shù)據(jù),此部分需代碼重新開發(fā)調整
3).報警引擎的部分:需在QTouch的報警體系下進行重定義代碼級開發(fā)調整;
4).消息中間件:采集第三方emqx消息中間件,redis實時數(shù)據(jù)緩存;用做數(shù)據(jù)的實時訂閱和發(fā)布(此功能需代碼開發(fā)調整);
5).此部分會用到兩套emqx中間件:一套用作頁面實時展示的數(shù)據(jù),一套用作控制下發(fā)的操作,確??刂频膶崟r有效而不受其它模塊影響
6).一套redis實時數(shù)據(jù)緩存服務:主要用于頁面的實時曲線數(shù)據(jù)緩存部分的數(shù)據(jù);
7).原始數(shù)據(jù)直接根據(jù)接收端的數(shù)據(jù)緩存直接存儲:此部分需代碼級開發(fā)
8).根據(jù)業(yè)務邏輯,將數(shù)據(jù)進行分庫分表存儲:如,分鐘、小時、天、月、年進行分表存儲;業(yè)務邏輯存儲部分,單一個模塊,直接從實時數(shù)據(jù)庫中獲取數(shù)據(jù);
9).分表策略;仍然以風機為單位,單個風機分為模擬量表、開關量表(模擬量和開關量分開,主要是因為模擬量可以按照秒級存儲,開關量按照狀態(tài)變化來存儲);以橫向存儲為原則,即單個風機在一個時刻存儲在數(shù)據(jù)庫中為一條數(shù)據(jù);
10).web發(fā)布:采用成熟的apache web服務器框架進行發(fā)布應用,前端采用的是SSM框架進行代碼開發(fā);
11).與第三方數(shù)據(jù)交互主要采用OPC UA、或者104等通信協(xié)議來進行交互;
(三)服務引用層
1.系統(tǒng)服務
整個系統(tǒng)提供七大服務:數(shù)采服務、消息中間件服務、存儲數(shù)據(jù)服務、數(shù)據(jù)服務、數(shù)據(jù)調度服務、數(shù)據(jù)推送服務、web服務,如圖6所示:
2.服務集群部署:如圖7所示
(四)數(shù)據(jù)庫層
1.功能與數(shù)據(jù)流向圖
從原始數(shù)據(jù)進入系統(tǒng)到數(shù)據(jù)輸出到前端供WEB系統(tǒng)應用,整個數(shù)據(jù)流向分為:原始數(shù)據(jù)、數(shù)據(jù)預處理、數(shù)據(jù)應用三個階段。
原始數(shù)據(jù),即由前置通訊解析完成后所取得的設備數(shù)據(jù),此數(shù)據(jù)不作任何二次計算。在原始數(shù)據(jù)中,由于數(shù)據(jù)存儲的頻率到秒級、要求存儲的周期至少3個月,設備數(shù)量在300臺左右,因此在原始數(shù)據(jù)的存儲上以設備為單位進行分表。則300臺設備其原始數(shù)據(jù)為300套數(shù)據(jù)單元表。
數(shù)據(jù)預處理:為提高系統(tǒng)訪問速度,給予前端應用良好的體驗效果,故應以最小的延時時間讓用戶盡快獲取到數(shù)據(jù)。在原始數(shù)據(jù)進入數(shù)據(jù)庫后,再根據(jù)應用功能的要求進行數(shù)據(jù)的二次計算,包括發(fā)電量、故障統(tǒng)計、風速統(tǒng)計,也包括最大值、最小值等數(shù)據(jù)的計算。整個數(shù)據(jù)的預處理,將會在后臺以不同的頻率時行調度執(zhí)行,執(zhí)行完成的結果寫入固定的數(shù)據(jù)表中,再給其它功能調度使用。
數(shù)據(jù)應用:數(shù)據(jù)應用的直接體現(xiàn)為用戶前端的數(shù)據(jù)查詢。根據(jù)分表的原則,以秒級為單位,則單臺風機的月累計數(shù)據(jù)量為:86400條,連續(xù)保存三個月,則為:26萬條。數(shù)據(jù)應用查詢以單臺風機查詢時,可以保持良好的體驗。
2.實體和屬性
實體是實體-關系模型的基本對象,是現(xiàn)實案例中各種事物的抽象。凡是可以相互區(qū)別并可以被識別的事、物、概念等對象均可認為是實體。本系統(tǒng)數(shù)據(jù)庫中,以單臺風機為基礎,按實體進行劃分如下:
數(shù)據(jù)分表
2.1原始表
①表命名規(guī)則:
fan_sto_風機編號_sec_201901 : 秒級存儲(按月、風機編號分表)
fan_sto_風機編號_min : 分級存儲(按月、風機編號分表)
fan_sto_風機編號_hour : 時級存儲(按月、風機編號分表)
fan_sto_風機編號_day : 天級存儲(按月、風機編號分表)
②外鍵關聯(lián):
sto_field_id 風場編號 >>關聯(lián)>>dwf_field風場表的dwf_id
sto_fan_id 風機編號 >>關聯(lián)>>dgf_fan風場表的dgf_id
③取值方案:
原始表根據(jù)數(shù)據(jù)類型分為:模擬量。模擬量根據(jù)數(shù)據(jù)粒度分為:秒級、分鐘級、小時級,其中,秒級存儲原始值;分鐘級存儲整分時刻原始值;小時級存儲整點時刻原始值;
④原始數(shù)據(jù)存儲及自動創(chuàng)表原則:
原始數(shù)據(jù)儲存單風機一個月數(shù)據(jù),自動創(chuàng)建數(shù)據(jù)表。自動創(chuàng)建數(shù)據(jù)表可以調用存儲過程,亦可以在代碼中創(chuàng)建。
⑤表數(shù)據(jù)容量估算:
秒級數(shù)據(jù)單月存儲量:60秒*60分*24小時*31天=268萬
分鐘級數(shù)據(jù)單月存儲量:60分*24小時*31天=4.46萬
原始數(shù)據(jù)表結構:
數(shù)字量存儲:
①表命名規(guī)則:
fan_std_風機編號_年份 : 開關量量化即儲存(按年、風機編號分表)
②外鍵關聯(lián):
std_field_id 風場編號 >>關聯(lián)>>dwf_field風場表的dwf_id
std_fan_id 風機編號 >>關聯(lián)>>dgf_fan風場表的dgf_id
③取值方案:
開關量量化即儲存
④原始數(shù)據(jù)存儲及自動創(chuàng)表原則:
每臺風機每年一張表,自動創(chuàng)建數(shù)據(jù)表。自動創(chuàng)建數(shù)據(jù)表可以調用存儲過程,亦可以在代碼中創(chuàng)建。
⑤表數(shù)據(jù)容量估算:
單表一年數(shù)據(jù):41次*365天*200開關量=299萬
即每天風機的所有開關量平均變化不超過41次時,單表一年數(shù)據(jù)不超成功300萬條
2.2實時表
實時表主要用來存儲單臺風機實時數(shù)據(jù),單臺實時數(shù)據(jù)包括:實時值、狀態(tài)值、統(tǒng)計值和靜態(tài)檔案。
實時值:實時刷新風機的參數(shù)值由消息隊列推送于前端應用。另外一部分實時值包括氣象數(shù)據(jù)、箱變信息也一并由消息隊列推送于前端應用。
狀態(tài)值:風機運行狀態(tài)由設備端上送風機狀態(tài),(變化上送和存儲)主動存儲到設備狀態(tài)數(shù)據(jù)表中。
統(tǒng)計值:由歷史數(shù)據(jù)進行統(tǒng)計,包括:日發(fā)電量、月發(fā)電量,報警數(shù)據(jù)量,累計運行時間、累計維護次數(shù)等統(tǒng)計值。
設備檔案:包括設備編號、設備類型等靜態(tài)信息。
2.3設備狀態(tài)
設備狀態(tài),主要記錄風機通訊狀態(tài)變化。當風機發(fā)生故障,通訊中斷時通知系統(tǒng)用戶。當風機排除故障,通訊恢復正常后通知系統(tǒng)用戶。設備狀態(tài)以變位方式存儲。
2.4統(tǒng)計表
統(tǒng)計表主要針對37項統(tǒng)計項,分為自由統(tǒng)計和報表下載;自由統(tǒng)計由:普通統(tǒng)計、分段統(tǒng)計、風玫瑰圖報表、功率曲線報表組成;報表下載由:日報表、月報表、年報表、日分段報表、月分段報表、年分段報表、損失電量報表、時間可利用率報表、發(fā)電量可利用率報表組成。
37項統(tǒng)計方法說明如下:
發(fā)電量:查詢首尾時間的總發(fā)電量相減;
耗電量:查詢首尾時間的耗電量相減;
風機可以用率:1-(風機自身故障小時數(shù)/統(tǒng)計小時數(shù));
最小風速:查詢時間段內的瞬時風速取最小值;
最大風速:查詢時間段內的瞬時風速取最大值;
平均風速:查詢時間段內的瞬時風速進行累加/查詢到的記錄條數(shù);
最小有功功率:查詢時間段內的有功功率取最小值;
最大有功功率:查詢時間段內的有功功率取最大值;
平均有功功率:查詢時間段內的有功功率累加/查詢到的記錄條數(shù)
最小無功功率:查詢時間段內的無功功率取最小值;
最大無功功率:查詢時間段內的無功功率取最大值;
平均無功功率:查詢時間段內的無功功率累加/查詢到的記錄條數(shù)
低環(huán)境溫度:查詢時間段內的環(huán)境溫度取最小值;
最高環(huán)境溫度:查詢時間段內的環(huán)境溫度取最大值;
平均環(huán)境溫度:查詢時間段內的環(huán)境溫度進行累加/查詢到的記錄條數(shù);
有效風小時數(shù):查詢首尾時間的有效風小時數(shù)相減;
有效風時率:有效風小時數(shù)/統(tǒng)計小時數(shù)*100%;
風機可用小時數(shù):風機正常運行小時數(shù)+非風機自身故障停機小時數(shù);
風機正常運行小時數(shù):查詢首尾時間的風機正常運行時間相減;
發(fā)電小時數(shù):查詢首尾時間的發(fā)電小時相減;
停運小時數(shù):統(tǒng)計總時間-統(tǒng)計時間段的風機正常運行小時數(shù);
故障停機小時數(shù);查詢首尾時間的故障停機時間相減;
風機自身故障停機小時數(shù):查詢首尾時間的風機自身故障停機時間相減;
非風機自身故障停機小時數(shù):故障停機小時數(shù)-風機自身故障停機小時數(shù);
維護小時數(shù):查詢首尾時間的服務時間相減;
故障停機次數(shù):查詢時間段內的故障為TRUE的記錄條數(shù);
風機自身故障停機次數(shù):查詢時間段內的風機自身故障停機為TRUE的記錄條數(shù);
非風機自身故障停機次數(shù):故障停機次數(shù)-風機自身故障停機次數(shù);
維護次數(shù):查詢時間段內的工作模式為維護的記錄條數(shù);
并網次數(shù):查詢時間段內的并網為TRUE的記錄條數(shù);
偏航次數(shù):左偏次數(shù)+右偏次數(shù);
左偏次數(shù):偏航在逆時針運行模式為TRUE的記錄條數(shù);
右偏次數(shù):偏航在順時針運行模式為TRUE的記錄條數(shù);
滿發(fā)小時數(shù):統(tǒng)計周期內風機發(fā)電量/風機容量;
人工停機小時數(shù):查詢首尾時間的人工停機時間相減;
環(huán)境溫度過低停機小時數(shù):查詢首尾時間的環(huán)境溫度過低停機時間相減;
風暴停機小時數(shù):查詢首尾時間的風暴停機時間相減;
3.數(shù)據(jù)庫主從熱備
數(shù)據(jù)庫主從熱備目前行業(yè)通用的工具是使用:keepalive實現(xiàn)主從熱備,無縫切換。其配置簡單,實用性高。keepalived的作用是檢測后端TCP服務的狀態(tài),如果有一臺提供TCP服務的后端節(jié)點死機,或者工作出現(xiàn)故障,keepalived會及時檢測到,并將有故障的節(jié)點從系統(tǒng)中剔除,當提供TCP服務的節(jié)點恢復并且正常提供服務后keepalived會自動將TCP服務的節(jié)點加入到集群中。這些工作都是keepalived自動完成,不需要人工干涉。
KeepAlive主機配置:
KeepAlive從機配置: