張 帆,張理放,毛永梅
(內蒙古電力科學研究院,內蒙古 呼和浩特 010010)
當前社會對電力的需求不斷增長,對供電質量的要求越來越高。這就需要供電公司提供高質量的電力服務,不斷進行技術革新,發展智能電網技術,在電力領域實現自動化、智能化配電管理和用電管理。電能數據采集終端介于主站與智能電表之間,搜集各個數據采集點和用戶的用電數據,同時搜集、傳輸、管理以及轉發電能表數據,通過海量數據來保障電力企業管理工作的順利進行。基于ARM的電能數據采集終端,能耗低,電池使用時間長,環境適應能力強,可以在-25~85 ℃范圍內工作。該終端使用的系統是自由的、開源的以及穩定的LINUX系統。
LINUX系統并非實時操作系統,但是通過性能改進可以滿足數據采集終端的實時需求。在CPU中不斷改進調度相應的時間和系統中斷性能,引入多線程算法,保證重要事件發生時可以搶占中心資源進行高效運算,進而保證數據的實時性與同步性,更好地滿足電能數據采集方面的實時需求。
如圖1所示,基于ARM的電能數據采集終端系統由采集模塊、輸入與現實模塊以及通信模塊組成。應用程序存放在NOR Flash中,電能數據終端采集的數據則存放在NAND Flash中,可以充分滿足電能終端系統運行需要。對LINUX系統外圍硬件進行編譯,操作系統可移植入CPU,構建適合電力企業的開發環境。ARM終端同時需要應對多個事件。電力傳輸中的事件要求數據可以實時傳輸,保證中心給予快速解決。多個事件需要并行執行,因此終端引入了多線程設計,以保證數據采集效率。

圖1 電能數據采集終端結構
該終端通過4類接口與總機設備進行數據通信。首先,遠程接口。主機與各個ARM數據采集終端上的采集APP進行數據交互,屬于遠程連接。該接口包括載波接口、GPRS接口以及TCP/IP接口等。其次,本地接口。本地軟件要和ARM數據采集終端的各類軟件進行數據交互,在通信過程中主要以字節流完成信息傳遞。此類接口包括RS接口和紅外接口等。再次,為了設備的使用性能良好,要求其具備人機交互接口。
該接口應該界面應操作簡單、明確以及快速,以方便工作人員使用。此類接口屬于數據采集端軟件,可以完成搜索功能,基于特定數據模型進行人機交互,包括鍵盤、顯示器以及LCD顯示屏等。最后,其他接口。數據采集終端不僅要和主機相連,以供工作人員操作,也要與其他采集模塊相連,如交直流模擬和脈沖采集等。終端采集軟件APP利用讀寫函數調用與其他模塊之間的接口,如圖1所示的A/D轉換接口、維護接口以及USB升級接口。
2.1.1 數據采集功能
終端軟件的最基本功能是采集數據。數據是后續進行一系列分析應用工作的基礎。數據采集功能是對智能終端設備和電能脈沖信息進行采集,要求實時性強,采集準確度高。
2.1.2 數據管理功能
數據采集功能獲取的數據,要和總機系統中存儲的歷史電能數據比較,通過對比完成數據準確度檢查,判斷數據監控電能系統運行是否正常。對數據進行遠程傳輸,所有數據均要進行妥善存儲,以備后續使用。LINUX系統運用編程語言為存儲的數據建立數據庫,因LINUX系統的開放性強,只要在系統允許的范圍內工作,資源占用率較低,使得系統具備較高的查詢速度。
2.1.3 數據控制功能
通過智能控制終端,用戶的用電費率和階梯費率等信息都可以進行遠程監控計算,且對用戶的用電量和用電行為有監督作用,以保證設備穩定運行。
2.1.4 綜合管理功能
整個電能數據采集系統通過數據對用電企業、設備運維以及用戶用電情況等各方面進行控制。因此,在企業成本控制、服務質量、用戶電量統計、合規用電以及電氣設備運行維護等方面,均可以通過數據進行分析。如果發現異常問題,則可以及時作出反饋。
2.1.5 操作和維護功能
該功能是為了維護數據采集系統的基本信息,如進出權限和系統時間等。系統基礎信息完成設定后,該功能可以對這些數據進行存儲。工作人員根據一定權限可以進行查詢設置,管理設備、報表以及數據等,記錄運行維護情況。
2.1.6 系統接口功能
數據采集系統要和營銷系統、控制系統以及裝配系統等進行連接,保證采集的數據可以在電力全系統內進行聯通交互。其他模塊也可以利用采集的數據開展工作,從而為電力系統的全業務提供數據支持[1]。
2.1.7 其他功能
除了以上功能,電能數據采集系統還要能夠與其他應用程序互通互聯,保證數據可以在程序之間進行傳遞和共享。通過功能設計,以保證終端數據采集的及時、準確以及高效,保證采集系統可靠,真實還原現場情況,然后將數據送達到控制中心完成數據處理。通過程序可以將控制中心的數據傳遞到各終端軟件,以實現各種功能。整個系統的兼容性較好,可以引入IC卡和USB接口設備等進行數據轉載。
根據終端軟件要實現的功能,完成了遠程通信模塊和主要任務控制模塊的軟件設計。
2.2.1 遠程通信模塊
終端數據采集系統完成數據采集后,要將數據以報文形式傳送到控制中心。在報文上傳下發過程中,遠程通信模塊不僅要保證支持報文數據傳遞,還要根據事件的重要性等級進行處理,即優先處理高等級事件。傳遞報文要求實時性強,送達準確。
2.2.2 主要任務控制模塊
主要任務控制模塊的工作流程,如圖2所示。該模塊屬于多任務采集模塊,在運行時刻使線程互相獨立。該模塊工作時,根據數據采集系統獲得的數據將所有系統相關參數完成初始化,包括內存、采集周期以及事件隊列等。根據事件優先級來排列數據項。在主任務進行過程中,要判斷系統的各項參數。如果達到數據采集要求,則開始進行采集任務和數據傳遞工作。主任務進行過程中,數據采集軟件要對控制中心下發的命令做出反饋和監控,如抄表命令。執行抄表命令是,當前任務會被中止,并在抄表命令完成后再開啟中止的任務。整個任務周期完成后,要監測系統內所有參數,查看參數是否被更改過。若被更改,則進行初始化,完成初始化后進入下一任務周期[2]。
基于ARM的數據采集終端系統經過多年的研究和實踐,已經是較為成熟的系統,在硬件及軟件兼容性方面較好,開放性強。該系統比較擅長進行數據的實時處理和傳輸,妥善處理多線程事件。電力系統中的電能數據可以通過本地數據處理系統進行妥善處理。本地數據處理系統一般由基本數據處理和總體數據處理兩個模塊組成,且兩個模塊各有進程。
2.3.1 基本數據處理模塊
基本數據處理模塊負責對數據采集點出現的異常數據進行分析,生成對應事件。模塊在運行完成后,將信息隊列、共享內存、采集點參數和系統參數均進行初始化再進入主任務。進入主任務后對數據進行采集和分析,分析與主任務是否符合。符合條件,則利用通信模塊上傳數據,采集終端的數據要和系統內的歷史數據進行對比監測,如果數據有改動,則將歷史數據上傳到通信模塊,由遠程通信模塊上傳至主站。整個周期所有數據處理完成后,監測數據采集點的各個參數,監測事件發生的條件和事件生命周期等是否改變。如果改變,則對系統進行初始化后才可以開啟下一個事件處理線程[3]。工作流程如圖3所示。
2.3.2 總體數據處理模塊
總體數據處理模塊負責對總加組中的數據進行系統統計,待完成總加后,由存儲模塊接收相關的數據。存儲模塊工作任務完成后,要把各個系統參數進行初始化,包括事件隊列、內存以及采集點等,然后進入下一個事件線程。總加組數據的計算有固定的公式,根據公式完成計算,完成采集數據與歷史數據的對比檢查工作,確定是否滿足差動條件。如果滿足差動條件,誘發差動事件,遠程通信模塊對這些數據進行存儲和傳輸。控制中心在遠程數據模塊接收到信息后,完成采集數據與歷史數據對比生成曲線。該曲線存儲在數據存儲模塊,用以后續的數據分析。完成這一周期的數據處理后,對各個采集點的參數、工作周期、總加參數和差動事件進行監測,以確定這些數據都沒有變化。若有變化,則重新啟動并初始化,之后則進入下一周期的處理任務[4]。總體數據處理流程如圖4所示。
除了上述功能以外,基于ARM數據采集終端的應用軟件還包含其他功能,如采集狀態量功能、對交流模擬量功能、直流模擬量進行采集功能、對脈沖量進行采集的功能、局部狀態指示功能以及終端維護功能等[5]。
數據采集功能在整個系統中處于基礎地位。當前,企業自動化和智能化水平不斷提高,設備運行、維護的控制和對用戶行為的檢測都采用智能化系統,促使各類智能儀表、智能終端以及智能傳感器得到了大量應用。所有控制功能均基于數據采集,而數據采集與全系統功能無縫結合,使得數據應用更加廣泛,提升了數據采集的效率與經濟性。

