王洪偉 夏明超 北京交通大學電氣工程學院
電力機車能耗以及由于無功造成的罰款是電力機務段的主要運營成本[1] 。現在各型電力機車使用的機械式電度表測量精度低,必須采用人工抄表,而且人工抄表只能反映機車整趟作業的功耗,無法確知機車在運行各階段的區間瞬時能耗。而區間瞬時能耗是評價司機操作是否合理以及電力機車牽引部件狀態是否良好,從而實現機車從定修向狀態修過渡的重要性能指標。本文設計的遠程能耗監測系統可以對電力機車運行過程中的能耗進行定時定點記錄,并通過GPRS自動發送到地面服務器,通過軟件可以實現電量的分人、分車、分段的自動統計。
本系統采用專用電能測量芯片,高速準確采集能耗信息,提高了能耗計量的分辨率和準確度。可以實現有功、無功電能的正、反向計量,在替代了機車上原有3只機械式電表的同時,增加了反向無功計量功能;此外,本裝置還可以實時檢測弓網電壓、電流、頻率以及離線率等弓網供電參數,通過對以上參數的監測,為供電系統維護提供科學的實測數據,改善供電品質。可以實現分區間用電記錄,作為不同供電段以及不同路局之間電能結算的依據。由于系統基于GPRS進行數據轉儲,極大地降低了工作人員的工作強度,節約了管理成本。
電力機車遠程能耗監控系統的總體結構如圖1所示,包括上部的車載電能采集終端和下部的監控中心服務器軟件兩部分。

圖1 系統總體結構框圖
車載電能采集終端適合于電力機車主變壓器副邊額定頻率50 Hz、交流100 V電能的計量,可測量電力機車的正向有功、正向無功、反向有功、反向無功、供電頻率、網壓、離線率以及機車級位手柄等電參數。并通過RS-485接口從機車上的安全綜合信息平臺TAX箱(簡稱TAX箱)獲取機車號、機車型號、時間、車次、司機號、牽引總重、記長、輛數、公里標、區間段、站號、速度等機車運用信息,這些運行信息作為電參數記錄的標尺。記錄的信息通過GPRS遠程傳輸到監控中心,服務器軟件對接收的能耗及狀態參數實時顯示,并記入ORACLE數據庫,實現分人、分時、分車、分區段的統計與計量,機務、供電及路局等各級用戶還可根據自己的權限通過網絡實現數據的查詢與管理。
車載電能采集終端是系統的核心,其原理框圖如圖2所示。

圖2 車載能耗監測裝置原理圖
該裝置采用16位單片機MC9S12A64作為CPU,利用SA9904B作為電能測量芯片,為提高抗干擾能力,在CPU和SA9904B之間利用光耦加以隔離。CPU通過RS485通訊從機車兩端的TAX箱獲取機車運行信息,由于列車運行過程中只有一端的TAX箱上電工作,因此CPU需要在兩個TAX箱間自動切換直至找到正確的數據源。同時CPU還利用A/D變換采集機車操作手柄的級位,采集的信息通過6位LED數碼管進行顯示,并將符合條件的數據記錄到非易失RAM芯片AT45DB041中,記錄的數據可以通過GPRS或IC卡兩種方式進行轉儲。同時,為了對能耗裝置進行校準,保留了校準脈沖的輸出。
電量測量主要通過SA9904B實現,它可測量三相交流電的有功功率、無功功率、電壓、頻率及電能,CPU通過SPI串行接口訪問其內部寄存器的測量值。對SA9904B來說,其電流輸入端可連接電流互感器的副邊,電壓輸入端需要通過如圖3所示的電阻網絡配置其電壓感應輸入。流入電壓感應輸入端(虛擬輸入端)的電流應在額定條件設為14 μARMS,電壓感應輸入飽和于±25 μA峰值的輸入電流。
分壓網絡(見圖3)應將C5之前的電壓分為14 VRMS,R8用于設定電壓感應輸入的電流,阻值為1 MΩ。
設:

當電力機車相電壓為100 V時,為了能夠在C5前分得14 V的電壓,有如下關系:

當 R13 為 24 kΩ 時,RB=23.44 kΩ,RA=143.98 kΩ。
因此,只要將R16、R19及R22的串聯電阻值配置為144 kΩ即可。

圖3 電壓感應輸入通道配置網絡
本系統采用AT45DB041進行車載數據的記錄。由于空間有限,既要保證數據的完整又要盡可能少的記錄數據。因此,必須采用合理的數據壓縮記錄算法。
本系統需要記錄的數據包括機車運用信息和機車能耗狀態信息兩部分。機車運用信息中,除了時間、站號和公里標等隨車輛運動變化的數據以外,其它數據變化頻率很低,大約每8~10h才會變化一次,在運行過程中不需要重復記錄,能耗信息則需要在每包數據中都加以記錄。
為了實現分人、分車、分區段的能耗計量,本系統將上電、交路號、司機號、總重、站號及過分相點作為數據記錄條件。每條記錄26個字節,由數據頭(2 Bytes)、變化數據(2 Bytes)、公共數據(21 Bytes)和校驗字節(1 Bytes)組成。由于26個字節無法完全記錄上電時所有的機車運用及能耗狀態信息,因此通過"@0"和"@1"兩個不同數據頭的數據幀進行記錄。此后,只有關注的機車運用信息發生變化后才進行記錄,交路號、司機號、總重、站號和分相點的變化分別用"@2~@6"作為數據頭加以區別,數據頭格式及具體含義見表1。

