任學鋒
(山西焦煤霍州煤電 供電分公司,山西 霍州 031412)
在電網(wǎng)中,SCADA 系統(tǒng)用于現(xiàn)場設備的數(shù)據(jù)采集、監(jiān)視和過程控制,是一個基于計算機的生產(chǎn)過程控制和調(diào)度自動化系統(tǒng),它可以完成數(shù)據(jù)采集、設備控制、測量、參數(shù)調(diào)整和各種信號報警,對提高電網(wǎng)運行的可靠性、安全性和經(jīng)濟效益具有重要作用。本文對霍州煤電集團供電分公司的霍州煤電礦井及地面生產(chǎn)生活的供電網(wǎng)絡的智能化監(jiān)測系統(tǒng)進行了分析研究,設計了一個由Java 編寫的SCADA 系統(tǒng),連接下層中央控制器和上層網(wǎng)絡監(jiān)控系統(tǒng),作為電網(wǎng)智能監(jiān)控平臺的樞紐。介紹了電網(wǎng)SCADA 系統(tǒng)的體系結構和主要處理任務,描述了SCADA 系統(tǒng)的設計實現(xiàn)和運行測試方式,為電網(wǎng)的監(jiān)控系統(tǒng)設計提供了參考。
霍州煤電集團供電分公司擔負著整個霍州煤電礦井及地面生產(chǎn)生活的供電任務,目前在集團公司附近總計有16 個變電站,其中3 個110 kV 變電所,13 個35 kV 變電所。目前,大部分變電站視頻監(jiān)控系統(tǒng)存在畫面缺失、模糊等問題,且電力調(diào)度監(jiān)控主站無法清晰、流暢的調(diào)度各變電站的監(jiān)控畫面,部分變電所的攝像機及各部件已經(jīng)損壞。因此有必要對電網(wǎng)的監(jiān)控系統(tǒng)進行智能化改造。
霍州煤電礦井及地面生產(chǎn)生活的供電網(wǎng)絡主要由電網(wǎng)硬件系統(tǒng)和電網(wǎng)智能監(jiān)控平臺組成,此次設計的SCADA 系統(tǒng)的架構如圖1 所示。SCADA 系統(tǒng)收到上層客戶端控制指令后,將指令解析,解析后的數(shù)據(jù)存儲在MySQL 數(shù)據(jù)庫中,并通過UART 以太網(wǎng)發(fā)送給下層中央控制器。
圖1 SCADA系統(tǒng)的體系結構Fig.1 Architecture of SCADA System
SCADA 系統(tǒng)調(diào)用線程類的“start”方法來啟動線程?!皊tart”方法調(diào)用將異步調(diào)用該線程類的“運行”方法,業(yè)務處理在“運行”方法中。系統(tǒng)以“運行”方式通過IO 流接收Modbus/TCP 協(xié)議數(shù)據(jù)幀。在對數(shù)據(jù)幀進行解析和驗證之后,會根據(jù)協(xié)議數(shù)據(jù)幀中的控制代碼字段對其進行分類。根據(jù)分類結果,數(shù)據(jù)以5 種不同的方式進行處理,即電氣報文業(yè)務處理、報警報文業(yè)務處理、客戶請求系統(tǒng)核對時間的報文業(yè)務處理、上位監(jiān)控系統(tǒng)發(fā)送控制指令的報文業(yè)務處理、上位監(jiān)控系統(tǒng)給出發(fā)電計劃指令的報文業(yè)務處理。SCADA 系統(tǒng)的業(yè)務處理流程如圖2 所示。
圖2 電網(wǎng)SCADA系統(tǒng)中的業(yè)務處理流程Fig.2 Business process in SCADA system
系統(tǒng)將匯總的電氣數(shù)據(jù)插入電網(wǎng)電氣表中,當數(shù)據(jù)被插入到電網(wǎng)電氣數(shù)據(jù)庫表中時,系統(tǒng)首先判斷是否存在當前日期的電網(wǎng)電氣表,若不存在則創(chuàng)建該表格并插入數(shù)據(jù);如果該表存在,則直接將數(shù)據(jù)插入其中。SCADA 系統(tǒng)每5 s 收集一次微電網(wǎng)電氣數(shù)據(jù),一天將有17280 項,數(shù)據(jù)量巨大,因此每次訪問這些表時,即使是簡單的數(shù)據(jù)庫連接也可能會影響效率。本文使用緩存機制來解決這個問題,緩存機制通過當前電網(wǎng)電氣表的緩存識別當前日期電網(wǎng)電氣表存在或不存在,并結合“不存在則創(chuàng)建表”語句解決系統(tǒng)重啟時緩存清空問題,保證電網(wǎng)電氣數(shù)據(jù)采集在SCADA 系統(tǒng)中的穩(wěn)定性。
首先,在命令行控制臺輸入“net start mysql”來啟動mysql 數(shù)據(jù)庫,然后輸入“java -jar server.jar”來啟動SCADA 系統(tǒng)。SCADA 系統(tǒng)啟動時會創(chuàng)建一個“ServerSocket”連接套接字,提供2 個參數(shù)綁定計算機的IP 地址和端口號。系統(tǒng)開始讀取配置文件,并將通過靜態(tài)塊完成配置信息的讀取并加載配置文件中的啟動模塊。
靜態(tài)塊是在JVM 加載的初始化階段執(zhí)行的,并且只執(zhí)行一次。系統(tǒng)在第一次加載啟動模塊時會創(chuàng)建一個線程池。線程池的最大容量從配置文件中獲取,按照線程池最大容量的10%預先在線程池中創(chuàng)建一定數(shù)量的線程。接著,系統(tǒng)創(chuàng)建2 個鏈接表,記錄下層中央控制器連接信息的中央控制器鏈接表(mcu 鏈接表),以及記錄上層網(wǎng)絡監(jiān)控系統(tǒng)連接信息的上層網(wǎng)絡監(jiān)控系統(tǒng)鏈接表(網(wǎng)絡鏈接表)。最后,系統(tǒng)調(diào)用“ServerSocket”連接套接字的“accept”方法來阻塞和等待來自客戶機的連接請求。結果顯示這些線程的狀態(tài),包括它們的序列號和一個標記是否被使用的標志。測試結果如圖3、圖4 所示。
圖3 MySQL的服務器啟動Fig.3 Server startup of MySQL
圖4 監(jiān)控和數(shù)據(jù)采集系統(tǒng)啟動Fig.4 Monitoring and data acquisition system startup
SCADA 系統(tǒng)啟動完成后,客戶端可以向SCADA 服務器發(fā)送連接請求。如果客戶端的IP 地址在合法的權限范圍內(nèi),系統(tǒng)會通過IO 流接收協(xié)議數(shù)據(jù)幀并解析。如果根據(jù)Modbus 協(xié)議規(guī)范,解析的協(xié)議數(shù)據(jù)幀是合法的,并且線程池中有可用的線程,則建立連接,否則連接斷開。測試結果如圖5、圖6 所示。
圖5 SCADA系統(tǒng)收到非法連接請求Fig.5 SCADA system receives illegal connection request
圖6 SCADA系統(tǒng)接收合法連接請求Fig.6 SCADA system receives legitimate connection request
當多個客戶端連接到SCADA 系統(tǒng)時,系統(tǒng)可以正常運行,因此該系統(tǒng)具有良好的可擴展性。此外,任何異常客戶端都不會影響客戶端與SCADA服務器之間的正常通信,測試結果如7 圖所示。
圖7 多個客戶端連接到SCADA系統(tǒng)Fig.7 Multiple clients connected to SCADA system
當發(fā)電量不足以供應所有負載時,管理員可以指示系統(tǒng)斷開一個負載與電網(wǎng)系統(tǒng)的連接。如圖8 所示,管理員在WEB 監(jiān)控系統(tǒng)中選擇要與電網(wǎng)系統(tǒng)斷開的負載1,點擊“確認”按鈕,后臺程序?qū)⒏鶕?jù)前臺界面的指令形成一幀控制。然后,控制幀將通過socket 的IO 流發(fā)送到SCADA 系統(tǒng)。接下來,SCADA 系統(tǒng)在解析該指令后通過UART以太網(wǎng)模塊將該指令發(fā)送到中央控制器,并將該操作插入MySQL 數(shù)據(jù)庫的“microEventTable”。最后,電網(wǎng)硬件平臺執(zhí)行指令切斷負載,保證電網(wǎng)安全穩(wěn)定。
圖8 WEB監(jiān)控系統(tǒng)中的實時控制用戶界面Fig.8 Real-time control user interface in WEB monitoring system
本文對霍州煤電集團供電分公司的霍州煤電礦井及地面生產(chǎn)生活的供電網(wǎng)絡的智能化監(jiān)測系統(tǒng)進行了分析研究,針對目前存在的問題,設計了一個由Java 編寫的SCADA 系統(tǒng)。介紹了SCADA 系統(tǒng)在電網(wǎng)中的重要性和功能,提出了作為電網(wǎng)中間件的SCADA 系統(tǒng)的體系結構,并詳細描述了SCADA 系統(tǒng)的Java 程序設計。該系統(tǒng)能夠?qū)崿F(xiàn)實時數(shù)據(jù)采集與存儲、控制命令解析與傳輸、系統(tǒng)安全與穩(wěn)定,保障電網(wǎng)的負載平衡和資源回收。運行測試證明了該系統(tǒng)的實用性和可行性。