圖2 主采集任務控制模塊工作流程圖

圖3 基本數據處理模塊工作流程

圖4 總和數據處理模塊工作流程
在LINUX系統下開展多線程任務編程工作,需要將pthread.h和libpthread.a相連。
(1)pthread_create函數,用以創建多任務線程中的某個任務線程。函數原型為:

pthread_join函數,用以暫停當前線程,直至事件要求的另一個線程完成工作后,再將此線程開啟。函數原型為:

這個函數是進行線程阻攔工作的。當調用該函數時,要將當前線程暫停,開始另一個事件要求的線程。待優先等級較高的線程完成后,中斷的線程再重新開啟。系統會將資源給到優先等級較高的線程,待返回到中斷線程后,系統再將資源調回到該線程。
(3)pthread_exit函數,終止當前線程函數,原型為:

該函數作為線程返回碼,當pthread_join函數的參數thread_return的值不為空時,則發生線程返回,函數終止。
對于不同的進程,要讓各個進程存在于不同的空間并擁有自己的數據空間,通過通信方式傳遞數據是比較費時非自愿的方式。多線程的好處在于統一進程下的所有線程之間可以存在于同一個數據空間,共享數據。一個線程的數據,另一個線程在運行時也可以使用,更加省時省力、方便快捷、節省資源。線程運行中要對變量進行修改,但是部分變量不能被多個線程修改,因此要增加static函數確保線程可以修改部分變量。
基于ARM的電能數據采集終端需要處理的數據量較大,因實時性和準確性的需要,引入多線程事件管理技術,運用兩個以上函數,充分實現事件線程之間的轉換,合理分配系統資源,根據事件優先級進行處理,節省系統資源的同時,保證數據傳輸過程順利進行。
基于ARM的電能數據采集終端可對實時采集電力傳輸網絡的各類數據和用電負荷等信息加以準確檢測,系統整體安全可靠、拓展性強、經濟性較好、節省資源以及經濟價值較高,可滿足當前電力系統的服務要求。未來在電力領域的智能化發展中,ARM芯片必將發揮更大的作用,為電力事業發展提供強力技術支持,提高用電服務水平。