表1 記錄數據頭及含義
車載裝置采用GPRS無線模塊進行數據發送。GPRS模塊實際是一款內嵌TCP/IP協議的GPRS Modem,具有訪問Internet的能力。車載裝置通過CPU的串行接口連接GPRS模塊,將存儲的數據逐條發送到監控中心。數據發送采用指針發送方式,AT45DB041中同時保存著數據記錄指針和數據發送指針,只要發送指針小于記錄指針,就說明有數據等待發送。
所有的數據通訊均由車載GPRS模塊主動發起。本系統采用GPRS透明傳輸模式下的短連接功能,該模式下GPRS內部配置了接收服務器的IP地址及端口。當模塊接收到CPU串口發送的數據后,若模塊未在線,則自動建立與地面服務器之間的鏈接。鏈接一旦建立,地面服務器不僅可以接收GPRS模塊傳送的數據,還可以向車載設備發送時間校準值或者要求模塊發送地面所需的數據。當多臺車載GPRS模塊向服務器提出連接請求時,服務器會給每個模塊分配一個唯一的句柄號,通過該句柄,即可實現一對多的通訊。
車載GPRS模塊與地面服務器通訊遵循事先約定的通訊協議。服務器接收到GPRS發送一包數據后,先對數據進行CRC校驗,若校驗正確,將給車載終端發送應答幀。車載終端接收到正確應答幀后,模塊的發送指針調整到下一包要發送數據的首地址。否則,車載設備重新檢查所發數據包,并重新發送數據。通過這些嚴格的校驗、握手措施,可以保證準確的收發數據。若網絡繁忙或連接中斷,由于接不到應答,車載終端會重發同一包數據,因此不會出現數據丟失的情況。若網絡空閑,CPU將一直發送數據直到發送指針與記錄指針重合,此時表明記錄的數據已全部發送完畢,系統會自動停止發送。
服務器軟件的設計環境為Visual 2003.NET,其內部的Socket提供了訪問TCP和UDP網絡服務的方便途徑。Visual 2003.NET通過設置WinSock控件的屬性并調用其方法就可輕易地實現網絡連接。在Visual 2003.NET中,Winsock有2種數據傳送格式:字符串型和字節流型,本系統采用字節流型。
為了在服務器端創建Socket應用程序,需要設置一個收聽端口(LocalPort屬性)并調用Listen方法。當客戶計算機需要連接時就會發生ConnectionRequest事件。為了完成連接,可調用ConnectionRequest事件內的Accept方法。一旦連接建立,兩端均可使用SendData或GetData進行數據的發送或接收。格式如下:

功能為向當前連接發送SendText中的字符串;功能為接收字符串,并保存在變量GetText中。

當多個車載終端同時向地面服務器發送數據時,每發生一個ConnectionRequest事件,WinSock1的Index就加1,這樣每個ConnectionRequest事件就對應唯一的Index,因此可以實現一對多的通訊。當Index達到設定值后,清除所有Socket連接,由于GPRS模塊會自動重新上線,因此能夠保持接收軟件正常運行。服務器端應用Socket控件接收數據的程序流程如圖4所示。

圖4 Socket數據接收程序流程
由于Socket控件接收的都是二進制數,為了弄清各字節的含義,需要進行解壓處理,解壓即按照原始數據的壓縮存儲格式進行反向解釋。對于還原出來的信息,還需要進行合法性檢驗,例如,若解壓出來的時間中分鐘大于60,說明數據不合法,應予剔除。只有通過合法性檢驗的數據包才能寫入數據庫。
服務器采用0racle 9i數據庫來存儲數據。Oracle關系數據庫是一種高效、可靠的適應高吞吐量的數據庫解決方案。Oracle數據庫采用ADO方法操作,其核心是Connection,Recordset和Command對象。首先利用Connection與服務器建立連接,然后用Command對象執行諸如查詢、更新等命令,用Recordset對象來操作和查看查詢結果。
數據顯示是人機界面的主體,顯示的內容分為動態信息和數據庫查詢結果兩大部分。動態信息顯示接收的機車運行及狀態信息;用戶可以實現對司機、機車、區段和時間的組合查詢,對于查詢的結果,采用DataReport控件生成相應的報表,便于查看和打印。
論文針對當前電力機車能耗計量中的諸多不足,設計了電力機車遠程能耗監測系統,通過車載終端實時采集機車電能等狀態參數和運行參數,并通過GPRS傳送到地面服務器,服務器端通過Visual 2003.NET編制的軟件實現了數據的接收、存儲及查詢,可通過不同條件的組合實現電力機車能耗的分人、分時、分車、分段的統計與計量。