电力远程自动抄表系统终端服务器的研究
2010-08-15张长利房俊龙王树文
张长利 房俊龙 王树文
(东北农业大学电气工程系,哈尔滨 150030)
1 引言
自动抄表系统是指利用微电子技术、通信技术和计算机网络技术自动读取计量表数据,并将城市居民的用电信息加以综合处理并发布的系统。长久以来,供电企业对电能表数据的发布都是采用人工派遣的作业方式,即每月定期派人到各用电用户处将用电费用报知用户,同时手工抄取下一次的电量,但传统的人工发布信息和抄表方式存在不足。第一,随着电力负荷的急剧增长,需要人工发布信息和抄录的电表数量也随之增加,因此使用传统的信息发布和抄录方式必将消耗大量的人力资源和物质资源。第二,供电企业为了适应市场化和规模化的需要,采用了一户一表以及直供到户等营销措施,这就造成了当供电企业想要把它所管辖区域内的用户用电情况汇总时必然会付出额外的通信成本。最后,传统的手工抄表方式也不可能对用户的用电情况进行实时监测。基于以上原因,传统的信息发布和手工抄表的工作方式已经无法满足现代用电管理的要求,因此有必要提出一种新型的电量发布和查询系统来从根本上解决传统人工发布用电信息的不足。
在欧美和日本等一些发达国家和地区,自动抄表系统终端己经得到了广泛的应用。进入 20世纪90年代后,计算机技术、超大规模集成电路和通信技术的高速发展,使得 AMR系统在向低功耗、低成本和高性能方向发展。通信领域的最新成果不断应用到数据传输中,因此无线自动抄表技术作为信息技术和工业领域的一个重要子系统,已经有了深厚的技术积累,市场前景相当广阔[1]。此外,还有的国家采用类似以色列的抄表方式,各用户电能表将用电的各种数据按采集的时间顺序传输到供电变压器附带的集中器中,把各用户的用电数据处理后,利用有线或无线的传输方式将数据定期传输给电力局的计算机系统[2]。经计算后,再用有线传输方式把各用户的电费数据传输到银行以进行划拨。
我国在自动抄表上的研究还处于起步阶段,因此电量的网络化发布也处于萌芽状态,虽然在我国已经有诸如福建、重庆等省市的电业部门提供网上电量查询服务,但是由于还主要采用手工抄表方式作业,T同时在录入数据库上也是多采用手工方式,效率低下的同时不能保证录入的准确性[3-4]。此外由于手工录入工作繁重,不能达到实时发布和监控的作用,因此出现了许多查询网站很多时候无法连接入数据库的情况,极大的耗费电业部门的人力资源和物力资源,也给查询用户带来了诸多不便。
本文在深入研究现有国内外的抄表服务器系统并分析其各自优缺点的基础上,结合网站构建的自身特点,设计了一种基于ARM和LAMP技术的电力远程自动抄表服务器系统。
2 抄表服务器系统的硬件开发平台的设计
自动抄表服务器系统的硬件开发平台主要由上位机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的相连,就可以实现数据的快速和准确地传输。
3 抄表服务器系统的软件开发平台的设计
本文选用 Linux操作系统,将以往部分在Windows操作系统上的开发工作完全移植到目前非常流行的Ubuntu系统中,真正实现了全Linux平台开发。系统软件主要是分为两个部分,一是 ARM Linux中的嵌入式人机界面程序,另一个是上位PC机为服务器的抄表、数据库和网络服务器的程序。无论是ARM中的人机界面程序还是PC机中数据库服务器程序,软件的开发模拟主要集中在Ubuntu操作系统中来完成。
3.1 LAMP开发环境
搭建一套完整的网络服务器,目前国际上有多种实现方法,但是总结这些方法可以看出,搭建网络服务器最主要是要看搭建所需要的软件和操作系统,由于本文采用了以Linux为操作系统的开发平台,所以在此平台上这里选用了目前国际最为流行的一套网络服务器开发套件LAMP。
3.2 脚本程序开发平台
对于PHP网络脚本语言、MySQL数据库和Qt系列编程语言,一套完整使用的开发平台可以极大的简化程序开发的难度,因此需要一套完整的在Linux下工作的开发平台套件。因此本文选用了三种不同的开发套件:用Eclipse来开发Qt系列软件,用 Bluefish来开发 PHP网络脚本程序,用phpMyAdmin来管理MySQL数据库。
3.3 交叉编译工具链的创建
交叉编译是在一种平台上编译出能运行在体系结构不同的另一种平台上的程序。为了实现跨平台程序的编译因此需要一种跨平台的编译器,这种编译器就是交叉编译器。所以在生成的目标机上运行的程序,必须要用交叉编译工具链内的编译器来重新编译,以达到编译出来的程序可在另一平台体系中运行。交叉编译工具链是一个由编译器、连接器和解释器组成的综合开发环境,交叉编译工具链主要由binutils、gcc和glibc三个部分组成。
本文通过Crosstool脚本工具来实现一次编译生成交叉编译工具链,了解了交叉编译的步骤和构建的全貌,该方法出错的机会较少,软件依赖性也相对较少。在此基础上,深入探讨了交叉编译的机理,进行了分步编译和安装交叉编译工具链所需要的库和源代码,最终生成交叉编译工具链,为将来创建其他平台的交叉编译工具链打下基础。
4 服务器抄表程序设计与实现
4.1 ARM平台伺服程序设计
ARM 平台伺服程序设计是本文实现抄表系统的基础,这部分需要Linux下C语言、qtopia脚本语言和交叉工具链共同完成。首先,实现 ARM 平台与 PC机连接和等待发送抄表命令的程序,因此使用Linux下C语言编程来实现。其次,为了使ARM平台能够可视化操作该伺服程序系统,本文运用qtopia脚本语言开发了一套简易的人机操作互动界面。最后,由于以上的伺服程序和人机界面是在PC机下开发的,而最终的目标是移植到ARM平台下,因此通过制作好的交叉编译工具链对编写好的程序源代码进行重新编译,将编译好的可执行二进制文件拷贝或者下载到ARM平台下,就可以通过ARM平台的触摸屏来对其进行操作。
4.2 PC机平台抄表程序设计
作为Linux下的套接字(socket)实现网络编程的Client端,PC机端可以向ARM平台发送抄表指令,并将 ARM 传送回来的电量数据直接录入到设计好的数据库中,省去了以往传输数据后再手工逐一录入到网络服务器数据库的繁琐过程。本文采用了十分流行的网站架构LAMP技术,LAMP是指代Linux操作系统、Apache网络服务器、MySQL数据库和PHP(Perl或Python)脚本语言的组合。由于网站架设和ARM平台开发都在Linux操作系统下完成,因此本研究可以完全实现全 Linux操作系统下的操作,避免了由于使用Windows操作系统带来的软件不兼容问题。
5 结论
本文利用了嵌入式 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.