用於電力採集系統故障終端檢測的主站模擬系統及檢測方法與流程
2024-01-23 03:32:15 1

本發明涉及電力採集系統技術領域,具體來說是用於電力採集系統故障終端檢測的主站模擬系統及檢測方法。
背景技術:
電力客戶用電信息採集系統是「sg186」信息化建設的重要組成部分,是營銷計量、抄表、收費標準體系建設的重要基礎,可為公司及發電企業、用電客戶提供準確、可靠、實時的基礎數據,將有力地提升管理和服務的信息化、現代化水平,使發電企業、用電客戶三方受益。
但在全國範圍內的電力採集系統中,變終端、公變終端、集中器等設備的故障是常見現象,對於這些設備故障的判斷也是一項十分重要的工作。由於電力終端設備分布散,難以通過人工方式進行現場檢測以排除故障終端。因此,如何設計出一種簡單的終端故障檢測系統及其方法已經成為急需解決的技術問題。
技術實現要素:
本發明的目的是為了解決現有技術中終端故障難以及時、便捷檢測出來的缺陷,提供一種用於電力採集系統故障終端檢測的主站模擬系統及檢測方法來解決上述問題。
為了實現上述目的,本發明的技術方案如下:
一種用於電力採集系統故障終端檢測的主站模擬系統,包括採集驅動模塊、規約驅動模塊和規約池管理模塊,採集驅動模塊用於主站與終端之間的通訊連接維護和數據的傳輸,採集驅動模塊與規約驅動模塊通過共享內存進行數據交互,規約池管理模塊根據用戶配置信息啟動採集驅動模塊和規約驅動模塊進程,實時監視、管理採集驅動模塊和規約驅動模塊進程運行情況。
所述的採集驅動模塊包括終端通訊線程池、數據收隊列池、收隊列數據提取線程池和發隊列數據提取線程池;所述的終端通訊線程池負責與終端進行各種類型和方式的通訊,實現多種通訊模式;數據收隊列池由若干個數據隊列組成,終端通訊線程池將接收到的數據通過算法放置在相應的數據收列隊池中;收隊列數據提取線程池將數據收隊列池的數據寫入共享內存;發隊列數據提取線程池將數據從共享內存中提取出來,調用發列隊數據提取線程發至規約驅動模塊進行處理。
所述的規約驅動模塊包括通用規約包加載程序和規約包,通用規約包加載程序加載各種規約,將從採集驅動模塊接收到的數據調用各種規約包進行解析,並將解析後的數據進行分揀處理;規約包將不同類型的規約轉換成由系統統一定義的測點。
用於電力採集系統故障終端檢測的主站模擬系統的檢測方法,包括以下步驟:
主站模擬系統的啟動,啟動規約池管理模塊,規約池管理模塊在共享內存中創建共享數據區,根據配置信息啟動採集驅動模塊和規約驅動模塊;
主站模擬系統進行數據交互,採集驅動模塊獲取終端數據,並將終端數據發送給規約驅動模塊進行規約解析分析,規約驅動模塊判斷當前終端是否存在故障;
主站模擬系統的關閉,規約池管理模塊根據關閉信號對採集驅動模塊和規約驅動模塊進行關閉。
所述的主站模擬系統的啟動包括以下步驟:
啟動規約池管理模塊,規約池管理模塊訪問配置信息資料庫,獲取最新的用戶配置信息,並將其保存為本地配置文件;若無法訪問配置信息資料庫,則直接使用本地配置文件;
規約池管理模塊根據配置信息在共享內存中創建共享數據區,若創建成功則返回隨機key,如無法創建則產生系統報警,並繼續重新嘗試創建;
規約池管理模塊根據配置信息啟動規約驅動模塊,並對其傳入隨機key;
規約池管理模塊根據配置信息啟動採集驅動模塊,並對其傳入隨機key。
所述的主站模擬系統進行數據交互包括以下步驟:
採集驅動模塊進行終端數據內容的獲取;
規約驅動模塊進行終端數據內容的判斷。
所述的主站模擬系統的關閉包括以下步驟:
規約池管理模塊接收到關閉信號,讀取本地配置文件;
規約池管理模塊根據本地配置文件關閉規約驅動模塊和採集驅動模塊;
規約池管理模塊清空並關閉共享數據區;
規約池管理模塊自行關閉。
所述採集驅動模塊進行終端數據內容的獲取包括以下步驟:
採集驅動模塊的終端通訊線程池通過通訊模式與終端進行連接;
終端通訊線程池進行終端數據的獲取,若獲取不到,則認定當前終端為故障狀態;
終端通訊線程池將接收到的數據通過算法放置在數據收列隊池中;
收隊列數據提取線程池將數據收隊列池的數據寫入共享數據區;
發隊列數據提取線程池將共享數據區中的數據提取出來,發送至規約驅動模塊進行終端數據內容的判斷。
所述規約驅動模塊進行終端數據內容的判斷包括以下步驟:
規約驅動模塊接收終端數據;
通用規約包加載程序加載規約包,並對終端數據通過規約包進行解析,將終端數據的測點信息通過規約包解析成設備測量點信息;
若解析成功,則說明當前終端正常;若無法解析,則說明當前終端故障,終端數據為異常數據。
有益效果
本發明的用於電力採集系統故障終端檢測的主站模擬系統及檢測方法,與現有技術相比採用模擬主站與終端進行通訊召測數據,能夠快速定位到用電信息採集系統終端的故障,且能夠判斷出終端在線但無法正常工作的故障,增強終端故障恢復的及時性。
附圖說明
圖1為本發明中主站模擬系統的連接結構框圖;
圖2為本發明中檢測方法的方法順序圖。
具體實施方式
為使對本發明的結構特徵及所達成的功效有更進一步的了解與認識,用以較佳的實施例及附圖配合詳細的說明,說明如下:
本發明所述的用於電力採集系統故障終端檢測的主站模擬系統,通過模擬主站進行召測數據,召測數據支持對終端多種數據的設置功能,可對以下各類數據進行設置,包括實時數據(遙測、遙脈、遙信)、歷史凍結數據(日凍結電量、月凍結電量)、曲線數據(三相電壓曲線、三相電流曲線、功率曲線、功率因數曲線、零序電流曲線)。
主站模擬系統與終端進行通訊,實時維護通道及終端在線狀態並將狀態寫入至實時庫、下發各種命令、接收終端數據、解析終端數據。主站模擬系統採取分布式模式,規約池管理模塊將終端接入連接管理(採集驅動模塊)和數據的解析(規約驅動模塊)兩個業務過程進行分開處理,這樣系統在大終端量和大數據量出現時,可以進行分布式處理,從而保證不出現數據堵塞的情況。
如圖1所示,主站模擬系統包括採集驅動模塊、規約驅動模塊和規約池管理模塊。採集驅動模塊用於主站與終端之間的通訊連接維護和數據的傳輸,採集驅動模塊與規約驅動模塊通過共享內存進行數據交互。採集驅動模塊和規約驅動模塊的數據交互採用效率更高的共享內存的方式,這樣既可以提高模塊之間數據的交互效率,也可以適應規約的複雜性。主站模擬系統採取「一個共享數據區」對應多個採集驅動模塊和規約驅動模塊的模式,但一個共享數據區只存儲著一種規約類型的終端數據。
其關鍵算法如下:採集驅動模塊、規約驅動模塊唯一標識計算算法:
unsigned__int64a=(unsigned__int64)b<<32|c;(a:唯一標識;b:監聽ip地址;c:監聽埠;)
其數據結構如表1數據結構定義說明表所示,
表1數據結構定義說明表
規約池管理模塊根據用戶配置信息啟動採集驅動模塊和規約驅動模塊進程,實時監視、管理採集驅動模塊和規約驅動模塊進程運行情況。規約池管理模塊為主站模擬系統的管理模塊,主要根據用戶配置信息啟動各單元進程,實時監視、管理各單元進程運行情況。
採集驅動模塊包括終端通訊線程池、數據收隊列池、收隊列數據提取線程池和發隊列數據提取線程池。
終端通訊線程池負責與終端進行各種類型和方式的通訊,實現多種通訊模式。數據收隊列池由若干個數據隊列組成,終端通訊線程池將接收到的數據通過算法放置在相應的數據收列隊池中。收隊列數據提取線程池將數據收隊列池的數據寫入共享內存。發隊列數據提取線程池將數據從共享內存中提取出來,調用發列隊數據提取線程發至規約驅動模塊進行處理。
終端通訊線程池支持多種通訊方式,如tcp伺服器端方式:系統打開並監聽指定一個或多個埠並提供服務,終端或其它系統作為客戶端主動連接至伺服器端;tcp客戶端方式:系統作為客戶端主動連接至終端或其它系統,請求對方提供服務,並獲取其數據;串口方式:終端通過串口方式(掛燈籠或直連)連接至主站;udp服務端方式:系統打開並監聽指定一個或多個埠並提供服務,終端或其它系統作為客戶端主動連接至伺服器端;udp客戶端方式:系統作為客戶端主動通過無連接方式將數據發送至終端或其它系統等。
終端通訊線程池可將業務分層進行處理,終端的連接管理和數據的處理進行分開,並將數據上行和數據下行的處理過程進行分開。同時可採用多線程、多數據列隊,在連接處理和數據處理時使用了線程池和數據隊列池方式。這樣更好的將並發的連接和大數據量進行分解,防止導致並發量過多和數據量過大從而導致模塊崩潰的情況出現。
規約驅動模塊包括通用規約包加載程序和規約包,通用規約包加載程序加載各種規約,將從採集驅動模塊接收到的數據調用各種規約包進行解析,並將解析後的數據進行分揀處理;規約包將不同類型的規約轉換成由系統統一定義的測點。規約驅動模塊設計時還可以採用運行參數方式啟動,這樣啟動不同規約只需在啟動通用規約包加載程序時提供不同的加載參數即可。同時規約驅動模塊設計時,將模塊公共部分(規約包)和規約包解析部分(規約包加載程序)分開來進行處理。這樣在對不同的規約進行解析時,只需加載不同的規約包即可,無需對程序(規約包加載程序)進行修改。
如圖2所示,在此還提供用於電力採集系統故障終端檢測的主站模擬系統的檢測方法,包括以下步驟:
第一步,主站模擬系統的啟動。啟動規約池管理模塊,規約池管理模塊在共享內存中創建共享數據區,根據配置信息啟動採集驅動模塊和規約驅動模塊。其具體步驟如下:
(1)啟動規約池管理模塊,規約池管理模塊訪問配置信息資料庫,獲取最新的用戶配置信息,並將其保存為本地配置文件;若無法訪問配置信息資料庫,則直接使用本地配置文件。
(2)規約池管理模塊根據配置信息在共享內存中創建共享數據區,若創建成功則返回隨機key,如無法創建則產生系統報警,並繼續重新嘗試創建。在此隨機key的作用是限定單次數據召回操作,由於數據召回後需要通過規約驅動模塊來判斷分析召回數據的正確性,因此為了防止非同一終端的召回數據產生誤分析,通過隨機key來標定當前的檢測過程。當檢測過程結束,再進行第二個終端的檢測時,則返回另一隨機key,通過不同的隨機key來實現不同終端之間的檢測區分。
(3)規約池管理模塊根據配置信息啟動規約驅動模塊,並對其傳入隨機key。
(4)規約池管理模塊根據配置信息啟動採集驅動模塊,並對其傳入隨機key。
第二步,主站模擬系統進行數據交互。採集驅動模塊獲取終端數據,並將終端數據發送給規約驅動模塊進行規約解析分析,規約驅動模塊判斷當前終端是否存在故障。其具體步驟如下:
(1)採集驅動模塊進行終端數據內容的獲取。
a、採集驅動模塊的終端通訊線程池通過通訊模式與終端進行連接;
b、終端通訊線程池進行終端數據的獲取,若獲取不到,則認定當前終端為故障狀態,說明當前終端在通訊上存在故障,判斷出終端不在線。
c、終端通訊線程池將接收到的數據通過算法放置在數據收列隊池中。
d、收隊列數據提取線程池將數據收隊列池的數據寫入共享數據區。
e、發隊列數據提取線程池將共享數據區中的數據提取出來,發送至規約驅動模塊進行終端數據內容的判斷。
(2)規約驅動模塊進行終端數據內容的判斷。
a、規約驅動模塊接收終端數據。
b、通用規約包加載程序加載規約包,並對終端數據通過規約包進行解析,將終端數據的測點信息通過規約包解析成設備測量點信息。例如,將終端測點信息轉換成設備測量點信息。(將終端地址為1、測點號為7的終端數據,轉換成xx變壓器的a相電壓)。
c、若解析成功,則說明當前終端正常;若無法解析,則說明當前終端故障,終端數據為異常數據,由此判斷出終端在線但無法正常工作的故障。
第三步,主站模擬系統的關閉。規約池管理模塊根據關閉信號對採集驅動模塊和規約驅動模塊進行關閉。其具體步驟如下:
(1)規約池管理模塊接收到關閉信號,讀取本地配置文件。
(2)規約池管理模塊根據本地配置文件關閉規約驅動模塊和採集驅動模塊。
(3)規約池管理模塊清空並關閉共享數據區。
(4)規約池管理模塊自行關閉。
在實際應用中,故障處理人員可以利用本發明的模擬主站系統進行召測數據,如果能召到實時數據則說明終端已將數據送往主站,主站未接收或者未存資料庫需要安排主站人員進行通信故障處理。對於召測到的數據,再通過模擬主站系統的規約驅動模塊進行分析,若解析成功,則說明當前終端工作正常,若解析不成功,說明當時終端雖通訊正常但並沒有進行正常的數據採集工作,從而能夠快速定位用電信息採集系統終端在線但採集不到數據的故障,能增強故障恢復的及時性。
以上顯示和描述了本發明的基本原理、主要特徵和本發明的優點。本行業的技術人員應該了解,本發明不受上述實施例的限制,上述實施例和說明書中描述的只是本發明的原理,在不脫離本發明精神和範圍的前提下本發明還會有各種變化和改進,這些變化和改進都落入要求保護的本發明的範圍內。本發明要求的保護範圍由所附的權利要求書及其等同物界定。