張長利 房俊龍 王樹文
(東北農業大學電氣工程系,哈爾濱 150030)
自動抄表系統是指利用微電子技術、通信技術和計算機網絡技術自動讀取計量表數據,并將城市居民的用電信息加以綜合處理并發布的系統。長久以來,供電企業對電能表數據的發布都是采用人工派遣的作業方式,即每月定期派人到各用電用戶處將用電費用報知用戶,同時手工抄取下一次的電量,但傳統的人工發布信息和抄表方式存在不足。第一,隨著電力負荷的急劇增長,需要人工發布信息和抄錄的電表數量也隨之增加,因此使用傳統的信息發布和抄錄方式必將消耗大量的人力資源和物質資源。第二,供電企業為了適應市場化和規模化的需要,采用了一戶一表以及直供到戶等營銷措施,這就造成了當供電企業想要把它所管轄區域內的用戶用電情況匯總時必然會付出額外的通信成本。最后,傳統的手工抄表方式也不可能對用戶的用電情況進行實時監測。基于以上原因,傳統的信息發布和手工抄表的工作方式已經無法滿足現代用電管理的要求,因此有必要提出一種新型的電量發布和查詢系統來從根本上解決傳統人工發布用電信息的不足。
在歐美和日本等一些發達國家和地區,自動抄表系統終端己經得到了廣泛的應用。進入 20世紀90年代后,計算機技術、超大規模集成電路和通信技術的高速發展,使得 AMR系統在向低功耗、低成本和高性能方向發展。通信領域的最新成果不斷應用到數據傳輸中,因此無線自動抄表技術作為信息技術和工業領域的一個重要子系統,已經有了深厚的技術積累,市場前景相當廣闊[1]。此外,還有的國家采用類似以色列的抄表方式,各用戶電能表將用電的各種數據按采集的時間順序傳輸到供電變壓器附帶的集中器中,把各用戶的用電數據處理后,利用有線或無線的傳輸方式將數據定期傳輸給電力局的計算機系統[2]。經計算后,再用有線傳輸方式把各用戶的電費數據傳輸到銀行以進行劃撥。
我國在自動抄表上的研究還處于起步階段,因此電量的網絡化發布也處于萌芽狀態,雖然在我國已經有諸如福建、重慶等省市的電業部門提供網上電量查詢服務,但是由于還主要采用手工抄表方式作業,T同時在錄入數據庫上也是多采用手工方式,效率低下的同時不能保證錄入的準確性[3-4]。此外由于手工錄入工作繁重,不能達到實時發布和監控的作用,因此出現了許多查詢網站很多時候無法連接入數據庫的情況,極大的耗費電業部門的人力資源和物力資源,也給查詢用戶帶來了諸多不便。
本文在深入研究現有國內外的抄表服務器系統并分析其各自優缺點的基礎上,結合網站構建的自身特點,設計了一種基于ARM和LAMP技術的電力遠程自動抄表服務器系統。
自動抄表服務器系統的硬件開發平臺主要由上位機PC機、ARM9S3C2410處理器、DM9000E網卡接口芯片、SP3485芯片以及RS485串口構成。本實驗采用了MagicARM2410處理器,該處理器可使用μC/OS-II、Linux和WinCE操作系統,支持QT、MiniGUI圖形系統,集眾多功能于一身的ARM9開發平臺[5]。同時采用了32位S3C2410 RISC處理器,為手持設備和一般類型的應用提供了低功耗、低價格、高性能微控制器的解決方案。該硬件平臺主要是通過Internet完成計算機與ARM開發機的連接,可以實現 PC主機對測試設備的實時數據采集和對設備狀態的實時監控。通過 S3C2410和 DM9000E組建的網絡接口電路可將測試測量的數據方便快速的傳送到服務器計算機,同時可以完成服務器計算機對ARM開發板的實時監控,拓展了ARM測試測量設備的應用范圍。在 ARM 平臺上通過采用SP3485芯片與 S3C2410芯片級聯,實現一組 485串口實時傳輸數據,通過以太網卡與ARM的相連,就可以實現數據的快速和準確地傳輸。
本文選用 Linux操作系統,將以往部分在Windows操作系統上的開發工作完全移植到目前非常流行的Ubuntu系統中,真正實現了全Linux平臺開發。系統軟件主要是分為兩個部分,一是 ARM Linux中的嵌入式人機界面程序,另一個是上位PC機為服務器的抄表、數據庫和網絡服務器的程序。無論是ARM中的人機界面程序還是PC機中數據庫服務器程序,軟件的開發模擬主要集中在Ubuntu操作系統中來完成。
搭建一套完整的網絡服務器,目前國際上有多種實現方法,但是總結這些方法可以看出,搭建網絡服務器最主要是要看搭建所需要的軟件和操作系統,由于本文采用了以Linux為操作系統的開發平臺,所以在此平臺上這里選用了目前國際最為流行的一套網絡服務器開發套件LAMP。
對于PHP網絡腳本語言、MySQL數據庫和Qt系列編程語言,一套完整使用的開發平臺可以極大的簡化程序開發的難度,因此需要一套完整的在Linux下工作的開發平臺套件。因此本文選用了三種不同的開發套件:用Eclipse來開發Qt系列軟件,用 Bluefish來開發 PHP網絡腳本程序,用phpMyAdmin來管理MySQL數據庫。
交叉編譯是在一種平臺上編譯出能運行在體系結構不同的另一種平臺上的程序。為了實現跨平臺程序的編譯因此需要一種跨平臺的編譯器,這種編譯器就是交叉編譯器。所以在生成的目標機上運行的程序,必須要用交叉編譯工具鏈內的編譯器來重新編譯,以達到編譯出來的程序可在另一平臺體系中運行。交叉編譯工具鏈是一個由編譯器、連接器和解釋器組成的綜合開發環境,交叉編譯工具鏈主要由binutils、gcc和glibc三個部分組成。
本文通過Crosstool腳本工具來實現一次編譯生成交叉編譯工具鏈,了解了交叉編譯的步驟和構建的全貌,該方法出錯的機會較少,軟件依賴性也相對較少。在此基礎上,深入探討了交叉編譯的機理,進行了分步編譯和安裝交叉編譯工具鏈所需要的庫和源代碼,最終生成交叉編譯工具鏈,為將來創建其他平臺的交叉編譯工具鏈打下基礎。
ARM 平臺伺服程序設計是本文實現抄表系統的基礎,這部分需要Linux下C語言、qtopia腳本語言和交叉工具鏈共同完成。首先,實現 ARM 平臺與 PC機連接和等待發送抄表命令的程序,因此使用Linux下C語言編程來實現。其次,為了使ARM平臺能夠可視化操作該伺服程序系統,本文運用qtopia腳本語言開發了一套簡易的人機操作互動界面。最后,由于以上的伺服程序和人機界面是在PC機下開發的,而最終的目標是移植到ARM平臺下,因此通過制作好的交叉編譯工具鏈對編寫好的程序源代碼進行重新編譯,將編譯好的可執行二進制文件拷貝或者下載到ARM平臺下,就可以通過ARM平臺的觸摸屏來對其進行操作。
作為Linux下的套接字(socket)實現網絡編程的Client端,PC機端可以向ARM平臺發送抄表指令,并將 ARM 傳送回來的電量數據直接錄入到設計好的數據庫中,省去了以往傳輸數據后再手工逐一錄入到網絡服務器數據庫的繁瑣過程。本文采用了十分流行的網站架構LAMP技術,LAMP是指代Linux操作系統、Apache網絡服務器、MySQL數據庫和PHP(Perl或Python)腳本語言的組合。由于網站架設和ARM平臺開發都在Linux操作系統下完成,因此本研究可以完全實現全 Linux操作系統下的操作,避免了由于使用Windows操作系統帶來的軟件不兼容問題。
本文利用了嵌入式 ARM 技術構建了一個用于小區電表電量采集的電力遠程自動抄表系統,同時采用目前最為流行的網絡架構LAMP技術構建了一套電量信息網絡發布服務器。該系統的抄表部分下位機結構比較簡單,而上位機部分因為融合網絡服務器因此較為復雜。然而,正因為利用了這種相對復雜的查抄和網絡服務器技術,構造了一個高穩定性、操作簡單的抄表系統,拓寬了傳統抄表和發布的局限性,該抄表系統不僅僅可以用來抄收電量,同時還可以用在抄水表、燃氣表上面,具有廣闊的應用前景。
[1]曾乃鴻.自動抄表技術在北美的發展[J].供用電.2002,13(1)∶48-50.
[2]王輝.基于蜂窩網絡的無線抄表系統[D]. 浙江工業大學碩士學位論文,2006∶8-9.
[3]李文進, 韓曉萍.基于 ARM 平臺的變電站遠程抄表系統[J].電力自動化設備,2005,5(11)∶85-85.
[4]趙聞蕾.基于M-BUS總線的遠程智能抄表系統[J].電力自動化設備. 2004,24(12)∶61-63.
[5]王松月,楊福興.基于ARM920T嵌入式通信控制系統設備驅動開發研究[J].微型電腦應用,2006,22(10)∶21-24.